コード例 #1
0
        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();
            }
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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();
                }
            }
        }
コード例 #4
0
        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();
        }