コード例 #1
0
ファイル: Form1.cs プロジェクト: wang-xinhong/CodeContracts
        public void Turn(int gestureID)
        {
            CodeContract.Requires(gestureID > 0);
            CodeContract.Requires(i == winnersDict.Count);

            if (engine.players.Count != 1)
            {
                roundNumber++;

                console.AppendText("---------Round " + roundNumber + "---------" + Environment.NewLine);

                if (engine.players.ContainsKey("User"))
                {
                    engine.players["User"] = gestureID;
                }
                else
                {
                    console.AppendText(Environment.NewLine + "You are not in the game anymore" + Environment.NewLine + Environment.NewLine);
                }

                engine.GetAllCompGestures();
                WriteAllGestures();

                endTurnWin = engine.CalculateWinner();

                if (endTurnWin == (int)gesture.rock)
                {
                    console.AppendText(Environment.NewLine + "Rock wins." + Environment.NewLine + Environment.NewLine);
                }
                else if (endTurnWin == (int)gesture.paper)
                {
                    console.AppendText(Environment.NewLine + "Paper wins." + Environment.NewLine + Environment.NewLine);
                }
                else if (endTurnWin == (int)gesture.scissors)
                {
                    console.AppendText(Environment.NewLine + "Scissors wins." + Environment.NewLine + Environment.NewLine);
                }
                else if (endTurnWin == 4)
                {
                    console.AppendText(Environment.NewLine + "Rock and paper tie." + Environment.NewLine + Environment.NewLine);
                }
                else if (endTurnWin == 5)
                {
                    console.AppendText(Environment.NewLine + "Paper and scissors tie." + Environment.NewLine + Environment.NewLine);
                }
                else if (endTurnWin == 6)
                {
                    console.AppendText(Environment.NewLine + "Scissors and rock tie." + Environment.NewLine + Environment.NewLine);
                }
                else if (endTurnWin == 0)
                {
                    console.AppendText(Environment.NewLine + "Draw." + Environment.NewLine + Environment.NewLine);
                }
                else if (endTurnWin == 7)
                {
                    console.AppendText(Environment.NewLine + "AN ERROR HAS OCCURED" + Environment.NewLine + Environment.NewLine);
                }

                if (engine.players.Count != 1)
                {
                    if (engine.players.ContainsKey("User"))
                    {
                        console.AppendText("Make your next gesture." + Environment.NewLine + Environment.NewLine);
                    }
                    else
                    {
                        console.AppendText("Click any button to see the next round." + Environment.NewLine + Environment.NewLine);
                    }
                }
                else
                {
                    winnersDict.Add(i, engine.players.Keys.ToArray().GetValue(0).ToString());
                    if (winners.Items.Contains((winnersDict.Count(name => name.Value == engine.players.Keys.ToArray().GetValue(0).ToString()) - 1) + " ------ " + engine.players.Keys.ToArray().GetValue(0).ToString()))
                    {
                        winners.Items.Remove((winnersDict.Count(name => name.Value == engine.players.Keys.ToArray().GetValue(0).ToString()) - 1) + " ------ " + engine.players.Keys.ToArray().GetValue(0).ToString());
                    }
                    winners.Items.Add(winnersDict.Count(name => name.Value == engine.players.Keys.ToArray().GetValue(0).ToString()) + " ------ " + engine.players.Keys.ToArray().GetValue(0).ToString());
                    i++;
                    MessageBox.Show(engine.players.Keys.ToArray().GetValue(0).ToString() + " is the winner.");
                    console.AppendText(engine.players.Keys.ToArray().GetValue(0).ToString() + " is the winner.");
                }
            }
        }