예제 #1
0
 private void FeldÜberschreiben(Spielfeld von, Spielfeld nach)
 {
     for (int i = 0; i < 20; i++)
     {
         for (int j = 0; j < 20; j++)
         {
             nach.Feld[j, i] = von.Feld[j, i];
         }
     }
     FeldÜbergeben(von);
 }
예제 #2
0
        private void FeldÜbergeben(Spielfeld feld)
        {
            string übergabe = "";

            for (int i = 0; i < 20; i++)
            {
                for (int j = 0; j < 20; j++)
                {
                    übergabe = übergabe.Insert(übergabe.Length, feld.Feld[j, i].ToString());
                }
            }
            Senden("feüb" + übergabe);
        }
예제 #3
0
        public void Empfangen()
        {
            while (true)
            {
                try
                {
                    if (!client.Connected)
                    {
                        break;
                    }
                    string empfangen = str.ReadLine();

                    switch (empfangen.Substring(0, 4))
                    {
                    case "klas":
                        if (empfangen.Substring(4) != "")
                        {
                            MessageBox.Show("Spieler 1 hat diese Klasse bereits gewählt. Bitte neu Wählen");
                            switch (empfangen.Substring(4))
                            {
                            case "red":
                                btn_Red_Bei.Enabled   = false;
                                btn_Red_Bei.BackColor = Color.Gray;
                                break;

                            case "green":
                                btn_Green_Bei.Enabled   = false;
                                btn_Green_Bei.BackColor = Color.Gray;
                                break;

                            case "blue":
                                btn_Blue_Bei.Enabled   = false;
                                btn_Blue_Bei.BackColor = Color.Gray;
                                break;

                            default:
                                break;
                            }
                        }
                        else
                        {
                            this.Senden(klasse);
                        }
                        break;

                    case "gekl":
                        gegnerklasse = empfangen.Substring(4);
                        break;

                    case "fena":
                        spielfeld     = new Spielfeld(hilfsstring);
                        sfvorbewegung = new Spielfeld(hilfsstring);
                        pB_SpielFeld.BackgroundImage = Image.FromFile("..\\..\\..\\data\\field\\" + hilfsstring + ".bmp");
                        this.Senden(hilfsstring);
                        break;

                    case "fese":
                        spielfeld     = new Spielfeld(empfangen.Substring(4));
                        sfvorbewegung = new Spielfeld(empfangen.Substring(4));
                        pB_SpielFeld.BackgroundImage = Image.FromFile("..\\..\\..\\data\\field\\" + empfangen.Substring(4) + ".bmp");
                        this.Senden(klasse);
                        break;

                    case "tabw":
                        this.BeginInvoke((MethodInvoker) delegate { tablessControl1.SelectTab(4); });
                        geld = Convert.ToInt32(empfangen.Substring(5, 4));
                        lbl_Geld_Anzeige.Text = geld.ToString();;
                        clnummer = Convert.ToInt32(empfangen.Substring(4, 1));
                        bewpnkt  = Convert.ToInt32(empfangen.Substring(9));
                        lbl_Punkte_Anzeige.Text = bewpnkt.ToString();
                        Senden("gekl" + klasse);
                        break;

                    case "fewe":
                        switch (empfangen.Substring(4, 1))
                        {
                        case "2":                   //Bewegung&Angriff

                            break;

                        case "3":                   //Angriff

                            break;

                        case "4":                   //Bewegung

                            break;

                        case "1":
                        case "5":
                            if (btn_Level_UP.Enabled || btn_Runner.Enabled)
                            {
                                FeldÜberschreiben(sfvorbewegung, spielfeld);
                                ElementeVerbergen();
                                ArealLöschen();
                            }

                            break;

                        case "6":
                            PlaySound("OnFigur");
                            if (btn_Level_UP.Enabled)           // Zweiter Click auf Figur
                            {
                                FeldÜberschreiben(sfvorbewegung, spielfeld);
                                ElementeVerbergen();
                                ArealLöschen();
                            }
                            else                                //erster Click auf Figur
                            {
                                int zähler = 0;
                                FeldÜberschreiben(spielfeld, sfvorbewegung);
                                ElementeVerbergen();
                                figurx = xkoord;
                                figury = ykoord;
                                if (clnummer == 0)
                                {
                                    for (int i = 0; i < 7; i++)
                                    {
                                        if (i + figury - 3 >= 0 && i + figury - 3 < 20)
                                        {
                                            for (int j = 0; j < 7; j++)
                                            {
                                                if (j + figurx - 3 >= 0 && i + figury - 3 < 20)
                                                {
                                                    if (spielfeld.Feld[j + figurx - 3, i + figury - 3] == 9 || spielfeld.Feld[j + figurx - 3, i + figury - 3] == 8)
                                                    {
                                                        spielfeld.Feld[j + figurx - 3, i + figury - 3] = 5;
                                                    }
                                                    if (spielfeld.Feld[j + figurx - 3, i + figury - 3] == 5)
                                                    {
                                                        spielfeld.Feld[j + figurx - 3, i + figury - 3] -= Convert.ToInt32(empfangen.Substring(5).Substring(zähler, 1));
                                                    }
                                                }
                                                zähler++;
                                            }
                                        }
                                        else
                                        {
                                            zähler += 7;
                                        }
                                    }
                                    ArealZeichnen();
                                }
                                ElementeAnzeigen(empfangen.Substring(55).Split(','));
                            }

                            break;

                        case "7":
                            PlaySound("OnFigur");
                            if (btn_Level_UP.Enabled)           // Zweiter Click auf Figur
                            {
                                FeldÜberschreiben(sfvorbewegung, spielfeld);
                                ElementeVerbergen();
                                ArealLöschen();
                            }
                            else                                //erster Click auf Figur
                            {
                                int zähler = 0;
                                FeldÜberschreiben(spielfeld, sfvorbewegung);
                                ElementeVerbergen();
                                figurx = xkoord;
                                figury = ykoord;
                                if (clnummer == 1)
                                {
                                    for (int i = 0; i < 7; i++)
                                    {
                                        if (i + figury - 3 >= 0 && i + figury - 3 < 20)
                                        {
                                            for (int j = 0; j < 7; j++)
                                            {
                                                if (j + figurx - 3 >= 0 && i + figury - 3 < 20)
                                                {
                                                    if (spielfeld.Feld[j + figurx - 3, i + figury - 3] == 9 || spielfeld.Feld[j + figurx - 3, i + figury - 3] == 8)
                                                    {
                                                        spielfeld.Feld[j + figurx - 3, i + figury - 3] = 5;
                                                    }
                                                    if (spielfeld.Feld[j + figurx - 3, i + figury - 3] == 5)
                                                    {
                                                        spielfeld.Feld[j + figurx - 3, i + figury - 3] -= Convert.ToInt32(empfangen.Substring(5).Substring(zähler, 1));
                                                    }
                                                }
                                                zähler++;
                                            }
                                        }
                                        else
                                        {
                                            zähler += 7;
                                        }
                                    }
                                    ArealZeichnen();
                                }
                                ElementeAnzeigen(empfangen.Substring(55).Split(','));
                            }

                            break;

                        case "8":               //Spawn Client2

                            if (btn_Level_UP.Enabled)
                            {
                                FeldÜberschreiben(sfvorbewegung, spielfeld);
                                ElementeVerbergen();
                                ArealLöschen();
                            }
                            if (clnummer == 1)
                            {
                                figurx = xkoord;
                                figury = ykoord;
                                ElementeAnzeigen();
                            }

                            break;

                        case "9":               //Spawn Client1
                            if (btn_Level_UP.Enabled)
                            {
                                FeldÜberschreiben(sfvorbewegung, spielfeld);
                                ElementeVerbergen();
                                ArealLöschen();
                            }
                            if (clnummer == 0)
                            {
                                figurx = xkoord;
                                figury = ykoord;
                                ElementeAnzeigen();
                            }
                            break;
                        }
                        break;

                    case "neuf":
                        figurdaten = empfangen.Substring(4).Split(',');
                        if (spielfeld.Feld[Convert.ToInt32(figurdaten[6]), Convert.ToInt32(figurdaten[7])] == 9 ||
                            spielfeld.Feld[Convert.ToInt32(figurdaten[6]), Convert.ToInt32(figurdaten[7])] == 8)
                        {
                            FigurZeichnen(figurdaten[0], gegnerklasse, Convert.ToInt32(figurdaten[6]), Convert.ToInt32(figurdaten[7]));
                        }
                        Senden("weit");
                        break;

                    case "weit":
                        break;

                    case "losg":
                        MessageBox.Show("Runde startet");
                        break;

                    default:
                        MessageBox.Show(empfangen);
                        break;
                    }
                }

                catch (Exception e)
                {
                    MessageBox.Show("Fehler: " + e.Message.ToString() + e.ToString());
                    Environment.Exit(1);
                }
            }
        }