Beispiel #1
0
        private void PBOnClick(object sender, EventArgs e)
        {
            Field pF = (sender as Button).Tag as Field;

            if (pF == null)
            {
                return;
            }

            if (pF is EmptyField)
            {
                LetterField pLetterField = new LetterField(pF.X, pF.Y);
                _schema.Exchange(pF, pLetterField);
                (sender as Button).Tag = pLetterField;
                h_RefreshField(false);
            }
            else
            if (pF is LetterField)
            {
                EmptyField pEmptyField = new EmptyField(pF.X, pF.Y);
                _schema.Exchange(pF, pEmptyField);
                (sender as Button).Tag = pEmptyField;
                h_RefreshField(false);
            }
        }
Beispiel #2
0
        private Field[,] SetDataToPlayGround(string[] rawData)
        {
            int rows    = int.Parse(rawData[1]);
            int columns = int.Parse(rawData[0]);

            Field[,] playground = new Field[columns, rows];

            for (int line = 2; line < rows + 2; line++)
            {
                for (int sign = 0; sign < columns; sign++)
                {
                    Field field = new EmptyField()
                    {
                        Location = new System.Drawing.Point(sign, line - 2)
                    };
                    switch (rawData[line].Substring(sign, 1))
                    {
                    case CommonConstants.POINT: field = new ItemField()
                    {
                            Location = new System.Drawing.Point(sign, line - 2)
                    };
                        break;

                    case CommonConstants.ITEM_SIGN:
                        field = new ItemField()
                        {
                            Location = new System.Drawing.Point(sign, line - 2)
                        };
                        break;

                    case CommonConstants.PAWN:
                        field = new PlayerField()
                        {
                            Location = new System.Drawing.Point(sign, line - 2)
                        };
                        break;

                    case CommonConstants.WALL:
                        field = new WallField()
                        {
                            Location = new System.Drawing.Point(sign, line - 2)
                        };
                        break;

                    default:
                        field = new EmptyField()
                        {
                            Location = new System.Drawing.Point(sign, line - 2)
                        };
                        break;
                    }
                    playground[sign, line - 2] = field;
                }
            }
            return(playground);
        }
        public static void test_field()
        {
            IField value = new EmptyField <int>();

            Log("value field: {0} ", value);
            value = new Field <int>(42);
            //
            var data_field = (Field <int>)value;

            // Field<int> occupied =  (Field<int>)value ;
            Log("value field: {0}", data_field);
        }
        public void BombBlows(Bomb bomb)
        {
            _gameModel.GetMap[bomb.X, bomb.Y] = new MapElementContainer(bomb.X, bomb.Y, _positionFinder.GetMapElement(_gameModel.GetMap, bomb.X, bomb.Y), new Flame(bomb.X, bomb.Y, bomb.OwnerPlayer));

            if (!(_gameModel.GetMap[bomb.X, bomb.Y + 1].MapElement is NonBreakableWall))
            {
                var mapElement = _positionFinder.GetMapElement(_gameModel.GetMap, bomb.X, bomb.Y + 1);
                if (mapElement is BreakableWall breakableWall)
                {
                    bomb.OwnerPlayer.Hit(breakableWall.Value);
                    mapElement = new EmptyField();
                }
                _gameModel.GetMap[bomb.X, bomb.Y + 1] = new MapElementContainer(bomb.X, bomb.Y + 1, mapElement, new Flame(bomb.X, bomb.Y + 1, bomb.OwnerPlayer));
            }

            if (!(_gameModel.GetMap[bomb.X, bomb.Y - 1].MapElement is NonBreakableWall))
            {
                var mapElement = _positionFinder.GetMapElement(_gameModel.GetMap, bomb.X, bomb.Y - 1);
                if (mapElement is BreakableWall breakableWall)
                {
                    bomb.OwnerPlayer.Hit(breakableWall.Value);
                    mapElement = new EmptyField();
                }
                _gameModel.GetMap[bomb.X, bomb.Y - 1] = new MapElementContainer(bomb.X, bomb.Y - 1, mapElement, new Flame(bomb.X, bomb.Y - 1, bomb.OwnerPlayer));
            }

            if (!(_gameModel.GetMap[bomb.X + 1, bomb.Y].MapElement is NonBreakableWall))
            {
                var mapElement = _positionFinder.GetMapElement(_gameModel.GetMap, bomb.X + 1, bomb.Y);
                if (mapElement is BreakableWall breakableWall)
                {
                    bomb.OwnerPlayer.Hit(breakableWall.Value);
                    mapElement = new EmptyField();
                }
                _gameModel.GetMap[bomb.X + 1, bomb.Y] = new MapElementContainer(bomb.X + 1, bomb.Y, mapElement, new Flame(bomb.X + 1, bomb.Y, bomb.OwnerPlayer));
            }

            if (_gameModel.GetMap[bomb.X - 1, bomb.Y].MapElement is NonBreakableWall)
            {
                return;
            }
            {
                var mapElement = _positionFinder.GetMapElement(_gameModel.GetMap, bomb.X - 1, bomb.Y);
                if (mapElement is BreakableWall breakableWall)
                {
                    bomb.OwnerPlayer.Hit(breakableWall.Value);
                    mapElement = new EmptyField();
                }
                _gameModel.GetMap[bomb.X - 1, bomb.Y] = new MapElementContainer(bomb.X - 1, bomb.Y, mapElement, new Flame(bomb.X - 1, bomb.Y, bomb.OwnerPlayer));
            }
        }
Beispiel #5
0
    public override void AddField(AbstractVisualElement field)
    {
        EmptyField newField = new EmptyField(this)
        {
            leftMargin  = leftMargin,
            rightMargin = rightMargin
        };

        field.parentElement = newField;
        newField.AddField(field);
        base.AddField(newField);
        if (fieldDict.ContainsKey(field.name))
        {
            fieldDict[field.name] = field;
        }
        else
        {
            fieldDict.Add(field.name, field);
        }
    }
        private void tochar()
        {
            Ship ship = new Ship(currentField);
            Cart cart = new Cart(startpoint);

            EmptyField emptyField = new EmptyField();
            Dock dock = new Dock();
            Rail rail = new Rail('-');
            StartPoint startpointer = new StartPoint('A');
            Storage storage = new Storage();
            Switch switchje = new Switch('S');
            Water water = new Water();

            ship.ToChar();
            cart.ToChar();

            emptyField.ToChar();
            dock.ToChar();
            rail.ToChar();
            startpointer.ToChar();
            storage.ToChar();
            switchje.ToChar();
            water.ToChar();
        }
Beispiel #7
0
        private void tochar()
        {
            Ship ship = new Ship(currentField);
            Cart cart = new Cart(startpoint);

            EmptyField emptyField   = new EmptyField();
            Dock       dock         = new Dock();
            Rail       rail         = new Rail('-');
            StartPoint startpointer = new StartPoint('A');
            Storage    storage      = new Storage();
            Switch     switchje     = new Switch('S');
            Water      water        = new Water();

            ship.ToChar();
            cart.ToChar();

            emptyField.ToChar();
            dock.ToChar();
            rail.ToChar();
            startpointer.ToChar();
            storage.ToChar();
            switchje.ToChar();
            water.ToChar();
        }
Beispiel #8
0
 override public void Visit(EmptyField emptyField)
 {
     _fieldRepresentation = ' ';
 }
Beispiel #9
0
        private static List <GameMap> GenerateMaps()
        {
            List <GameMap> generatedMaps = new List <GameMap>();

            #region Sofia City Map
            GameMap sofiaCityMap = new GameMap("Sofia City", 5, 12, 4, 11);

            // add neighbourhood Center
            Neighbourhood center = new Neighbourhood("Center", Color.DarkRed);

            Field patriarhaStreet = new Street("Patriarha", center, 4, 10, 250);
            sofiaCityMap.AddField(patriarhaStreet, new Field[] { sofiaCityMap.Start });

            Field pirotskaStreet = new Street("Pirotska", center, 4, 9, 250);
            sofiaCityMap.AddField(pirotskaStreet, new Field[] { patriarhaStreet });

            // crossroad1
            Field bank1 = new Bank("Inferno Invest", Color.White, 4, 8);
            sofiaCityMap.AddField(bank1, new Field[] { pirotskaStreet });

            Field vitoshkaStreet = new Street("Vitoshka", center, 4, 7, 250);
            sofiaCityMap.AddField(vitoshkaStreet, new Field[] { bank1 });

            // add neighbourhood Center2
            Neighbourhood center2 = new Neighbourhood("Center", Color.LightBlue);

            Field slaveikov = new Street("Bul. Slaveikov", center2, 4, 6, 300);
            sofiaCityMap.AddField(slaveikov, new Field[] { vitoshkaStreet });

            Field nationalLotary = new Lottery("National Lottery", Color.DarkGray, 4, 5);
            sofiaCityMap.AddField(nationalLotary, new Field[] { slaveikov });

            Field bulBulgaria = new Street("Bul. Bulgaria", center2, 4, 4, 320);
            sofiaCityMap.AddField(bulBulgaria, new Field[] { nationalLotary });

            // crossroad
            Field crossRoad = new Crossroad("Cross Road", Color.White, 4, 3);
            sofiaCityMap.AddField(crossRoad, new Field[] { bulBulgaria });

            // add neighbourhood Lozenetz
            Neighbourhood lozenetz = new Neighbourhood("Lozenetz", Color.Green);

            Field svetiNaum = new Street("Sveti Naum", lozenetz, 4, 2, 220);
            sofiaCityMap.AddField(svetiNaum, new Field[] { crossRoad });
            Field draganCankov = new Street("Bul. Cankov", lozenetz, 4, 1, 230);
            sofiaCityMap.AddField(draganCankov, new Field[] { svetiNaum });

            Field armeec = new PropInsuranceAgency("Armeec", Color.Turquoise, 4, 0);
            sofiaCityMap.AddField(armeec, new Field[] { draganCankov });

            Field qvorov = new Street("Bul. Qvorov", lozenetz, 3, 0, 220);
            sofiaCityMap.AddField(qvorov, new Field[] { armeec });

            // turn around
            Field feelingLucky = new Lucky("Feel the Luck", Color.Purple, 3, 3);
            sofiaCityMap.AddField(feelingLucky, new Field[] { crossRoad });

            Field empty1 = new EmptyField("Empty", Color.Teal, 2, 3);
            sofiaCityMap.AddField(empty1, new Field[] { feelingLucky });

            // create neighbourhood Ovcha kupel
            Neighbourhood ovchaKupel = new Neighbourhood("OvchaKupel", Color.Orange);

            Field montevideo = new Street("Montevideo", ovchaKupel, 2, 2, 190);
            sofiaCityMap.AddField(montevideo, new Field[] { empty1 });

            Field uniqa = new HealthInsuranceAgency("UNIQA", Color.Turquoise, 2, 1);
            sofiaCityMap.AddField(uniqa, new Field[] { montevideo });

            // end turn around
            Field hrelkov = new Street("Bul. Hrelkov", ovchaKupel, 2, 0, 180);
            sofiaCityMap.AddField(hrelkov, new Field[] { qvorov, uniqa });

            Field lincoln = new Street("Lincoln", ovchaKupel, 1, 0, 180);
            sofiaCityMap.AddField(lincoln, new Field[] { hrelkov });

            // create neighbourhood Lulin
            Neighbourhood lulin = new Neighbourhood("Lulin", Color.DarkBlue);

            Field dobrinovaSkala = new Street("Dobrinova skala", lulin, 0, 0, 160);
            sofiaCityMap.AddField(dobrinovaSkala, new Field[] { lincoln });

            Field vladigerov = new Street("Vladigerov", lulin, 0, 1, 170);
            sofiaCityMap.AddField(vladigerov, new Field[] { dobrinovaSkala });

            Field hospitalLiulin = new Hospital("Liulin", Color.DarkRed, 0, 2);
            sofiaCityMap.AddField(hospitalLiulin, new Field[] { vladigerov });

            Field orion = new Street("Orion", lulin, 0, 3, 160);
            sofiaCityMap.AddField(orion, new Field[] { hospitalLiulin });

            Field stoyanov = new Street("Bul. Stoyanov", lulin, 0, 4, 170);
            sofiaCityMap.AddField(stoyanov, new Field[] { orion });

            Field totoLotary = new Lottery("Toto Lottery", Color.DarkGray, 0, 5);
            sofiaCityMap.AddField(totoLotary, new Field[] { stoyanov });

            // create neighbourhood Nadezda
            Neighbourhood nadezda = new Neighbourhood("Nadezda", Color.LightGreen);

            Field beliDunav = new Street("Beli Dunav", nadezda, 0, 6, 180);
            sofiaCityMap.AddField(beliDunav, new Field[] { totoLotary });

            Field dnepar = new Street("Dnepar", nadezda, 0, 7, 170);
            sofiaCityMap.AddField(dnepar, new Field[] { beliDunav });

            Field dsk = new Bank("DSK", Color.White, 0, 8);
            sofiaCityMap.AddField(dsk, new Field[] { dnepar });

            Field republica = new Street("Republica", nadezda, 0, 9, 170);
            sofiaCityMap.AddField(republica, new Field[] { dsk });

            Field lucky2 = new Lucky("Are You Lucky", Color.Purple, 0, 10);
            sofiaCityMap.AddField(lucky2, new Field[] { republica });

            // create neighbourhood Nadezda
            Neighbourhood mladost = new Neighbourhood("Mladost", Color.Pink);

            Field malinov = new Street("Bul. Malinov", mladost, 0, 11, 210);
            sofiaCityMap.AddField(malinov, new Field[] { lucky2 });

            Field moskov = new Street("Bul. Moskov", mladost, 1, 11, 200);
            sofiaCityMap.AddField(moskov, new Field[] { malinov });

            Field empty4 = new EmptyField("Empty", Color.Teal, 2, 11);
            sofiaCityMap.AddField(empty4, new Field[] { moskov });

            Field preobrazenie = new Street("Preobrazenie", mladost, 3, 11, 200);
            sofiaCityMap.AddField(preobrazenie, new Field[] { empty4 });

            // close
            preobrazenie.NextFields.Add(sofiaCityMap.Start);
            sofiaCityMap.Start.PrevFields.Add(preobrazenie);
            #endregion

            generatedMaps.Add(sofiaCityMap);

            return(generatedMaps);
        }
Beispiel #10
0
 public EmptyAccountDataException(EmptyField emptyFieldType) => EmptyFieldType = emptyFieldType;
Beispiel #11
0
        private List<Field> procesLine(string lineString, int y)
        {
            List<Field> fieldLine = new List<Field>();
            Field previousField = null;
            for (int x = 0; x < lineString.Length; x++)
            {
                // nieuw Vakje object maken
                Field field;

                switch (lineString[x])
                {
                    case 'W':
                        field = new Water();
                        break;
                    case 'D':
                        field = new Dock();
                        break;
                    case 'R':
                        field = new Rail('-');
                        break;
                    case '/':
                        field = new Rail('/');
                        break;
                    case '\\':
                        field = new Rail('\\');
                        break;
                    case 'U':
                        field = new Rail('|');
                        break;
                    case '1':
                        field = new Switch('S');
                        _gameBoard.switch1 = (Switch)field;
                        _gameBoard.switch1.SwitchDirection = SwitchDirection.MIDDLE;
                        break;
                    case '2':
                        field = new Switch('S');
                        _gameBoard.switch2 = (Switch)field;
                        _gameBoard.switch2.SwitchDirection = SwitchDirection.MIDDLE;
                        break;
                    case '3':
                        field = new Switch('S');
                        _gameBoard.switch3 = (Switch)field;
                        _gameBoard.switch3.SwitchDirection = SwitchDirection.MIDDLE;
                        break;
                    case '4':
                        field = new Switch('S');
                        _gameBoard.switch4 = (Switch)field;
                        _gameBoard.switch4.SwitchDirection = SwitchDirection.MIDDLE;
                        break;
                    case '5':
                        field = new Switch('S');
                        _gameBoard.switch5 = (Switch)field;
                        _gameBoard.switch5.SwitchDirection = SwitchDirection.MIDDLE;
                        break;
                    case '8':
                        field = new Water();
                        _gameBoard.ShipEnd = (Water)field;
                        break;
                    case '9':
                        field = new Water();
                        _gameBoard.ShipStart = (Water)field;
                        break;
                    case 'A':
                        field = new StartPoint('A');
                        _gameBoard.PointA = field;
                        break;
                    case 'B':
                        field = new StartPoint('B');
                        _gameBoard.PointB = field;
                        break;
                    case 'C':
                        field = new StartPoint('C');
                        _gameBoard.PointC = field;
                        break;
                    case 'O':
                        field = new Storage();
                        break;
                    case '.':
                        field = new EmptyField();
                        break;
                    default:
                        throw new Exception_GameBoardIncorrectFileFormat(lineString[x]);
                }

                // koppelen met Vakje op dezelfde regel
                if (previousField != null)
                {
                    field.FieldToLeft = previousField;
                    previousField.FieldToRight = field;
                }
                previousField = field;
                fieldLine.Add(field);
            }
            return fieldLine;
        }
Beispiel #12
0
        public void CreateEmptyField()
        {
            var expected = new EmptyField();

            Assert.IsNotNull(expected);
        }
Beispiel #13
0
 public void Visit(EmptyField emptyField)
 {
     Console.Write(" ");
 }
Beispiel #14
0
        private List <Field> procesLine(string lineString, int y)
        {
            List <Field> fieldLine     = new List <Field>();
            Field        previousField = null;

            for (int x = 0; x < lineString.Length; x++)
            {
                // nieuw Vakje object maken
                Field field;

                switch (lineString[x])
                {
                case 'W':
                    field = new Water();
                    break;

                case 'D':
                    field = new Dock();
                    break;

                case 'R':
                    field = new Rail('-');
                    break;

                case '/':
                    field = new Rail('/');
                    break;

                case '\\':
                    field = new Rail('\\');
                    break;

                case 'U':
                    field = new Rail('|');
                    break;

                case '1':
                    field = new Switch('S');
                    _gameBoard.switch1 = (Switch)field;
                    _gameBoard.switch1.SwitchDirection = SwitchDirection.MIDDLE;
                    break;

                case '2':
                    field = new Switch('S');
                    _gameBoard.switch2 = (Switch)field;
                    _gameBoard.switch2.SwitchDirection = SwitchDirection.MIDDLE;
                    break;

                case '3':
                    field = new Switch('S');
                    _gameBoard.switch3 = (Switch)field;
                    _gameBoard.switch3.SwitchDirection = SwitchDirection.MIDDLE;
                    break;

                case '4':
                    field = new Switch('S');
                    _gameBoard.switch4 = (Switch)field;
                    _gameBoard.switch4.SwitchDirection = SwitchDirection.MIDDLE;
                    break;

                case '5':
                    field = new Switch('S');
                    _gameBoard.switch5 = (Switch)field;
                    _gameBoard.switch5.SwitchDirection = SwitchDirection.MIDDLE;
                    break;

                case '8':
                    field = new Water();
                    _gameBoard.ShipEnd = (Water)field;
                    break;

                case '9':
                    field = new Water();
                    _gameBoard.ShipStart = (Water)field;
                    break;

                case 'A':
                    field             = new StartPoint('A');
                    _gameBoard.PointA = field;
                    break;

                case 'B':
                    field             = new StartPoint('B');
                    _gameBoard.PointB = field;
                    break;

                case 'C':
                    field             = new StartPoint('C');
                    _gameBoard.PointC = field;
                    break;

                case 'O':
                    field = new Storage();
                    break;

                case '.':
                    field = new EmptyField();
                    break;

                default:
                    throw new Exception_GameBoardIncorrectFileFormat(lineString[x]);
                }

                // koppelen met Vakje op dezelfde regel
                if (previousField != null)
                {
                    field.FieldToLeft          = previousField;
                    previousField.FieldToRight = field;
                }
                previousField = field;
                fieldLine.Add(field);
            }
            return(fieldLine);
        }