为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

石头剪子布

2017-09-02 14页 doc 138KB 27阅读

用户头像

is_591137

暂无简介

举报
石头剪子布石头剪子布 石头—剪子—布游戏 一(目的与要求 在游戏中,孩子们用手表示石头、剪子或布中的一个,出拳头表示石头,伸出两根手指 表示剪刀,伸手表示布,孩子们面对面地从1数到3时做出他们的选择,如果所选择是一样 的,则表示平局,否则就按如下规则决定胜负: (1) 石头砸坏剪刀; (2) 剪刀剪碎布; (3) 布覆盖石头。 编程实现计算机与人进行游戏。 二(工具/准备工作 在开始试验之前,应回顾和复习相关知识与内容。 需要一台计算机,起重安装有Visual C++ 6.0、Visual C++ 2005、Visua...
石头剪子布
石头剪子布 石头—剪子—布游戏 一(目的与要求 在游戏中,孩子们用手示石头、剪子或布中的一个,出拳头表示石头,伸出两根手指 表示剪刀,伸手表示布,孩子们面对面地从1数到3时做出他们的选择,如果所选择是一样 的,则表示平局,否则就按如下规则决定胜负: (1) 石头砸坏剪刀; (2) 剪刀剪碎布; (3) 布覆盖石头。 编程实现计算机与人进行游戏。 二(工具/准备工作 在开始试验之前,应回顾和复习相关知识与内容。 需要一台计算机,起重安装有Visual C++ 6.0、Visual C++ 2005、Visual C++ 2005 Express、Dev-C++ 或 MinGW Developer Studio 等集成开发环境软件。 三( 首先定义可产生随机序列的函数,从而达成人机对战的前提,具体定义如下: int main1(int n1) { srand((unsigned)time(0)); n1=rand()%3; return n1; } 实现用户输入选择: char cho; cin>>cho; 根据计算机和用户的选择,判断输赢并输出结果,具体定义如下: int good; good=main1(temp); //计算机随即输入石头、剪子、布,并将其存储于good switch (good) { case 0: cout<<"对方出了剪子\n"; if(cho==49) //字符1的ASCII值为49 { cout<<"势均力敌\n"; ping++,ju++; } else if(cho==50) //字符2的ASCII值为50 { cout<<"您赢了~\n"; ying++,ju++; } else if(cho==51) //字符3的ASCII值为51 { cout<<"您输了~\n"; shu++,ju++; } break; case 1: cout<<"对方出了石头\n"; if(cho==49) { cout<<"您输了\n"; shu++,ju++; } else if(cho==50) { cout<<"势均力敌\n"; ping++,ju++; } else if(cho==51) { cout<<"您赢了~\n"; ying++,ju++; } break; case 2: cout<<"对方出了布\n"; if(cho==49) { cout<<"您赢了~\n"; ying++,ju++; } else if(cho==50) { cout<<"您输了~\n"; shu++,ju++; } else if(cho==51) { cout<<"势均力敌\n"; ping++,ju++; } } 下面为伪代码描述的整个游戏的流程: 设置随机数种子 显示帮助信息 If (用户根据提示选择操作) 根据用户的选择做出相应的处理 输出处理结果 循环游戏 四(具体实现步骤 程序源代码: #include #include #include #include #include int temp,ying,shu,ping,ju; int main1(int n1) //定义可产生随机序列的函数 { srand((unsigned)time(0)); n1=rand()%3; //令计算机只随机产生0、1、2,三种情况,并赋值给n1 return n1; } int main() { cout<<"-------------------------------------------------\n"; cout<<"\n"; cout<<"欢迎进入石头剪子布小游戏世界~\n"; cout<<"按任意键开始..."<>cho; //用户输入选择 if(cho<48||cho>51) //判断用户输入是否正确,将choing定义为char以防止在 { //int型下用户误给cho附入字符导致系统判断出错 cout<<"对不起,输入内容不符,请重新输入0-3的数字!\n"; continue; } if(cho==48)// //字符0的ASCII值为48 { cout<<"真的不想再玩了么\n"; cout<<"玩累了,休息一下:Y 点错了,我还要玩:N\n";//提供用户选择,防止用户手 cout<<"请选择\n"; //误,误输 char cho1; cin>>cho1; if(cho1==89||cho1==121) //y与Y的ASCII码值分别为121和89,使用 { //户选择时不用区分大小写,方便用户. cout<<"战况:局数:"<总结
石头剪子布小游戏本身就是一个比较简易的程序。要想实现石头>剪刀>布>石头„„以及人机对战的基本要求并不困难,但要细心琢磨,你会发现,越是简单的程序,用户就越是关注它的人性化,而且,这样一个小程序中确确实实有太多需要注意的细节。虽然我没有太多的修饰此程序的界面(界面只能说一般),但是我自始至终很注意程序的稳定性。比如在定义储存用户输入值的变量cho时,起初定义为int型,发现在进行do„„while()与if判断语句配合的时候如果用户输入字符而非数字,则程序会出现死循环。于是将int型改为了char型。 总之,我的这个程序的特点就是朴素但很人性,很稳定。他不会因为你的误输而自动结 束,更不会因为你的误输而程序错乱,无论你输入什么样的乱码,他都会很稳定的按着要求执行。 这个石头剪子布游戏,主要就是运用大量的判断加循环完成的,虽没用太多额外的知识,但对于循环的控制还是要十分小心。这个程序也可以定义Game类来做,不过个人觉得没必要,毕竟不是什么太复杂的程序,用类往往小题大做。 总的来说,这次的课程设计还是比较成功的,他让我感受到本上和课上的内容终归是有限的,我们要靠自己的努力去追求课本之外的东西,学会向他人请教,学会利用网络平台,取他人之所长不断地整张自己的见识,才能够编出更上乘的程序。
/
本文档为【石头剪子布】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索