//hämtar rutlistan samt rutbrädet som bytes och returerar som objekt public void HämtaRutor() { while (true) { using (NamedPipeClientStream pipe = new NamedPipeClientStream(".", "test-pipe" + spelare.ToString(), PipeDirection.InOut)) { try { { bool s**t; //Ta emot rutor och avgör om det är dennas tur try { pipe.Connect(30000); } catch { meddela("brädet svarade inte inom 30 sekunder och AIn stängs därför av."); System.Environment.Exit(1); } if (pipe.IsConnected) { pipe.ReadMode = PipeTransmissionMode.Message; byte[] messageSlut = TaEmotMeddelande(pipe); s**t = (bool)Deserialize(messageSlut); if (s**t) { System.Environment.Exit(1); } byte[] messageRutor = TaEmotMeddelande(pipe); rutor = (Ruta[, ])Deserialize(messageRutor); //pipe.WriteByte(1); byte[] messageRutnät = TaEmotMeddelande(pipe); rutnät = (Rutnät)Deserialize(messageRutnät); Point svar = AI(); if (rutor[svar.X, svar.Y].Mode != -1) { meddela("upptagenpunkt"); svar = random(); } lastegenruta = new Ruta(svar.X, svar.Y, 1, spelare); byte[] messagebytes = Serialize(svar); pipe.Write(messagebytes, 0, messagebytes.Length); } else { meddela("Kunde ej ansluta till brädet."); Application.Exit(); } } } catch { meddela("krash"); System.Environment.Exit(1); } } } }
//Importerar information från startform public void Import(Spelare[] spl, Rutnät rutn) { spelare = spl; rutnät = rutn; }
//kontrollerar så att spelet är startklart annars meddelar den vad som är fel //Om allt är klart för start startar den. private void btnKör_Click(object sender, EventArgs e) { bool startKlar = false; //kontrollerar om klart för start genom att kalla på KollaSpelare för respektive spelläge switch (cbxAntalSpelare.SelectedIndex) { case 0: startKlar = KollaSpelare(1, 1); break; case 1: startKlar = KollaSpelare(0, 2); break; case 2: startKlar = KollaSpelare(0, 3); break; case 3: startKlar = KollaSpelare(2, 0); break; default: Meddela("Vänligen ange hur många som ska spela.", MessageBoxIcon.Information); cbxAntalSpelare.SelectAll(); startKlar = false; break; } //startar respektive spelläge och samlar in spelarna i en lista if (startKlar == true) { List <Spelare> spelare = new List <Spelare>(); Rutnät rutnät = new Rutnät(); switch (cbxAntalSpelare.SelectedIndex) { case 0: spelare = AddSpelare(1, 1); rutnät = AddRutnät(1, 1); break; case 1: spelare = AddSpelare(0, 2); rutnät = AddRutnät(0, 2); break; case 2: spelare = AddSpelare(0, 3); rutnät = AddRutnät(0, 3); break; case 3: spelare = AddSpelare(2, 0); rutnät = AddRutnät(2, 0); break; default: Meddela("Hur gick det där till!!??? Vänligen säg til programeraren hur du gjorde!!???", MessageBoxIcon.Information); break; } //Sätter igång AI från valda filer of minns foreach (string fil in aiFilvägar) { if (File.Exists(fil)) { System.Diagnostics.Process.Start(fil); } } //Startar form Form1 form = new Form1(); form.Import(spelare.ToArray(), rutnät); form.Show(); this.Hide(); } }