山东大学计算机科学与技术学院计算机图形学课程实验报告
glutAttachMenu(GLUT_RIGHT_BUTTON);
}
效果图如下:
2、实现棋子的相关操作。
该部分操作包括:走子和吃子。
选定一枚棋子,对其
移动,若目标位置没有棋子,则移动到该位置;若有棋子,则“吃掉”目标位置的棋子。
关键代码:
//判断点x,y是否在连接处,即鼠标所点地方是否有效
bool isOnJunc(int x, int y)
{
choChess[0] = -1;
choChess[1] = -1;
for (int i = 0; i < inyLineNum; i++)
cbState = 0;
}
reDisplay();
}
}
效果截图:
3、在菜单栏添加一个保存棋盘和恢复棋盘的选项,用于存盘与恢复。
关键代码:
/*
保存棋盘
*/
void saveBoard()
{
ofstream outf;
outf.open("board.txt");
if (!outf)
{
cout << "保存棋盘出错!" << endl;
return;
}
for (int i = 0; i < inyLineNum; i++)
{
for (int j = 0; j < inxLineNum; j++)
{
outf << board[i][j] << " ";
}
outf << endl;
结论分析与体会:。