我正在用 C# 创建康威的生命游戏,一切正常,除了刷新面板以显示下一代。我可以在面板上绘制以建立单元格的网格线,使用放置和破坏“生命” simWindow_Paint
,simWindow_MouseClick
但目前我无法更新它。
private void updateGame(){
int living = 0;
int dead = 0;
for(int i = 1; i < gameHeight; i++)
for (int j = 1; j < gameWidth; j++){
//set cell location and size
Rectangle cell = new Rectangle();
cell.Height = cell.Width = 9;
int X = j - 1;
int Y = i - 1;
cell.X = Convert.ToInt32(X * 10 + 1);
cell.Y = Convert.ToInt32(Y * 10 + 1);
using (Graphics g = this.simWindow.CreateGraphics()){
if (gameArray[i, j] == true){
Brush brush = new SolidBrush(Color.Red);
g.FillRectangle(brush, cell);
++living;
} else {
Brush brush = new SolidBrush(Color.White);
g.FillRectangle(brush, cell);
++dead;
}
}
}
}
我不确定我在 C# 中尝试做的事情是否可行,我已经在 Pascal 中做过,但我不确定 C# 是否以同样的方式工作......