《华清远见学习手记》之 网络五子棋游戏QT类的设计与实现 (2)
来源:互联网 发布:seo页面优化 编辑:程序博客网 时间:2024/05/22 07:46
网络五子棋游戏QT类的设计与实现 (2)
第一版的五子棋游戏实在是太简陋了!谁愿意玩这样的游戏?连我自己都觉得没劲,赶快给它增加一个友好一点的界面吧!但是这时QT都没有学呀,图形界面不会做,那就搞一个字符的界面:
1. 我给棋盘类增加了一个用于显示的成员函数void dispChessBoard():
class ChessBoard
{
public:
void setChessBoard();
void dispChessBoard(); // 增加的专门用于显示的成员函数
int setChess(int x,int y,int chs);
int judgeVictory(int x,int y);
private:
int board[19][19];
};
void dispChessBoard()的实现如下:
void ChessBoard::dispChessBoard()
{
cout<<" ";
for(int j=0; j<19;j++)
{
printf(" %02d",j); // 首行显示00-18
}
cout<<endl<<endl;
for(int i=0; i<19;i++) // 有19行
{
printf("%02d",i); // 显示行号
for(int j=0; j<19;j++) // 有19列
{
if(j==0)
printf(" %2c",board[i][j]); // 显示棋子, 在board[19][19]中 'W'表示白棋,'B'表示黑棋 , ' '(空格)没有棋子
else
printf("-%2c",board[i][j]); // 显示横线和棋子
}
printf(" %02d",i); // 显示行号
cout<<endl;
cout<<" ";
for(int j=0; j<19;j++)
{
if(i!=18)
printf(" |"); // 显示竖线
}
cout<<endl;
}
cout<<" ";
for(int j=0; j<19;j++)
{
printf(" %02d",j); // 最后一行显示00-18
}
cout<<endl<<endl;
}
2. 增加了显示函数,还将它“汉化”了,main.cpp 如下所示:
int main()
{
int ret;
ChessBoard ourboard;
MyChess mychs;
ourboard.setChessBoard();//clear the board
ourboard.dispChessBoard();//display the board
while(1)
{
do{
cout<<"白棋,轮到你下了!"<<endl<<endl;
mychs.readInfo('W');// white chess thinking
ret=mychs.setChess(&ourboard);// put the white chess
ourboard.dispChessBoard();//display the board
}while(ret==1);//something wrong,try again!
if(ret==2)
{
cout<<"恭喜白棋!你赢了。"<<endl<<endl;
break;
}
do{
cout<<"黑棋,轮到你下了!"<<endl<<endl;
mychs.readInfo('B');//black chess thinking
ret = mychs.setChess(&ourboard);// put the black chess
ourboard.dispChessBoard();//display the board
}while(ret==1);//something wrong,try again!
if(ret==3)
{
cout<<"恭喜黑棋!你赢了。"<<endl<<endl;
break;
}
}
cout<<"再见!"<<endl<<endl;
}
3. 在上面的程序中,连C++的构造函数都还没有用到,不好意思我们还没学。 好的,看看我的第二版五子棋游戏吧:
- 《华清远见学习手记》之 网络五子棋游戏QT类的设计与实现 (2)
- 《华清远见学习手记》之 网络五子棋游戏QT类的设计与实现 (1)
- 《华清远见学习手记》之 网络五子棋游戏QT类的设计与实现 (3)
- 《华清远见学习手记》之 网络五子棋游戏QT类的设计与实现 (4)
- 《华清远见学习手记》之 网络五子棋游戏QT类的设计与实现 (5)
- 《华清远见学习手记》之 移植网络版五子棋游戏到FS2410
- 《华清远见学习手记》 之3G智能机器人——视频监控客户端软件的设计与实现
- 《华清远见学习手记》之 Ubuntu8.10下 配置网络参数
- 《华清远见学习手记》之 嵌入式Linux开发环境的建立
- 《华清远见学习手记》之 配置Ubuntu8.10 的samba服务
- 《华清远见学习手记》之 配置Ubuntu8.10 的NFS服务
- 《华清远见学习手记》之 配置Ubuntu8.10 的tftp服务
- 《华清远见学习手记》之 移植linux2.6.22.6到FS2410遇到的一些问题
- 《华清远见学习手记》之 ubuntu8.10 下搭建QT4.4.0开发环境
- 《华清远见学习手记》之 移植gspca摄像头驱动到FS2410
- 《华清远见学习手记》之 在FS2410上搭建servfox视频服务器
- 《华清远见学习手记》之 移植Boa网页服务器到FS2410
- 《华清远见学习手记》 之3G智能机器人——移植madplay到FS2410
- winForm中窗体的显示及窗体间的简单传值
- vim插件ZenCoding一些常用的操作
- 6.索引的建立和优化
- android中修改默认语言
- 7.索引的管理
- 《华清远见学习手记》之 网络五子棋游戏QT类的设计与实现 (2)
- 8.搜索请求的过滤和解析
- 9.搜索结果的处理和显示
- 测试WLW
- 非COM环境下的接口编程
- javaeye论坛规则小测验
- JavaScript作用域(Scope)
- 路过图书馆
- ASM 01