【发布时间】:2016-03-18 03:20:31
【问题描述】:
这是我必须检查玩家赢得井字游戏的代码。这是一个很长的 if 语句,可以改进。该板由 9 个图片框组成。我是 C# 初学者。
pBox.Image = Player.players[Player.playerTurn].getImage();
//check for wins
if (pbxSquare0.Image == Player.players[Player.playerTurn].getImage() && //horizontal
pbxSquare1.Image == Player.players[Player.playerTurn].getImage() &&
pbxSquare2.Image == Player.players[Player.playerTurn].getImage()
||
pbxSquare3.Image == Player.players[Player.playerTurn].getImage() &&
pbxSquare4.Image == Player.players[Player.playerTurn].getImage() &&
pbxSquare5.Image == Player.players[Player.playerTurn].getImage()
||
pbxSquare6.Image == Player.players[Player.playerTurn].getImage() &&
pbxSquare7.Image == Player.players[Player.playerTurn].getImage() &&
pbxSquare8.Image == Player.players[Player.playerTurn].getImage()
||
pbxSquare0.Image == Player.players[Player.playerTurn].getImage() && //vertical
pbxSquare3.Image == Player.players[Player.playerTurn].getImage() &&
pbxSquare6.Image == Player.players[Player.playerTurn].getImage()
||
pbxSquare1.Image == Player.players[Player.playerTurn].getImage() &&
pbxSquare4.Image == Player.players[Player.playerTurn].getImage() &&
pbxSquare7.Image == Player.players[Player.playerTurn].getImage()
||
pbxSquare2.Image == Player.players[Player.playerTurn].getImage() &&
pbxSquare5.Image == Player.players[Player.playerTurn].getImage() &&
pbxSquare8.Image == Player.players[Player.playerTurn].getImage()
||
pbxSquare0.Image == Player.players[Player.playerTurn].getImage() && //diagnonal
pbxSquare4.Image == Player.players[Player.playerTurn].getImage() &&
pbxSquare8.Image == Player.players[Player.playerTurn].getImage()
||
pbxSquare2.Image == Player.players[Player.playerTurn].getImage() &&
pbxSquare4.Image == Player.players[Player.playerTurn].getImage() &&
pbxSquare6.Image == Player.players[Player.playerTurn].getImage())
{
//playerturn is the winner
MessageBox.Show(playerturn + "wins");
}
【问题讨论】:
-
如果您想对您的代码提出建议,请将其发布在 Code Review 上,而不是 Stack Overflow 上
-
下载一份 Resharper 并对代码运行检查;它可能会给你一些很好的建议。
标签: c#