關於程序中的錯誤:獲取(適用於井字C#程序)
我寫了一個C#代碼製作井字。它是在Windows窗體應用程序(Visual Studio)中製作的。 在玩此遊戲時,當X或O獲勝時,方法=>checkForwinner()被稱爲可以進行水平,垂直和對角檢查以確定勝利者。變量there_is_a_winner設置爲true,並顯示消息「獲勝者被顯示」。否則它會檢查繪圖。
錯誤:
當我遵守這個代碼,它示出了0錯誤/警告/ messages.But的那inspite,這個代碼是行不通的。它無法確定勝利者。彈出框,顯示誰贏了/ draw..never執行,除此之外,此代碼工作正常。我希望有人能幫忙。
在此先感謝。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
bool turn = true;//(To check turn) True means X's turn, False=Y turn
int turn_count = 0;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void aboutToolStripMenuItem_Click(object sender, EventArgs e)/*About Section*/
{
MessageBox.Show("This Program is of Tic Tac Toe. It was created by Me for his C# project.","Tic Tac Toe -About");
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)/*Exit Section*/
{
Application.Exit();
}
private void button_click(object sender, EventArgs e)
{
Button b = (Button)sender;
if(turn)
b.Text="x";
else
b.Text="o";
turn=!turn;
b.Enabled = false;//disable the button, to prevent double entering.
turn_count++;
}
private void checkForwinner()
{
bool there_is_a_winner= false;
//horizontal check
if ((A1.Text == A2.Text) && (A2.Text == A3.Text) && (!A1.Enabled))
there_is_a_winner = true;//if above conditions are true, then bool variable=true.
else if ((B1.Text == B2.Text) && (B2.Text == B3.Text) && (!B1.Enabled))
there_is_a_winner = true;
else if ((C1.Text == C2.Text) && (C2.Text == C3.Text) && (!C1.Enabled))
there_is_a_winner = true;
//Vertical Check
else if ((A1.Text == B1.Text) && (B1.Text == C1.Text) && (!A1.Enabled))
there_is_a_winner = true;
else if ((A2.Text == B2.Text) && (B2.Text == C2.Text) && (!A2.Enabled))
there_is_a_winner = true;
else if ((A3.Text == B3.Text) && (B3.Text == C3.Text) && (!A3.Enabled))
there_is_a_winner = true;
//Diagonal Check
else if ((A1.Text == B2.Text) && (B2.Text == C3.Text) && (!A1.Enabled))
there_is_a_winner = true;
else if ((A3.Text == B2.Text) && (B2.Text == C1.Text) && (!C1.Enabled))
there_is_a_winner = true;
if (there_is_a_winner)
{
dissableButtons();// If there is a winner call for buttons to be disbaled.
String winner = "";
if (turn)
winner = "0";
else
winner = "x";
MessageBox.Show(winner + "Wins!", "Congratulations!");
}
else
{
if (turn_count == 9)
MessageBox.Show("Match Draw", "Result");
}
}
private void dissableButtons()
{
try
{
foreach (Control c in Controls)
{
Button b = (Button)c;
b.Enabled = false;//If there is a winner, disable all the buttons on the form
}
}
catch { }
}
// New Game//Need to Reset Everything
private void toolStripMenuItem2_Click(object sender, EventArgs e)
{
turn = true;
turn_count = 0;
try
{
foreach (Control c in Controls)
{
Button b = (Button)c;
b.Enabled = true;
b.Text = "";//Initially we want blank Text
}
}
catch { }
}
}
}
使用調試器,並通過您的代碼步。另外「它不工作」太廣泛 - 請解釋您提供的輸入和您期望的輸出。 – Default