黑马程序员技术交流社区
标题:
剪刀石头布完善,增强玩家体验,只求技术分,线上代码
[打印本页]
作者:
吴伟健
时间:
2015-4-11 21:08
标题:
剪刀石头布完善,增强玩家体验,只求技术分,线上代码
今晚自习,作为完全0基础的我自己完善了下剪刀石头布游戏的代码,感觉每天都在进步,来到黑马几天,每天都觉得有所前进,心里暗自高兴,贴上代码,希望能给高点技术分,谢谢!!!
#include <stdlib.h>
#include <stdio.h>
int main(int argc, const char * argv[]) {
while (1) { //主题程序写完,可以搞个while死循环,一直玩下去
//1.定义变量存储电脑的随机数值
int computer = arc4random_uniform(3);
//2.请用户输入一个数
printf("请输入一个数,0.剪刀,1.石头,2.布\n");
//定义一个变量存储用户输入的值
int player = -1;
scanf("%d",&player);
//3.对用户输入的数合法性进行判断
while (player <0 || player>2) {
printf("你语文是体育老师教的吗?请输入0 1 2!!!\n");
scanf("%d",&player);
}
printf("\n");
if (player ==0) {
printf("玩家:剪刀\n"); //打印玩家出拳
}else if(player==1 ){
printf("玩家:石头\n");
}else{
printf("玩家:布\n");
}
printf("\n");
if (computer ==0) { //打印电脑出拳
printf("电脑:剪刀\n");
}else if(computer==1 ){
printf("电脑:石头\n");
}else{
printf("电脑:布\n");
}
//4.对用户输入的数字和电脑的进行判断
if ((player==0&&computer==2)||
(player==1&&computer==0)||
(player==2&&computer==1)) {
printf("恭喜你赢了!!!\n");
printf("\n");
} else if((player==2&&computer==0)||
(player==0&&computer==1)||
(player==1&&computer==2)){
printf("哈哈,你输了!!!\n");
printf("\n");
}else {
printf("\n");
printf("平局\n");
}
char op; //定义一个变量存储用户输入判断的值
scanf("%c",&op);
while (op!='Y' && op!='N') {
printf("你丫的还玩不玩了,继续玩请输入Y,不玩了请输入N!!!\n");
scanf("%c",&op);
}
if (op=='N') { //如果不玩了,跳出循环
break;
}
}
return 0;
}
增强了用户体验,有兴趣的朋友运行试试,还有什么可以改进的地方希望能多多交流,这里感谢旁边哥们的指导,希望早日甩掉小白的帽子,向小牛进军!
作者:
深情眸
时间:
2015-4-11 21:10
不错哦!都蛮好
作者:
糊涂娃
时间:
2015-4-11 21:11
很专业的啊!
作者:
上古丶
时间:
2015-4-11 21:16
不错嘛...感谢分享
作者:
大路朝天
时间:
2015-4-11 21:22
很不错,膜拜中
作者:
bieny
时间:
2015-4-11 21:34
其实可以再简化下
if ((player==0&&computer==2)||
(player==1&&computer==0)||
(player==2&&computer==1)) {
printf("恭喜你赢了!!!\n");
printf("\n");
} else if((player==2&&computer==0)||
(player==0&&computer==1)||
(player==1&&computer==2)){
printf("哈哈,你输了!!!\n");
printf("\n");
}else {
printf("\n");
printf("平局\n");
}
复制代码
作者:
bieny
时间:
2015-4-11 21:36
本帖最后由 bieny 于 2015-4-11 21:37 编辑
这样
</blockquote></div>
<div class="blockcode"><blockquote>if ((player==0&&computer==2)||
(player==1&&computer==0)||
(player==2&&computer==1)) {
printf("恭喜你赢了!!!\n");
printf("\n");
} else if((player==computer)
printf("平局\n");
}else {
printf("你输了");
}
复制代码
作者:
吴伟健
时间:
2015-4-11 21:41
受用了,老大,分点黑马币给我呗:lol
作者:
longer057
时间:
2015-4-11 21:42
大神,好流弊,膜拜,感谢分享----
作者:
赵俊腾
时间:
2015-4-11 21:43
表示完全惊呆了,膜拜中
作者:
我们要勇敢
时间:
2015-4-11 21:44
楼主很有童心呀
作者:
吴伟健
时间:
2015-4-11 21:50
楼上的老大,你技术分够了,施舍点黑马币把
作者:
距离
时间:
2015-4-11 21:53
很不错哎,
作者:
tyisbest
时间:
2015-4-11 22:00
牛逼,增强的不错
作者:
吴伟健
时间:
2015-4-11 22:01
bieny 发表于 2015-4-11 21:36
这样
确实不错,换一种思考方式,一下简单明了了,谢谢
作者:
yxnheima
时间:
2015-4-11 22:06
你确定你是零寄出的。
作者:
吴伟健
时间:
2015-4-11 22:09
本帖最后由 吴伟健 于 2015-4-11 22:12 编辑
我是学修飞机的,你说能不0基础吗:o
作者:
zeizei
时间:
2015-4-11 22:13
杠杠的,很牛的样子
作者:
chenzuliang1993
时间:
2015-4-11 22:39
嗯,很强大,学习了
作者:
Logic
时间:
2015-4-11 23:00
这也行?
作者:
花短裤的夏天
时间:
2015-4-12 00:10
棒棒哒!
作者:
吴伟健
时间:
2015-4-12 10:24
怎么没见加技术分,求解下技术分流程
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2