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); }
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); }
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); } } }