コード例 #1
0
ファイル: GameController.cs プロジェクト: Sanchezz17/team3
        public IActionResult CreateGame([FromBody] CreateGameParametersDTO createGameParametersDto)
        {
            if (createGameParametersDto == null)
            {
                return(BadRequest());
            }
            if (Guid.TryParse(Request.Cookies["userId"], out var userId))
            {
                var oldGame = _gameRepository.FindByUserId(userId);
                if (oldGame != null)
                {
                    _gameRepository.Delete(oldGame.GameId);
                }
            }
            else
            {
                userId = Guid.NewGuid();
                Response.Cookies.Append("userId", userId.ToString());
            }

            var gameField = _gameFieldGenerator.GenerateField(createGameParametersDto.Difficulty);
            var game      = new Game.Game(userId, gameField);

            game = _gameRepository.Insert(game);
            var gameDto = _mapper.Map <GameDto>(game);

            return(Ok(gameDto));
        }
コード例 #2
0
        public override void Initialize()
        {
            _game = new Game.Game();
            _game.Initialize(this);

            Window.AddFlags(WindowManagerFlags.KeepScreenOn);
        }
コード例 #3
0
        public JsonResult Guess(string game_key, string code)
        {
            var game         = new Game.Game();
            var response     = game.TryANewGuess(game_key, code);
            var returnObject = new
            {
                colors      = response.Colors,
                code_length = response.Code_length,
                game_key    = response.Game_key,
                num_guesses = response.Num_guesses,
                result      = new
                {
                    exact = response.Result?.Exact,
                    near  = response.Result?.Near
                },
                past_results          = response.Past_results?.Select(x => new { exact = x.Exact, near = x.Near }).ToList(),
                opponent_past_results = response.Opponent_Past_results?.Select(x => new { exact = x.Exact, near = x.Near }).ToList(),
                solved      = response.Solved,
                error       = response.Error,
                multiplayer = response.Multiplayer,
                winner      = response.Winner
            };

            return(Json(returnObject, JsonRequestBehavior.DenyGet));
        }
コード例 #4
0
        public void RenderStart(Game.Game game)
        {
            // Resize if necessary (required for first tick)
            _display.Size(game.Width, game.Height + 5);

            // Blank the rows outside of the board area
            foreach (var row in new int[] { 0, 1, 2, game.Height + 3, game.Height + 4 })
            {
                ClearRow(row);
            }

            // Build the static background
            RenderScore(game);

            _ticks++;

            if (game.Status == GameStatus.ChangingLevel && _ticks % 10 < 5)
            {
                FlashBoard();
            }
            else
            {
                RenderWalls(game);
                RenderCoins(game);
                RenderPowerPills(game);
                RenderGhosts(game);
            }

            RenderFruit(game);

            // Add the sprites
            RenderPacMan(game);
            RenderLives(game);
        }
コード例 #5
0
        public void StartGame(string mapFile)
        {
            Console.WriteLine("Starting game.");

            //TODO: We do not need to hold references to game objects in the service.
            _map = Business.Maps.Map.LoadFromFile(mapFile);

            _game = new Game.Game(_map);

            _zombiesSystem          = new ZombiesSystem(_game);
            _zombiesSystem.Updated += new EventHandler(_zombiesSystem_Updated);

            //Create some random zombies
            for (int i = 0; i < 7; i++)
            {
                NonPlayerCharacter zombie = new NonPlayerCharacter(_game);
                zombie.Location         = new System.Drawing.Point(_random.Next(_map.Size.Width - 1), _random.Next(_map.Size.Height - 1));
                zombie.MovementDistance = 2;
                zombie.MovementSpeed    = _random.Next(2) + 1;
                _zombiesSystem.Zombies.Add(zombie);
            }

            _zombiesSystem.Start();

            Console.WriteLine("Map loaded, zombies started.");
        }
コード例 #6
0
 public Barrak(Game.Game game, Vector2 position, IPlacementService placementService)
     : base(game, position, placementService)
 {
     Size       = BuildingSize;
     Health     = MaxHealth = MaximumHealthConst;
     ViewRadius = 3;
 }
コード例 #7
0
        /*
         * public GameForm(Game.Game G)
         * {
         *  context = SynchronizationContext.Current;
         *
         *  InitializeComponent();
         *  FormBorderStyle = FormBorderStyle.None;
         *  WindowState = FormWindowState.Maximized;
         *
         *  RunningGame = G;
         *  RunningGame.Render.ImageUpdated += Render_ImageUpdated;
         *  RunningGame.Width = Screen.PrimaryScreen.WorkingArea.Width;
         *  RunningGame.Height = Screen.PrimaryScreen.WorkingArea.Height;
         *
         *  //Player 1
         *  Player Player1 = new Player(30, 30, 'M' , RunningGame.Teams[0],true, RunningGame);
         *  Player1.KeyBindings.Add(Keys.W, new MoveState(Player1, Direction.Up));
         *  Player1.KeyBindings.Add(Keys.A, new MoveState(Player1, Direction.Left));
         *  Player1.KeyBindings.Add(Keys.S, new MoveState(Player1, Direction.Down));
         *  Player1.KeyBindings.Add(Keys.D, new MoveState(Player1, Direction.Right));
         *  AddPlayerToGame(Player1);
         *
         *  //Player 2
         *  Player Player2 = new Player(RunningGame.Width - 40, RunningGame.Height - 40, 'C', RunningGame.Teams[1],  true, RunningGame);
         *  Player2.KeyBindings.Add(Keys.Up, new MoveState(Player2, Direction.Up));
         *  Player2.KeyBindings.Add(Keys.Left, new MoveState(Player2, Direction.Left));
         *  Player2.KeyBindings.Add(Keys.Down, new MoveState(Player2, Direction.Down));
         *  Player2.KeyBindings.Add(Keys.Right, new MoveState(Player2, Direction.Right));
         *  AddPlayerToGame(Player2);
         *
         *
         *
         * }*/

        public GameForm(Game.Game G, List <Player> Players, List <Fighter> Bots)
        {
            context = SynchronizationContext.Current;

            InitializeComponent();
            FormBorderStyle = FormBorderStyle.None;
            WindowState     = FormWindowState.Maximized;

            RunningGame = G;
            RunningGame.Render.ImageUpdated += Render_ImageUpdated;
            RunningGame.Width  = Screen.PrimaryScreen.WorkingArea.Width;
            RunningGame.Height = Screen.PrimaryScreen.WorkingArea.Height;

            foreach (Player p in Players)
            {
                AddPlayerToGame(p);
            }

            foreach (Fighter Bot in Bots)
            {
                RunningGame.InitialBots.Add(Bot);
            }

            RunningGame.Start();
        }
コード例 #8
0
 public void ApplyCustomRules(Game.Game game)
 {
     foreach (ICustomRule customRule in _customRules)
     {
         customRule.ApplyCustomRule(game);
     }
 }
コード例 #9
0
ファイル: desk.cs プロジェクト: fredatgithub/scrabble-1
        public Desk(Game.Game g) : base(sizeX, sizeY, true)
        {
            this.fields = new Stone[sizeX + 1, sizeY + 1];
            this.game   = g;
            this.Pdesk  = ((Game.Game)game).desk;

            // inicialization of labels
            this.fields[0, 0]           = new Stone();
            this.fields[0, 0].Sensitive = false;
            for (uint i = 1; i < fields.GetLength(0); i++)
            {
                this.fields[i, 0] = new Stone();
                this.Attach(fields[i, 0], i, i + 1, 0, 1);
                this.fields[i, 0].Sensitive = false;
                this.fields[i, 0].Show();
                this.fields[i, 0].setChar(i.ToString());

                this.fields[0, i] = new Stone();
                this.Attach(fields[0, i], 0, 1, i, i + 1);
                this.fields[0, i].Sensitive = false;
                this.fields[0, i].Show();
                this.fields[0, i].setChar(i.ToString());
            }

            for (uint j = 1; j < fields.GetLength(1); j++)
            {
                for (uint i = 1; i < fields.GetLength(0); i++)
                {
                    fields[i, j] = new Stone();
                    this.Attach(fields[i, j], i, i + 1, j, j + 1);
                }
            }

            this.Restart();
        }
コード例 #10
0
        public UIUnitHealthBarView(Game.Game game, Unit unit) : base(UIPriorities.HUD)
        {
            _game = game;
            _unit = unit;

            _unit.OnTookDamage += Unit_OnTookDamage;
        }
コード例 #11
0
 /// <summary>
 /// 添加一个开发完毕游戏
 /// </summary>
 /// <param name="game"></param>
 public void AddDevelopedGame(Game.Game game)
 {
     if (!StudioDevelopedGames.Contains(game))
     {
         StudioDevelopedGames.Add(game);
     }
 }
コード例 #12
0
        public void Go()
        {
            _game = new MyGame(_engineSystems, new GameSystemCollection());
            _game.Init();

            _activeWindow.Run();
        }
コード例 #13
0
        public void moat_played_against_witch()
        {
            var playerA = new Player(1, "a");
            var playerB = new Player(1, "b");
            var players = new List <IPlayer>()
            {
                playerA, playerB
            };
            var supply = new Supply(
                new List <Pile> {
                new Pile(Card.Curse, 10)
            },
                new List <Pile>(),
                new List <Pile>());
            var vc   = new VictoryCondition();
            var game = new Game.Game(0, players, supply, vc);

            playerA.GainToHand(Card.Witch);
            playerB.GainToHand(Card.Moat);
            playerA.PlayStatus = PlayStatus.ActionPhase;
            game.Submit(playerA.PlayerName, PlayerAction.Play, Card.Witch);
            game.Submit(playerB.PlayerName, ActionRequestType.SelectCards, new List <Card> {
                Card.Moat
            });

            Assert.Empty(playerB.DiscardPile);
        }
コード例 #14
0
        public void cellar_discard_success()
        {
            var player  = new Player(1, "b");
            var players = new List <IPlayer>()
            {
                player
            };
            var supply = new Supply(new List <Pile>(), new List <Pile>(), new List <Pile>());
            var vc     = new VictoryCondition();
            var game   = new Game.Game(0, players, supply, vc);

            player.GainToHand(Card.Cellar);
            player.Hand.AddRange(Enumerable.Repeat(Card.Copper, 4));
            player.Deck.AddRange(Enumerable.Repeat(Card.Silver, 5));
            player.PlayStatus = PlayStatus.ActionPhase;
            game.Submit(player.PlayerName, PlayerAction.Play, Card.Cellar);
            game.Submit(player.PlayerName, ActionRequestType.SelectCards, Enumerable.Repeat(Card.Copper, 3));

            var coppersInHand = player.Hand.Count(x => x == Card.Copper);
            var silversInHand = player.Hand.Count(x => x == Card.Silver);
            var discardCount  = player.DiscardPile.Count();

            Assert.Equal(1, coppersInHand);
            Assert.Equal(3, silversInHand);
            Assert.Equal(3, discardCount);
            Assert.Equal(1, player.PlayedCards.Count);
            Assert.Equal(2, player.Deck.Count);
        }
コード例 #15
0
        public void SetUp()
        {
            testgame = new Game.Game(new GameStartOptions {
                Height = 2, Width = 2, StartingArmiesPerPlayer = 5
            });
            testgame.StartJoining();
            player1Token = Guid.NewGuid().ToString();
            player2Token = Guid.NewGuid().ToString();
            testgame.AddPlayer(new ApiPlayer("player1", player1Token, null));
            testgame.AddPlayer(new ApiPlayer("player2", player2Token, null));

            testgame.StartGame();

            //place 5 armies
            testgame.TryPlaceArmy(player1Token, territory1.Location);
            testgame.TryPlaceArmy(player1Token, territory1.Location);
            testgame.TryPlaceArmy(player1Token, territory1.Location);
            testgame.TryPlaceArmy(player1Token, territory1.Location);
            testgame.TryPlaceArmy(player1Token, territory1.Location);

            //player2 places 5 armies
            testgame.TryPlaceArmy(player2Token, territory2.Location);
            testgame.TryPlaceArmy(player2Token, territory2.Location);
            testgame.TryPlaceArmy(player2Token, territory2.Location);
            testgame.TryPlaceArmy(player2Token, territory2.Location);
            testgame.TryPlaceArmy(player2Token, territory2.Location);
        }
コード例 #16
0
ファイル: Form1.cs プロジェクト: punker76/PacMan
        public Form1()
        {
            InitializeComponent();

            var soundSet = new SoundSet();

            _game = Game.Game.Create()
                    .Subscribe(GameNotification.Beginning, soundSet.Beginning)
                    .Subscribe(GameNotification.EatCoin, soundSet.Chomp)
                    .Subscribe(GameNotification.Respawning, soundSet.Death)
                    .Subscribe(GameNotification.EatFruit, soundSet.EatFruit)
                    .Subscribe(GameNotification.EatGhost, soundSet.EatGhost)
                    .Subscribe(GameNotification.ExtraPac, soundSet.ExtraPac)
                    .Subscribe(GameNotification.Intermission, soundSet.Intermission)
                    .StartGame();

            _graphicsBuffers = new GraphicsBuffers(this)
            {
                ShowFps = true
            };

            this.StartPosition = FormStartPosition.CenterScreen;
            this.Text          = "PacMan";
            this.WindowState   = FormWindowState.Maximized;
            this.KeyDown      += Form1_KeyDown;

            _renderLoop.Interval = 16; //40fps
            _renderLoop.Enabled  = true;
            _renderLoop.Tick    += _renderLoop_Tick;
        }
コード例 #17
0
        public string Reset()
        {
            var guid = Guid.NewGuid();

            games = new Game.Game(guid);
            return(games.board.GetJson());
        }
コード例 #18
0
        public void priest_is_played_with_trashing()
        {
            var player  = new Player(1, "b");
            var players = new List <IPlayer>()
            {
                player
            };
            var supply = new Supply(
                new List <Pile>(),
                new List <Pile>(),
                new List <Pile>());
            var vc   = new VictoryCondition();
            var game = new Game.Game(0, players, supply, vc);


            player.PlayStatus = PlayStatus.ActionPhase;
            player.GainToHand(Card.Copper);
            player.GainToHand(Card.Copper);
            player.GainToHand(Card.Copper);
            player.GainToHand(Card.Priest);
            player.GainToHand(Card.Chapel);
            player.NumberOfActions = 2;
            game.Submit(player.PlayerName, PlayerAction.Play, Card.Priest);
            game.Submit(player.PlayerName, ActionRequestType.SelectCards, new List <Card> {
                Card.Copper
            });
            game.Submit(player.PlayerName, PlayerAction.Play, Card.Chapel);
            game.Submit(player.PlayerName, ActionRequestType.SelectCards, new List <Card> {
                Card.Copper, Card.Copper
            });

            Assert.Equal(6, player.MoneyPlayed);
        }
コード例 #19
0
ファイル: ArtisanTests.cs プロジェクト: saywordsahn/dominion
        public void artisan_card_too_expensive()
        {
            const Card card         = Card.Artisan;
            const int  supplyAmount = 10;

            var player  = new Player(1, "b");
            var players = new List <IPlayer>()
            {
                player
            };
            var supply = new Supply(new List <Pile>(), new List <Pile>(),
                                    new List <Pile>()
            {
                new Pile(card, supplyAmount),
                new Pile(Card.Chapel, 10)
            });
            var vc   = new VictoryCondition();
            var game = new Game.Game(0, players, supply, vc);

            player.GainToHand(Card.Artisan);
            player.PlayStatus = PlayStatus.ActionPhase;
            game.Submit(player.PlayerName, PlayerAction.Play, Card.Artisan);
            game.Submit(player.PlayerName, ActionRequestType.SelectCards, new List <Card> {
                card
            });

            var actualSupplyCount = game.Supply.KingdomSupply.First().Cards.Count;

            Assert.Empty(player.DiscardPile);
            Assert.Equal(actualSupplyCount, supplyAmount);
        }
コード例 #20
0
        public void Setup()
        {
            int width  = 2;
            int height = 2;


            IPlayer player  = new ApiPlayer("Rusty", "bazookaJoe", null);
            IPlayer player2 = new ApiPlayer("Emmanuel", "Macaco", null);

            game = new Game.Game(new GameStartOptions {
                Height = height, Width = width, StartingArmiesPerPlayer = 3
            });
            game.AddPlayer(new ApiPlayer("Rusty", "bazookaJoe", null));
            game.AddPlayer(new ApiPlayer("Emmanuel", "Macaco", null));
            Location attacker  = new Location(1, 1);
            Location attacker2 = new Location(0, 1);
            Location defender  = new Location(0, 0);
            Location defender2 = new Location(1, 0);

            game.StartGame();

            game.TryPlaceArmy(player.Token, attacker);
            game.TryPlaceArmy(player.Token, attacker);
            game.TryPlaceArmy(player.Token, attacker2);

            game.TryPlaceArmy(player2.Token, defender);
            game.TryPlaceArmy(player2.Token, defender);
            game.TryPlaceArmy(player2.Token, defender2);
        }
コード例 #21
0
        public void _180SaveNew(Game.Game game, Player player)
        {
            var new180Query = $"INSERT INTO [{Table._180}] ({Column.Player},{Column.Game},{Column.Throw3},{Column.Throw2},{Column.Throw1}, {Column.Timestamp})" +
                              $" VALUES ('{player.Id}','{game.Id}','{player.HandThrows.Pop().Id}','{player.HandThrows.Pop().Id}','{player.HandThrows.Pop().Id}','{DateTime.Now}')";

            ExecuteNonQueryInternal(new180Query);
        }
コード例 #22
0
        public CustomizePlayerControl(Game.Game Game, Team CurrentTeam)
        {
            InitializeComponent();
            UserKeys    = new Keys[] { Keys.Up, Keys.Down, Keys.Left, Keys.Right };
            WeaponToInt = new Dictionary <int, Bitmap>();
            Random r = new Random();

            weaponCounter = 0;
            WeaponToInt.Add(0, Images.PistolPickup);
            WeaponToInt.Add(1, Images.CannonPickup);
            WeaponToInt.Add(2, Images.FlamethrowerPickup);
            WeaponToInt.Add(3, Images.TentaclePickup);
            WeaponToInt.Add(4, Images.RocketLauncherPickup);
            WeaponToInt.Add(5, Images.TwisterPickup);
            WeaponToInt.Add(6, Images.WingsPickup);
            TheGame         = Game;
            player          = new Player(r.Next(30, TheGame.Width - 40), r.Next(30, TheGame.Height - 40), Symbol.Text[0], CurrentTeam, true, TheGame);
            player.Shielded = true;

            IntToWeapon = new Dictionary <int, Weapon>();
            IntToWeapon.Add(0, new Pistol(TheGame, player));
            IntToWeapon.Add(1, new Cannon(TheGame, player));
            IntToWeapon.Add(2, new Flamethrower(TheGame, player));
            IntToWeapon.Add(3, new Tentacles(TheGame, player));
            IntToWeapon.Add(4, new RocketLauncher(TheGame, player));
            IntToWeapon.Add(5, new Twister(TheGame, player));
            IntToWeapon.Add(6, new Wings(TheGame, player));

            weapon.BackgroundImage = WeaponToInt[weaponCounter];


            this.CurrentTeam = CurrentTeam;
        }
コード例 #23
0
        public void cache_test_gain_during_action_phase()
        {
            var player  = new Player(1, "b");
            var players = new List <IPlayer>()
            {
                player
            };
            var supply = new Supply(
                new List <Pile>()
            {
                new Pile(Card.Copper, 10)
            },
                new List <Pile>(),
                new List <Pile>());
            var vc   = new VictoryCondition();
            var game = new Game.Game(0, players, supply, vc);

            player.PlayStatus = PlayStatus.ActionPhase;
            player.Gain(Card.Cache);
            game.CheckPlayStack(player);

            var expected = new List <Card> {
                Card.Cache, Card.Copper, Card.Copper
            };

            Assert.Equal(expected, player.DiscardPile);
        }
コード例 #24
0
 /// <summary>
 /// 移除一个开发完毕游戏
 /// </summary>
 /// <param name="game"></param>
 public void RemoveDevelopedGame(Game.Game game)
 {
     if (StudioDevelopedGames.Contains(game))
     {
         StudioDevelopedGames.Remove(game);
     }
 }
コード例 #25
0
ファイル: desk.cs プロジェクト: fredatgithub/scrabble-1
        /// <summary>
        /// Initializes a new instance of the <see cref="Scrabble.Lexicon.PlayDesk"/> class.
        /// Layout is classic Scrabble desk 15*15 + classic bonuses.
        /// </summary>/
        public PlayDesk(Game.Game g)
        {
            this.game      = g;
            this.desk      = new char[15, 15];
            this.wordBonus = new byte[15, 15];
            this.charBonus = new byte[15, 15];

            for (int j = 0; j < desk.GetLength(1); j++)
            {
                for (int i = 0; i < desk.GetLength(1); i++)
                {
                    desk[i, j]      = '_';
                    wordBonus[i, j] = 1;
                    charBonus[i, j] = 1;
                }
            }

            byte[,] tripleW  = { { 0, 0 }, { 7, 0 }, { 14, 0 }, { 0, 7 }, { 7, 14 }, { 0, 14 }, { 14, 0 }, { 14, 7 }, { 14, 14 } };
            byte[,] doubleW  = { { 1, 1 }, { 2, 2 }, { 3, 3 }, { 4, 4 }, { 7, 7 }, { 13, 1 }, { 12, 2 }, { 11, 3 }, { 10, 4 }, { 4, 10 }, { 3, 11 }, { 2, 12 }, { 1, 13 }, { 10, 10 }, { 11, 11 }, { 12, 12 }, { 13, 13 } };
            byte[,] tripleCh = { { 5, 1 }, { 9, 1 }, { 5, 5 }, { 9, 5 }, { 1, 5 }, { 13, 5 }, { 5, 9 }, { 9, 9 }, { 5, 13 }, { 9, 13 }, { 1, 9 }, { 13, 9 } };
            byte[,] doubleCh = { { 3, 0 }, { 11, 0 }, { 6, 6 }, { 8, 6 }, { 6, 8 }, { 8, 8 }, { 3, 14 }, { 11, 14 }, { 2, 6 }, { 3, 7 }, { 2, 8 }, { 6, 2 }, { 7, 3 }, { 8, 2 }, { 11, 7 }, { 12, 6 }, { 12, 8 }, { 6, 12 }, { 7, 11 }, { 8, 12 } };

            LoadFromMemory(wordBonus, tripleW, 3);
            LoadFromMemory(wordBonus, doubleW, 2);
            LoadFromMemory(charBonus, tripleCh, 3);
            LoadFromMemory(charBonus, doubleCh, 2);
        }
コード例 #26
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Scrabble.GUI.Info"/> class.
        /// </summary>
        /// <param name='g'>
        /// G.
        /// </param>
        public Info(Game.Game g)
        {
            this.Label       = "Score";
            this.BorderWidth = 5;
            this.game        = g;

            this.HeightRequest = 99;
            this.WidthRequest  = 120;

            scoresTable = new Gtk.Table(6, 2, true);
            scoreValues = new Gtk.Label[6 * 2];
            for (int i = 0; i < this.game.players.Length; i++)
            {
                scoreValues[i]     = new Label(game.players[i].Name);
                scoreValues[i + 6] = new Label("0");
                scoresTable.Attach(scoreValues[i], 0, 1, (uint)i, (uint)i + 1);
                scoresTable.Attach(scoreValues[i + 6], 1, 2, (uint)i, (uint)i + 1);
            }
            for (int i = this.game.players.Length; i < 6; i++)
            {
                scoreValues[i]     = new Label( );
                scoreValues[i + 6] = new Label( );
                scoresTable.Attach(scoreValues[i], 0, 1, (uint)i, (uint)i + 1);
                scoresTable.Attach(scoreValues[i + 6], 1, 2, (uint)i, (uint)i + 1);
            }
            scoresTable.BorderWidth = 3;
            this.Add(scoresTable);

            this.ShowAll();
        }
コード例 #27
0
ファイル: MapLayout.cs プロジェクト: punker76/PacMan
        /// <summary>
        /// Create a matrix of map pieces from Game object
        /// </summary>
        /// <param name="game"></param>
        private void GetWallsFromGame(Game.Game game, IReadOnlyCollection <CellLocation> doors)
        {
            // Populate the map matrix from the given list of walls

            foreach (var item in game.Walls)
            {
                var x = item.X + 1;
                var y = item.Y + 1;
                _map[x, y] = new MapCellDetail(_map, x, y, BasicMapPiece.SingleWall);
            }

            foreach (var item in doors)
            {
                var x = item.X + 1;
                var y = item.Y + 1;
                _map[x, y] = new MapCellDetail(_map, x, y, BasicMapPiece.Door);
            }

            for (int y = 0; y < _height; y++)
            {
                for (int x = 0; x < _width; x++)
                {
                    if (_map[x, y] == null)
                    {
                        _map[x, y] = new MapCellDetail(_map, x, y, BasicMapPiece.Space);
                    }
                }
            }
        }
コード例 #28
0
ファイル: Worker.cs プロジェクト: gormel/rts
 public Worker(Game.Game game, IPathFinder pathFinder, Vector2 position)
     : base(game, pathFinder, position)
 {
     Speed      = 1.8f;
     MaxHealth  = Health = 40;
     ViewRadius = 3;
 }
        public static void HandleMessage(RegisterGame request, CommunicationServer server, Socket handler)
        {
            if (request == null)
            {
                return;
            }

            Game.Game g;

            lock (joinLock)
            {
                g = new Game.Game(gameId: server.RegisteredGames.NextGameId(), name: request.NewGameInfo.gameName,
                                  bluePlayers: request.NewGameInfo.blueTeamPlayers,
                                  redPlayers: request.NewGameInfo.redTeamPlayers, gameMaster: handler
                                  );
                try
                {
                    server.RegisteredGames.RegisterGame(g);
                }
                catch
                {
                    return;
                }
            }

            ConfirmGameRegistration gameRegistration = new ConfirmGameRegistration()
            {
                gameId = (ulong)g.Id
            };

            var response = XmlMessageConverter.ToXml(gameRegistration);

            server.ConnectionEndpoint.SendFromServer(handler, response);
        }
コード例 #30
0
        public static Game.Game AddKeyboard(this Game.Game game)
        {
            var keyboard = new Keyboard(game);

            game.Subscribe(GameNotification.PreTick, keyboard.CheckForKeyPress);

            return(game);
        }
コード例 #31
0
ファイル: NewGame.cs プロジェクト: mrDLSable/Empires_Old
        private void btn_CreateGame_Click(object sender, EventArgs e)
        {
            Game.Game game = new Game.Game();
            game.data.name = this.tb_GameName.Text;

            try
            {
                game.data.resourceModifier = Convert.ToDouble(this.tb_ResourceModifier.Text);
            }
            catch (Exception ex)
            {
                game.data.resourceModifier = 1.0;
            }

            try
            {
                game.data.startingPopulation = Convert.ToDouble(this.tb_StartingPopulation.Text);
            }
            catch (Exception ex)
            {
                game.data.startingPopulation = 1000;
            }

            int counter = 0;

            for (int i = 0; i < packages.Length; i++)
            {
                if (packagesIn[i])
                {
                    counter++;
                }
            }

            Package[] packagesToUse = new Package[counter];
            counter = 0;

            for (int i = 0; i < packages.Length; i++)
            {
                if (packagesIn[i])
                {
                    packagesToUse[counter] = packages[i];
                    counter++;
                }
            }

            game.data.packages = packagesToUse;

            Objects.game = game;
            Objects.game.onePackage();
            Objects.game.generate();
            Objects.game.save();
            Objects.game = null;
            this.Close();
        }
コード例 #32
0
ファイル: TestsUpgrades.cs プロジェクト: EmilieS/Gleipnir
        public void TestUpgradesWithCookers()
        {
            Game.Game g = new Game.Game();
            Game.Buildings.Restaurant resto = new Game.Buildings.Restaurant(g.Villages[0], g.Villages[0].JobsList.Cooker);
            int _initialCoeff = g.Villages[0].JobsList.Cooker.Coefficient;

            g.AddOrTakeFromOfferings(200);

            Assert.That(g.Offerings > 200);
            Assert.That(g.Villages[0].BuildingsList.RestaurantList.Count > 0);

            g.Villages[0].Upgrades.Level1.Buy();

            Assert.That(g.Villages[0].Upgrades.Level1.IsPossible);
            Assert.That(g.Villages[0].Upgrades.Level1.IsActivated);
            Assert.That(_initialCoeff != g.Villages[0].JobsList.Cooker.Coefficient);

            Assert.That(g.Villages[0].Upgrades.Scaffolding != null);
        }
コード例 #33
0
ファイル: Program.cs プロジェクト: MingStar/SimUniversity
 public static void RunAITournament(int numPlayers, int round)
 {
     DateTime startTime = DateTime.Now;
     var stats = new Dictionary<string, TournamentPlayerStats>();
     var simplexLearnedScores = SimplexLearnedScores.Load(SimplexLearning.FileName);
     ColorConsole.WriteLine(ConsoleColor.Cyan, "Loaded parameters: {0}", simplexLearnedScores);
     for (int i = 1; i <= round; ++i)
     {
         var game = new Game.Game((new SettlerBoardConstructor()).ConstructBoard(), numPlayers);
         game.Round = i;
         var improvedEmmAiPlayerNormal = new ImprovedEMN(new GameScores());
         var improvedEmmAiPlayerExpansion = new ImprovedEMN(simplexLearnedScores);
         var players = new IPlayer[numPlayers];
         players.Fill(improvedEmmAiPlayerNormal);
         players[RandomGenerator.Next(numPlayers)] = improvedEmmAiPlayerExpansion;
         for (int j = 0; j < numPlayers; ++j)
         {
             string name = players[j].Name;
             if (!stats.ContainsKey(name))
             {
                 stats[name] = new TournamentPlayerStats
                                   {
                                       PlayerName = name
                                   };
             }
         }
         var controller = new GameController(new ConsoleViewer(), game, false, players);
         int winnerIndex = controller.Run();
         TournamentPlayerStats stat = stats[players[winnerIndex].Name];
         ColorConsole.WriteLine(ConsoleColor.Yellow,
                                ">>> University {0}, AI player '{1}' has won. <<<",
                                controller.Game.GetUniversityByIndex(winnerIndex).Color,
                                stat.PlayerName
             );
         stat.HasWon();
         foreach (TournamentPlayerStats statForPrint in stats.Values)
         {
             statForPrint.PrintToConsole();
         }
         ColorConsole.WriteLine(ConsoleColor.Green, "Total time taken: " + (DateTime.Now - startTime));
     }
 }
コード例 #34
0
ファイル: TestFest.cs プロジェクト: EmilieS/Gleipnir
        public void fest()
        {
            var game = new Game.Game();
            //new Game.SamhainFest(game.Villages[0]);
            new Game.Buildings.PartyRoom(game.Villages[0]);
            game.Villages[0].FestStart();
            int argent = game.Villages[0].FamiliesList[0].GoldStash;
            int argent2 = argent - game.Villages[0].FamiliesList[0].FamilyMembers.Count;
            Game.Villager fa=game.Villages[0].FamiliesList[0].Father;
            Assert.That(fa.ActivityStatus == Game.ActivityStatus.PARTYING);
            Assert.That(!fa.IsWorking);
            game.NextStep();
            Assert.AreEqual(argent2, game.Villages[0].FamiliesList[0].GoldStash);

            for (int i = 0; i < 20; i++)
            {
                game.NextStep();
            }
            Assert.That(game.Villages[0].FamiliesList[0].Father.ActivityStatus == Game.ActivityStatus.NONE);
        }
コード例 #35
0
ファイル: Renderer.cs プロジェクト: pdabbadabba/Beatdown
        public Render(ref Game.Game g, ref Settings s)
            : base(s.GraphicsX, s.GraphicsY, OpenTK.Graphics.GraphicsMode.Default, "Raven")
        {
            theGame = g;
            settings = s;

            //in case some one else wants to acess this bit.Untitled event
            Instance = this;

            //bind events to the input handler.
            Mouse.ButtonUp += InputHandler.OnMouseUp;
            Mouse.ButtonDown += InputHandler.OnMouseDown;
            Mouse.WheelChanged += InputHandler.OnMouseWheeled;

            Keyboard.KeyDown+= InputHandler.OnKeyDown;
            Keyboard.KeyUp+=InputHandler.OnKeyUp;

            //setup vertex buttfer objects. heh
            BaseRender.Init();
            UnitRenderer.Init();
        }
コード例 #36
0
ファイル: Program.cs プロジェクト: MingStar/SimUniversity
 public static void PlayGame()
 {
     while (true)
     {
         var game = new Game.Game((new SettlerBoardConstructor()).ConstructBoard(), 4);
         IPlayer improvedEMM_AIPlayer = new ImprovedEMN(new GameScores());
         var players = new IPlayer[4];
         players.Fill(improvedEMM_AIPlayer);
         players[RandomGenerator.Next(4)] = _humanConsolePlayer;
         var controller = new GameController(new ConsoleViewer(), game, true, players);
         _humanConsolePlayer.GameController = controller;
         controller.Run();
         Console.WriteLine("Try again? y/n");
         ConsoleKeyInfo key = Console.ReadKey();
         Console.WriteLine();
         if (key.KeyChar == 'n')
         {
             break;
         }
     }
 }
コード例 #37
0
 void customMapsControl_OpenCustomMap(string mapFileName)
 {
     var oldProfileMenu = Program.Instance.ProfileMenuDefault;
     Program.Instance.ProfileMenuDefault = ProfileMenuType.MainMenu;
     Program.Instance.Profile = Profile.NewDeveloper();
     var game = new Game.Game(mapFileName);
     Program.Instance.ProgramState = game;
     ProgramEventHandler p = null;
     p = (e) => {
         if (e.Type == ProgramEventType.ProgramStateChanged)
         {
             Program.Instance.ProfileMenuDefault = oldProfileMenu;
             Program.Instance.ProgramEvent -= p;
         }
     };
     Program.Instance.ProgramEvent += p;
 }
コード例 #38
0
 public void SetGame(Game.Game game)
 {
     _game = game;
     _board = game.Board;
     InitialiseBuffer();
 }
コード例 #39
0
 public void WhenISetUpTheCatanBeginnerSGame()
 {
     _game = new SettlerBeginnerGame();
 }
コード例 #40
0
ファイル: AIPlayer.cs プロジェクト: Postremus/UniTTT
            public void Learn()
            {
                #region Fields
                int runden = Rundefrage();
                int zug;
                string momsitcode = SitCodeHelper.GetEmpty(Length);
                int[,] sit_codes = new int[runden, Length];
                int[,] zuege = new int[runden, Length];
                int[] wertungen = new int[runden];
                GameStates state = GameStates.Laufend;
                Game.Game game = new Game.Game(new Player('1'), new Player('2'), null, new Fields.SitCode(3, 3));
                #endregion
                OnShowMessageEvent("Berechne Daten..");
                for (int currround = 0; currround < runden; currround++)
                {
                    for (int i = 0; i < 9; i++)
                    {
                        momsitcode = SitCodeHelper.StringToSitCode(game.Field.ToString());
                        sit_codes[currround, i] = int.Parse(momsitcode);
                        zug = FieldHelper.GetRandomZug(game.Field);
                        zuege[currround, i] = zug;

                        game.Logik(Vector2i.FromIndex(zug, 3, 3));

                        state = FieldHelper.GetGameState(game.Field, game.Player);
                        // Wertungen
                        // Aufwerten
                        if (state == GameStates.Gewonnen)
                            wertungen[currround] = 1;
                        else if (state == GameStates.Verloren)
                            wertungen[currround] = -1;
                        else if (state == GameStates.Unentschieden)
                            wertungen[currround] = 0;

                        // Ist Spiel Zu Ende?
                        if (game.HasEnd())
                        {
                            game.NewGame();
                        }
                    }
                    if (currround % 100 == 0)
                    {
                        OnShowMessageEvent("Spielrunde Nr. " + currround);
                    }
                }
                OnShowMessageEvent("Fertig mit dem Berechnen der Daten.");
                OnShowMessageEvent("Speichere Daten");
                writerReader.Write(zuege, sit_codes, wertungen);
                OnShowMessageEvent("Fertig, Taste drücken zum Beenden");
                OnGetStringEvent();
            }
コード例 #41
0
 private double RunTournament(double[] values)
 {
     DateTime startedTime = DateTime.Now;
     _learnedScores.FromResult(values);
     var stats = new Dictionary<string, TournamentPlayerStats>();
     const int numPlayers = 2;
     int round = 0;
     var tournamentResult = new TournamentResult();
     int challengerIndex = 0;
     while (round < _roundsToWinInTournament)
     {
         ++round;
         challengerIndex = (challengerIndex + 1) % numPlayers;
         var game = new Game.Game(_boardConstructor.ConstructBoard(), numPlayers) {Round = round};
         var _improvedEMM_AIPlayer_normal = new ImprovedEMN(new GameScores());
         var _improvedEMM_AIPlayer_expansion = new ImprovedEMN(_learnedScores);
         var players = new IPlayer[numPlayers];
         players.Fill(_improvedEMM_AIPlayer_normal);
         players[challengerIndex] = _improvedEMM_AIPlayer_expansion;
         for (var j = 0; j < numPlayers; ++j)
         {
             var name = players[j].Name;
             if (!stats.ContainsKey(name))
             {
                 stats[name] = new TournamentPlayerStats
                                   {
                                       PlayerName = name
                                   };
             }
         }
         var controller = new GameController(_gameViewer, game, false, players);
         var winnerIndex = controller.Run();
         var stat = stats[players[winnerIndex].Name];
         ColorConsole.WriteLine(ConsoleColor.Yellow,
                                ">>> University {0}, AI player '{1}' has won. <<<",
                                controller.Game.GetUniversityByIndex(winnerIndex).Color,
                                stat.PlayerName
             );
         stat.HasWon();
         var challengerUni = game.GetUniversityByIndex(challengerIndex);
         tournamentResult.AddRound(
             new RoundResult(game.GetScore(challengerUni),
                             winnerIndex == challengerIndex,
                             game.Universities.Where(u => u != challengerUni).Select(game.GetScore)
                 ));
         foreach (var statForPrint in stats.Values)
         {
             statForPrint.PrintToConsole();
         }
     }
     var totalScore = tournamentResult.CalculateTotalScore();
     LogInfo(_learnedScores.ToString());
     _touranmentCount++;
     var remainingTimeSpan = GetEstimatedFinishedTime();
     LogInfo("Got score: {0}. Challenger won {1} rounds. Time taken this tournament: {2}." +
         " Total time taken: {3}. Estimated finished time: {4} ({5} to go)",
         totalScore,
         tournamentResult.ChallengerWinningCount,
         DateTime.Now - startedTime,
         DateTime.Now - _learningStartedDT,
         DateTime.Now + remainingTimeSpan,
         remainingTimeSpan);
     return -totalScore; // return negative for function minimisation
 }
コード例 #42
0
ファイル: Player.cs プロジェクト: Kedrigern/scrabble
 public void SetGame( Game.Game g )
 {
     this.game = g;
 }