Exemplo n.º 1
0
        //Player1Board1

        public GameBoard(int tableDimension, bool isAutomatic)

        {
            ShipTypes.Add(Ships.Carrier);
            ShipTypes.Add(Ships.Battleship);
            ShipTypes.Add(Ships.Submarine);
            ShipTypes.Add(Ships.Cruiser);
            ShipTypes.Add(Ships.Patrol);

            ShipLengths.Add(4);
            ShipLengths.Add(3);
            ShipLengths.Add(2);
            ShipLengths.Add(1);
            ShipLengths.Add(0);



            TableDimension   = tableDimension;
            this.isAutomatic = isAutomatic;

            //player 1 own ships table

            for (int i = 0; i < TableDimension; i++)
            {
                Player1Board1.Add(new List <BoardSquareState>());
                for (int j = 0; j < TableDimension; j++)
                {
                    Player1Board1[i].Add(BoardSquareState.Empty);
                }
            }



            //player 2 own ships table

            for (int i = 0; i < TableDimension; i++)
            {
                Player2Board1.Add(new List <BoardSquareState>());
                for (int j = 0; j < TableDimension; j++)
                {
                    Player2Board1[i].Add(BoardSquareState.Empty);
                }
            }
        }
Exemplo n.º 2
0
        //Player1Board1

        public GameBoard(int tableDimension, bool isAutomatic)

        {
            ShipTypes.Add(Ships.Carrier);
            ShipTypes.Add(Ships.Battleship);
            ShipTypes.Add(Ships.Submarine);
            ShipTypes.Add(Ships.Cruiser);
            ShipTypes.Add(Ships.Patrol);

            ShipLengths.Add(4);
            ShipLengths.Add(3);
            ShipLengths.Add(2);
            ShipLengths.Add(1);
            ShipLengths.Add(0);

            /*Player1ShipCoordinates.Add("11");
             * Player1ShipCoordinates.Add("22");
             * Player1ShipCoordinates.Add("47");
             * Player1ShipCoordinates.Add("33");
             * Player1ShipCoordinates.Add("64");
             * Player1ShipDirections.Add(Directions.E);
             * Player1ShipDirections.Add(Directions.S);
             * Player1ShipDirections.Add(Directions.W);
             * Player1ShipDirections.Add(Directions.E);
             * Player1ShipDirections.Add(Directions.E);
             *
             * Player2ShipCoordinates.Add("11");
             * Player2ShipCoordinates.Add("22");
             * Player2ShipCoordinates.Add("47");
             * Player2ShipCoordinates.Add("33");
             * Player2ShipCoordinates.Add("64");
             * Player2ShipDirections.Add(Directions.E);
             * Player2ShipDirections.Add(Directions.S);
             * Player2ShipDirections.Add(Directions.W);
             * Player2ShipDirections.Add(Directions.E);
             * Player2ShipDirections.Add(Directions.E);*/


            TableDimension   = tableDimension;
            this.isAutomatic = isAutomatic;

            //player 1 own ships table
            Console.WriteLine("PLAYER 1");
            for (int i = 0; i < TableDimension; i++)
            {
                Player1Board1.Add(new List <BoardSquareState>());
                for (int j = 0; j < TableDimension; j++)
                {
                    Player1Board1[i].Add(BoardSquareState.Empty);
                }
            }

            if (this.isAutomatic)
            {
                AutomaticShipCoordinates1();
            }
            else
            {
                ManualShipCoordinates1();
            }

            //place player 1 ships on table
            foreach (var coordinate in Player1ShipCoordinates)
            {
                x_coord = Int32.Parse(coordinate.Substring(0, 1));
                y_coord = Int32.Parse(coordinate.Substring(1, 1));
                Player1Board1[x_coord - 1][y_coord] =
                    BoardSquareState.Ship;

                counter1 = ShipLengths[counter];
                if (Player1ShipDirections[counter] == Directions.W)
                {
                    for (int i = counter1; i >= 0; i--)
                    {
                        Player1Board1[x_coord - 1][y_coord - i] = BoardSquareState.Ship;
                    }
                }
                else if (Player1ShipDirections[counter] == Directions.N)
                {
                    for (int i = counter1; i >= 0; i--)
                    {
                        Player1Board1[x_coord - 1 - i][y_coord] = BoardSquareState.Ship;
                    }
                }
                else if (Player1ShipDirections[counter] == Directions.E)
                {
                    for (int i = counter1; i >= 0; i--)
                    {
                        Player1Board1[x_coord - 1][y_coord + i] = BoardSquareState.Ship;
                    }
                }
                else if (Player1ShipDirections[counter] == Directions.S)
                {
                    for (int i = counter1; i >= 0; i--)
                    {
                        Player1Board1[x_coord - 1 + i][y_coord] = BoardSquareState.Ship;
                    }
                }

                counter1 = 0;
                counter++;
            }

            //player 1 enemy ships table

            for (int i = 0; i < TableDimension; i++)
            {
                Player1Board2.Add(new List <BoardSquareState>());
                for (int j = 0; j < TableDimension; j++)
                {
                    Player1Board2[i].Add(BoardSquareState.Unknown);
                }
            }

            counter = 0;

            //player 2 own ships table
            Console.WriteLine("PLAYER 2");
            for (int i = 0; i < TableDimension; i++)
            {
                Player2Board1.Add(new List <BoardSquareState>());
                for (int j = 0; j < TableDimension; j++)
                {
                    Player2Board1[i].Add(BoardSquareState.Empty);
                }
            }

            if (this.isAutomatic)
            {
                AutomaticShipCoordinates2();
            }
            else
            {
                ManualShipCoordinates2();
            }

            //place player 2 ships on table
            foreach (var coordinate in Player1ShipCoordinates)
            {
                x_coord = Int32.Parse(coordinate.Substring(0, 1));
                y_coord = Int32.Parse(coordinate.Substring(1, 1));
                Player2Board1[x_coord][y_coord] =
                    BoardSquareState.Ship;

                counter1 = ShipLengths[counter];
                if (Player2ShipDirections[counter] == Directions.W)
                {
                    for (int i = counter1; i >= 0; i--)
                    {
                        Player2Board1[x_coord - 1][y_coord - i] = BoardSquareState.Ship;
                    }
                }
                else if (Player2ShipDirections[counter] == Directions.N)
                {
                    for (int i = counter1; i >= 0; i--)
                    {
                        Player2Board1[x_coord - 1 - i][y_coord] = BoardSquareState.Ship;
                    }
                }
                else if (Player2ShipDirections[counter] == Directions.E)
                {
                    for (int i = counter1; i >= 0; i--)
                    {
                        Player2Board1[x_coord - 1][y_coord + i] = BoardSquareState.Ship;
                    }
                }
                else if (Player2ShipDirections[counter] == Directions.S)
                {
                    for (int i = counter1; i >= 0; i--)
                    {
                        Player2Board1[x_coord - 1 + i][y_coord] = BoardSquareState.Ship;
                    }
                }

                counter1 = 0;
                counter++;
            }

            counter = 0;

            //player 2 enemy ships table

            for (int i = 0; i < TableDimension; i++)
            {
                Player2Board2.Add(new List <BoardSquareState>());
                for (int j = 0; j < TableDimension; j++)
                {
                    Player2Board2[i].Add(BoardSquareState.Unknown);
                }
            }
        }
Exemplo n.º 3
0
        public void InitializeApiStart2(dynamic data)
        {
            string APIName = "api_start2";

            if (data.api_data != null && data.api_result == 1)
            {
                data = data.api_data;
            }

            //特別置換処理
            data.api_mst_stype[7].api_name = "巡洋戦艦";

            ClearUpdated();

            //api_mst_ship
            foreach (var elem in data.api_mst_ship)
            {
                int id = (int)elem.api_id;
                if (MasterShips[id] == null)
                {
                    var ship = new ShipDataMaster();
                    ship.LoadFromResponse(APIName, elem);
                    MasterShips.Add(ship);
                }
                else
                {
                    MasterShips[id].LoadFromResponse(APIName, elem);
                }
            }

            //改装関連のデータ設定
            foreach (var ship in MasterShips)
            {
                var remodelID = ship.Value.RemodelAfterShipID;
                if (remodelID != 0)
                {
                    MasterShips[remodelID].RemodelBeforeShipID = ship.Key;
                }
            }

            //api_mst_shipgraph
            foreach (var elem in data.api_mst_shipgraph)
            {
                int            id   = (int)elem.api_id;
                ShipDataMaster ship = MasterShips[id];
                if (ship != null)
                {
                    ship.ResourceName = elem.api_filename;
                    dynamic versions = elem.api_version;
                    ship.ResourceGraphicVersion   = versions[0];
                    ship.ResourceVoiceVersion     = versions[1];
                    ship.ResourcePortVoiceVersion = versions[2];
                }
            }

            //api_mst_slotitem_equiptype
            foreach (var elem in data.api_mst_slotitem_equiptype)
            {
                int id = (int)elem.api_id;
                if (EquipmentTypes[id] == null)
                {
                    var eqt = new EquipmentType();
                    eqt.LoadFromResponse(APIName, elem);
                    EquipmentTypes.Add(eqt);
                }
                else
                {
                    EquipmentTypes[id].LoadFromResponse(APIName, elem);
                }
            }


            //api_mst_stype
            foreach (var elem in data.api_mst_stype)
            {
                int id = (int)elem.api_id;
                if (ShipTypes[id] == null)
                {
                    var spt = new ShipType();
                    spt.LoadFromResponse(APIName, elem);
                    ShipTypes.Add(spt);
                }
                else
                {
                    ShipTypes[id].LoadFromResponse(APIName, elem);
                }
            }


            //api_mst_slotitem
            foreach (var elem in data.api_mst_slotitem)
            {
                int id = (int)elem.api_id;
                if (MasterEquipments[id] == null)
                {
                    var eq = new EquipmentDataMaster();
                    eq.LoadFromResponse(APIName, elem);
                    MasterEquipments.Add(eq);
                }
                else
                {
                    MasterEquipments[id].LoadFromResponse(APIName, elem);
                }
            }

            //api_mst_slotitemgraph

            /*
             *          foreach ( var elem in data.api_mst_slotitemgraph ) {
             *
             *                  int id = (int)elem.api_id;
             *                  EquipmentDataMaster eq = db.MasterEquipments[id];
             *                  if ( eq != null ) {
             *                          eq.ResourceVersion = elem.api_version;
             *                  }
             *          }
             */

            //api_mst_useitem
            foreach (var elem in data.api_mst_useitem)
            {
                int id = (int)elem.api_id;
                if (MasterUseItems[id] == null)
                {
                    var item = new UseItemMaster();
                    item.LoadFromResponse(APIName, elem);
                    MasterUseItems.Add(item);
                }
                else
                {
                    MasterUseItems[id].LoadFromResponse(APIName, elem);
                }
            }

            //api_mst_maparea
            foreach (var elem in data.api_mst_maparea)
            {
                int id = (int)elem.api_id;
                if (MapArea[id] == null)
                {
                    var item = new MapAreaData();
                    item.LoadFromResponse(APIName, elem);
                    MapArea.Add(item);
                }
                else
                {
                    MapArea[id].LoadFromResponse(APIName, elem);
                }
            }

            //api_mst_mapinfo
            foreach (var elem in data.api_mst_mapinfo)
            {
                int id = (int)elem.api_id;
                if (MapInfo[id] == null)
                {
                    var item = new MapInfoData();
                    item.LoadFromResponse(APIName, elem);
                    MapInfo.Add(item);
                }
                else
                {
                    MapInfo[id].LoadFromResponse(APIName, elem);
                }
            }

            //api_mst_mission
            foreach (var elem in data.api_mst_mission)
            {
                int id = (int)elem.api_id;
                if (Mission[id] == null)
                {
                    var item = new MissionData();
                    item.LoadFromResponse(APIName, elem);
                    Mission.Add(item);
                }
                else
                {
                    Mission[id].LoadFromResponse(APIName, elem);
                }
            }

            //api_mst_shipupgrade
            Dictionary <int, int> upgradeLevels = new Dictionary <int, int>();

            foreach (var elem in data.api_mst_shipupgrade)
            {
                int idbefore   = (int)elem.api_current_ship_id;
                int idafter    = (int)elem.api_id;
                var shipbefore = MasterShips[idbefore];
                var shipafter  = MasterShips[idafter];
                int level      = (int)elem.api_upgrade_level;

                if (upgradeLevels.ContainsKey(idafter))
                {
                    if (level < upgradeLevels[idafter])
                    {
                        shipafter.RemodelBeforeShipID = idbefore;
                        upgradeLevels[idafter]        = level;
                    }
                }
                else
                {
                    shipafter.RemodelBeforeShipID = idbefore;
                    upgradeLevels.Add(idafter, level);
                }

                if (shipbefore != null)
                {
                    shipbefore.NeedBlueprint = (int)elem.api_drawing_count;
                    shipbefore.NeedCatapult  = (int)elem.api_catapult_count;
                }
            }
        }