石头-剪刀-布游戏C代码
福建江夏学院电子信息科学系
课程设计报告
课 题: 石头-剪刀-布游戏
专业班级: 10信息管理与信息系统(本科)2班
学 号: 3100814077
姓 名: 周铭忠
指导老师: 陈军
日 期: 2011.12.21
目 录
1.课题简介……………………………………………………………1
2. 设计过程…………………………………………………………………………1
3. 具体设计…………………………………………………………………………4
4.测试………………………………………………………………7
5. 总结………………………………………………………………………………9
设计体会……………………………………………………………………………9
参考文献……………………………………………………………………………9
1.课题简介
在游戏中,孩子们用手表示石头、剪刀或布中的一个,出拳头表示石头,伸出两根手指表示剪刀,伸手表示布,孩子们面对面地从1数到3时做出他们的选择,如果所作的选择是一样的,则表示平局,否则就按如下规则决定胜负:(1)
图1:用户选择模块流程图
2、机器选择模块,程序流程图如下所示:
图2:机器选择模块流程图
3、游戏结果模块,程序流程图如下所示:
图3:游戏结果模块流程图
4、判断结果模块,程序流程图如下所示:
图4:判断结果模块流程图
5、每局游戏结果模块,程序流程图如下所示:
图5:每局游戏结果模块流程图
(三)具体设计分析如下:
1、在头文件head.h中定义枚举类型enum c_h_s{cloth,hammer,scissors,game
,help,instructions,quit}来列出游戏选择项,同时定义一个类Game把需要让外界调用的成员函数select( )、mach( )、gamehelp( )、Win_lose( )、gameshow( )、solution( )、instruct( )、Game()指定为公用的, 为了保证类的封装性和信息的隐蔽, 把数据成员int win、int lose、int tie 、enum c_h_s player、enum c_h_s machine指定为私有的。
2、在源文件head.cpp中定义构造函数Game(),对赢、输、平局的数据成员初始化为0。
3、在源文件head.cpp中定义成员函数select(),获取玩家选择一个命令(即在石头、剪刀、布、游戏结果、游戏帮助、游戏介绍、退出中做出选择),并将选择的结果返回。
4、在源文件head.cpp中定义成员函数mach(),实现机器对锤子、剪刀或布选择,这中间用到随机函数,利用到time.h和stdlib.h头文件,以及关键字rand、srand。
5、在源文件head.cpp中定义成员函数gameshow(int win,int lose,int tie ),输出游戏结果,包含有赢、输、平局以及游戏总次数的情况。
6、在源文件head.cpp中定义成员函数gamehelp( ),输出各字符所表示的意义,以帮助玩家进行选择。
7、在源文件head.cpp中定义成员函数成员函数win_lose(enum c_h_s player,enum c_h_s machine ),读取玩家和电脑的选择,根据游戏规则判断玩家赢、输或平局,返回判断结果。
8、在源文件head.cpp中定义成员函数instruct( ),对游戏规则进行说明。最后定义成员函数solution( ),统计游戏从开始运行到现在运行的结果,并输出每局的游戏结果。
9、在源文件game.cpp中,定义主函数。在主函数中,创建游戏类对象g,调用对象g的成员函数solution( ),开始游戏。
3.具体设计
//head.h
enum c_h_s{cloth,hammer,scissors,game,help,instructions,quit};
class Game //Game类
{
public:
Game(); //构造函数
enum c_h_s select( ); //选择命令函数
enum c_h_s mach( ); //机器选择函数
void gamehelp( );/