并非所有代码路径都返回一个值

我得到了这个编译错误,有什么问题?

public PictureBox getinfo(int i, int j) { return grid[i, j]; } public PictureBox kingmove(int i, int j)///<-----the problem is here { getinfo(i, j); if (i < 9) { grid[i, j] = grid[i - 1, j - 1]; } else { grid[i, j] = grid[i, j]; } 

你的第二个方法没有return语句,但返回类型不同于void
在方法的末尾添加一个return语句,而不是在开头。

您可以将其编辑到上一个问题中。

混合UI和游戏逻辑的方式也很难看。 游戏逻辑应该对WinForms,图片框,……一无所知。
而是编写一个函数,它将游戏状态转换为某个控件/位图/图片框/ …