【发布时间】:2019-05-22 20:02:47
【问题描述】:
我正在尝试为学校作业编写黑白棋游戏,但我有一个
当我从另一个类调用数组时出现问题。
我使用这个 if 语句来检查移动是否合法。它从 playermove 类调用 CheckLegal 移动方法。
if(PlayerMove.CheckLegal(Yarray,Xarray))
{
//changes the turn
if (turn) { turn = false; } else { turn = true; }
if (turn) { value = 1; } else { value = -1; }
GameState[Yarray, Xarray] = value;
Board.Invalidate();
}
CheckLegal 方法是这样的。
public bool CheckLegal(int Yarray,int Xarray)
{
var Form1 = new Form1();
bool result;
if(Convert.ToInt32(Form1.GameState.GetValue(Yarray,Xarray)) == 0) { result = true; }
else { result = false; }
return result;
}
If 语句,如果为真,则在某个点更改 Gamestate 数组的值。唯一的问题是,当我在 Checklegal 方法中调用 Gamestate 数组时,我没有得到更新的值。但是如果 CheckLegal 方法不在另一个类中,我会得到更新的值。
谁能解释一下这是如何工作的?
以及如何在我的 PlayerMove 类中获取更新后的 Gamestate 值?
【问题讨论】:
-
var Form1 = new Form1();创建一个新实例 - 它没有连接到您调用它的那个 -
您正在创建
Form1的新实例,而应该使用已经存在的表单实例。