示例#1
0
        public void VerarbeiteSchussErgebniss(Koordinaten koords, SchussErgebnis result)
        {
            int index = koords.Reihe + koords.Spalte;
            var Tile  = this.schussSpielfeld.SpielfeldTiles.At(koords.Reihe, koords.Spalte);// schussSpielfeld.SpielfeldTiles[index];//.At(koords.Reihe, koords.Spalte);

            switch (result)
            {
            case SchussErgebnis.Hit:
                Tile.Teilbelegung = Teilbelegung.Getroffen;
                break;

            default:
                Tile.Teilbelegung = Teilbelegung.Miss;
                break;
            }
        }
示例#2
0
        public SchussErgebnis  VerarbeiteSchuss(Koordinaten koords)
        {
            int           index = koords.Reihe + koords.Spalte;
            SpielfeldTile Tile  = Spielfeld.SpielfeldTiles.At(koords.Reihe, koords.Spalte);// [index];//.At(koords.Reihe, koords.Spalte);

            if (!Tile.istBesetzt)
            {
                //Main.EventBox.Text += Environment.NewLine + Name + " says: \"Miss!\"";
                return(SchussErgebnis.Miss);
            }
            else
            {
                var schiff = Schiffe.First(x => x.Teilbelegung == Tile.Teilbelegung);
                schiff.Treffer++;
                if (schiff.istGesunken)
                {
                    Brush brush = Brushes.Red;
                    //Main.EventBox.Text += Environment.NewLine + Name + " says: \" Du hast mein " + schiff.Name + " versenkt!";
                    if (schiff.Teilbelegung == Teilbelegung.AircraftCarrier && this.Name == "AI")
                    {
                        Main.ACControl.SetColor(brush);
                    }
                    else if (schiff.Teilbelegung == Teilbelegung.Battleship && this.Name == "AI")
                    {
                        Main.BSControl.SetColor(brush);
                    }
                    else if (schiff.Teilbelegung == Teilbelegung.Cruiser && this.Name == "AI")
                    {
                        Main.CControl.SetColor(brush);
                    }
                    else if (schiff.Teilbelegung == Teilbelegung.Destroyer && this.Name == "AI")
                    {
                        Main.DControl.SetColor(brush);
                    }
                    else if (schiff.Teilbelegung == Teilbelegung.Submarine && this.Name == "AI")
                    {
                        Main.SControl.SetColor(brush);
                    }
                }
                else
                {
                    //Main.EventBox.Text += Environment.NewLine + Name + " says: \"Treffer!\"";
                }
                return(SchussErgebnis.Hit);
            }
        }
        public Koordinaten convertCanvasNameToKoordinaten(string name)
        {
            String[] alphabet = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J" };
            string   test     = name.Substring(0, 1);
            int      reihe    = Array.IndexOf(alphabet, test);
            string   test2    = "";

            if (name.Length == 2)
            {
                test2 = name.Substring(1, 1);
            }
            else if (name.Length == 3)
            {
                test2 = name.Substring(1, 2);
            }
            int spalte = (int.Parse(test2) - 1);

            Koordinaten result = new Koordinaten(reihe, spalte);

            return(result);
        }
示例#4
0
        public List <SpielfeldTile> GetNachbarn(Koordinaten koordinaten)
        {
            int reihe  = koordinaten.Reihe;
            int spalte = koordinaten.Spalte;
            List <SpielfeldTile> spielfeldTiles = new List <SpielfeldTile>();

            if (spalte > 0)
            {
                spielfeldTiles.Add(SpielfeldTiles.At(reihe, spalte - 1));
            }
            if (reihe > 0)
            {
                spielfeldTiles.Add(SpielfeldTiles.At(reihe - 1, spalte));
            }
            if (reihe < 9)
            {
                spielfeldTiles.Add(SpielfeldTiles.At(reihe + 1, spalte));
            }
            if (spalte < 9)
            {
                spielfeldTiles.Add(SpielfeldTiles.At(reihe, spalte + 1));
            }
            return(spielfeldTiles);
        }
示例#5
0
 public SpielfeldTile(int reihe, int spalte)
 {
     this.name    = alphabet[reihe] + (spalte + 1);
     koordinaten  = new Koordinaten(reihe, spalte);
     Teilbelegung = Teilbelegung.Leer;
 }