Example #1
0
        private void Update_Tick(object sender, EventArgs e)
        {
            if (!game.GameIsEnded())
            {
                game.Draw();

                switch (game.WhoIsWon())
                {
                case Player.X:
                    game.EndGame();
                    MessageBox.Show("X");
                    break;

                case Player.O:
                    game.EndGame();
                    MessageBox.Show("O");
                    break;

                case Player.DRAW:
                    game.EndGame();
                    MessageBox.Show("DRAW");
                    break;
                }
            }
        }
Example #2
0
        private void botField_MouseClick(object sender, MouseEventArgs e)
        {
            if (botGameIsPlaying)
            {
                botGameCopy = botGame.Clone();

                if (botGame.SetMark(new Point(e.X, e.Y), playerColor) == "ERROR")
                {
                    return;
                }

                CheckGameState();



                if (!botGame.GameIsEnded())
                {
                    String gameState = botGame.gameStateToString();
                    String botMove   = bot.NextMove(gameState);
                    Console.WriteLine(botMove);

                    botGame.SetMark(botMove);

                    CheckGameState();

                    if (analysis.Checked && botGameIsPlaying)
                    {
                        botGame.DisableAnalysis();
                        botGame.Draw();
                        String scores = bot.Analysis(botGame.gameStateToString());
                        botGame.EnableAnalysis(scores);
                    }
                }
                botGame.Draw();
            }
        }
        private void RoomUpdate(object sender, EventArgs e)
        {
            String response = Client.SendMessage("getRoomInfo;" + Client.GetSelectedGame());

            if (response == "gameIsCanceled")
            {
                leave_Click(sender, e);
                MessageBox.Show("Game is canceled");
            }
            String[] tokens = response.Split(';');

            if (response.Split(';').First() == Client.GetLogin())
            {
                leave.Text = "Close room";
            }



            if (response.Contains(";Playing"))
            {
                leave.Text     = "Leave room";
                accept.Enabled = false;

                this.Text = "Playing:    " + tokens[0] + " [" + tokens[1] + "] " + " - " +
                            tokens[2] + " [" + tokens[3] + "] ";

                time.Text = "Time:\r\n\r\n" + tokens[0] + ":  " + ToClockFormat(tokens[4]) +
                            "\r\n" + tokens[2] + ":  " + ToClockFormat(tokens[5]);

                turn.Text = tokens[9] + "'S TURN";

                if (tokens[9] == Client.GetLogin())
                {
                    isMyTurn = true;
                }
                else
                {
                    isMyTurn = false;
                }

                if (tokens[10] == "X")
                {
                    player = Player.X;
                }

                if (tokens[10] == "O")
                {
                    player = Player.O;
                }

                String history = response.Split('{')[1].Split('}').First();

                if (gameHistory != history)
                {
                    gameHistory = history;
                    game        = new UTTT(gameField);
                    String[] moves = history.Split(';');
                    foreach (String move in moves)
                    {
                        game.SetMark(move);
                    }
                }
            }
            else if (response.Contains(";Ended"))
            {
                if (!game.GameIsEnded())
                {
                    game.EndGame();
                }

                if (response.Contains('{'))
                {
                    String history = response.Split('{')[1].Split('}').First();

                    if (gameHistory != history)
                    {
                        gameHistory = history;
                        game        = new UTTT(gameField);
                        String[] moves = history.Split(';');
                        foreach (String move in moves)
                        {
                            game.SetMark(move);
                        }
                    }
                }
            }
            else if (response.Contains(";Created"))
            {
                accept.Enabled = true;
                turn.Text      = "";
                this.Text      = Client.GetSelectedGame() + "'s room";
                time.Text      = "Time: " + (int.Parse(tokens[2]) / 60).ToString() + " minutes.";
            }


            if (response.Split(';').First() == Client.GetLogin())
            {
                accept.Enabled = false;
            }

            chat.Text = tokens.Last();
        }