private void HostGame_Click(object sender, EventArgs e) { isHost = true; server = new TcpListener(System.Net.IPAddress.Any, 5732); server.Start(); sock = server.AcceptSocket(); using (var form = new Welcome(true)) { if (form.ShowDialog() == DialogResult.OK) { expertMode = form.ReturnValue1; } } byte[] info = { (byte)Convert.ToInt32(expertMode) }; sock.Send(info); server.Stop(); Scacchiera newGame = new Scacchiera(isHost, expertMode); Visible = false; if (!newGame.IsDisposed) { newGame.ShowDialog(); } }
private static void GiocaPartita() { IScacchiera scacchiera = new Scacchiera(); IOrologio orologio = new Orologio(); IBloccoNote bloccoNote = new BloccoNote(); ITavolo tavolo = new Tavolo(scacchiera, orologio, bloccoNote); bool partitaInCorso = true; tavolo.Vittoria += (sender, colore) => { Console.Clear(); Console.WriteLine($"Vince {tavolo.Giocatori[colore].Nome} ({colore})!"); partitaInCorso = false; tavolo.FinisciPartita(); }; Console.Write("Giocatore bianco: "); string giocatoreBianco = Console.ReadLine(); Console.Write("Giocatore nero: "); string giocatoreNero = Console.ReadLine(); tavolo.RiceviGiocatori(giocatoreBianco, giocatoreNero); tavolo.AvviaPartita(); bool errore = false; bool automatico = false; while (partitaInCorso) { Console.Clear(); Colore coloreDiTurno = orologio.TurnoAttuale; Console.WriteLine($"{tavolo.Giocatori[Colore.Bianco].Nome} ({Colore.Bianco}) VS {tavolo.Giocatori[Colore.Nero].Nome} ({Colore.Nero})"); Console.WriteLine(); Disegna(scacchiera); Console.WriteLine(); if (errore) Console.ForegroundColor = ConsoleColor.Red; Console.Write($"Muove {tavolo.Giocatori[coloreDiTurno].Nome} ({coloreDiTurno}): "); Console.ForegroundColor = ConsoleColor.White; string mossa; if (automatico){ mossa = DeterminaMossa(scacchiera, orologio.TurnoAttuale); Console.Write(mossa); Thread.Sleep(200); } else { mossa = Console.ReadLine(); } if (mossa.Equals("auto", StringComparison.OrdinalIgnoreCase)) { automatico = true; mossa = DeterminaMossa(scacchiera, orologio.TurnoAttuale); Console.Write(mossa); Thread.Sleep(200); } try{ errore = false; tavolo.InserisciMossa(mossa); } catch (Exception) { errore = true; automatico = false; } } Console.ReadLine(); }
private void MessageReceiver_DoWork(object sender, DoWorkEventArgs e) { byte[] info = new byte[1]; sock.Receive(info); if (!isHost) { Scacchiera newGame = new Scacchiera(isHost, Convert.ToBoolean(info[0]), FieldIP.Text); Visible = false; if (!newGame.IsDisposed) { newGame.ShowDialog(); } } }
static void Main(string[] args) { Scacchiera s = Scacchiera.Istanza; Pedone p = new Pedone(Colore.Bianco) { Posizione = s.GetCella('B', 2) }; Torre t = new Torre(Colore.Bianco) { Posizione = s.GetCella('C', 1) }; Alfiere a = new Alfiere(Colore.Bianco) { Posizione = s.GetCella('E', 2) }; Re re = new Re(Colore.Bianco) { Posizione = s.GetCella('E', 1) }; Regina r = new Regina(Colore.Bianco) { Posizione = s.GetCella('G', 3) }; Cavallo c = new Cavallo(Colore.Bianco) { Posizione = s.GetCella('F', 2) }; s.Print(); Console.WriteLine(); Console.WriteLine("".PadRight(40, '-')); Console.WriteLine(); try { p.Muovi(s.GetCella('B', 3)); t.Muovi(s.GetCella('C', 4)); a.Muovi(s.GetCella('B', 5)); re.Muovi(s.GetCella('F', 1)); r.Muovi(s.GetCella('G', 5)); c.Muovi(s.GetCella('E', 5)); s.Print(); }catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); }