黑马程序员技术交流社区
标题:
编的石头剪刀布 欢迎批评指正(感谢彬仔的帮助)
[打印本页]
作者:
尹世伟
时间:
2015-5-20 21:53
标题:
编的石头剪刀布 欢迎批评指正(感谢彬仔的帮助)
//
// main.c
// 剪刀石头布
//
// Created by pcbeta on 15/5/20.
// Copyright (c) 2015年 ahyin007. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
int main()
{
//剪刀>布;布>石头;石头>剪刀;
//剪刀0 石头1 布2
int computer = -1;
int player = -1;
char *str[]={"石头","剪刀","布"};
computer = arc4random_uniform(3);//0-2(n-1)随机数
printf("电脑出的是%s\n",str[computer]);//电脑出拳
printf("请出拳: 0-石头 1-剪刀 2-布\n");//提示用户出拳0-石头 1-剪刀 2-布
scanf("%d",&player);//接收用户输入
printf("用户出的是%s\n",str[player]);//输出用户输入
if (player < 0 || player > 2)// 如果用户输入的整数不是0,1,2提示输入错误
{
printf("输入错误\n");
return 0;
}
if (computer > player )
{
if (computer == 2 && player == 0)// 电脑布 赢 用户石头
{
printf("你输了\n");
}
else printf("你赢了\n");//电脑石头 输 用户剪刀;电脑剪刀 输 用户布
}
if (computer == player)//平局
{
printf("平局\n");
}
if (computer < player)
{
if(computer == 0 && player == 2) printf("你赢了\n");// 电脑石头 输 用户布
else printf("你输了\n");//电脑石头 赢 用户剪刀;电脑剪刀 赢 用户布
}
return 0;
}
复制代码
作者:
宋兴1228
时间:
2015-5-20 22:28
1111111111111
作者:
Rdxer
时间:
2015-5-20 23:34
楼上这样合适吗,,,
作者:
梦初醉
时间:
2015-5-21 00:11
楼主这样合适吗?
作者:
x331275955
时间:
2015-5-21 00:14
我也没事弄了一个.
#include <stdio.h>
#include <stdlib.h>
int main()
{
//用来判定用户是否进行下次游戏.
for(int again = 0;again == 0;)
{
//定义两个变量,用来储存电脑和人的出拳,
int computer=0,person=0;
//随机3个数字,用来当做电脑的出拳(因为个人不喜欢0,所以在得到0时会重新生成直到得到1,2,3).
while (computer == 0) {
computer = arc4random_uniform(4);
}
//提示用户输入相对应的数字用来表示想出的拳
printf("请输入您想出的拳所对应的数字:\n1--剪刀\t2--石头\t3--布\n");
scanf("%d",&person);
//判定输入是否合法
while(person >=4||person <= 0) {
//提示用户输入相对应的数字,表示想出的拳
printf("您的输入有误!\n请重新输入您想出的拳所对应的数字:\n1--剪刀\t2--石头\t3--布\n");
scanf("%*c%d",&person);
}
//输出电脑所出的拳,以说明游戏的平衡机制
if (computer==1) {
printf("电脑出的是:剪刀\tPS:咔嚓咔嚓!\n\n");
}else if (computer==2){
printf("电脑出的是:石头\tPS:我很硬哦!\n\n");
}else {
printf("电脑出的是:布\tPS:来吧来吧!\n\n");
}
//一切准备就绪然后进行输赢比较及输出
if (person==1&&computer==3) {
printf("<<<<<<<<你赢了>>>>>>>>\n大哥!老弟错了,饶过我这次吧.您的<<剪刀>>太锋利了,您赢了!!!\n\n[呵呵,再来一次?(输入0继续,任意键结束)]\n");
}else if (person==2&&computer==1){
printf("<<<<<<<<你赢了>>>>>>>>\n我勒个去,我发誓刚刚是我大意了,你的<<石头>>太硬了 --!\n\n[呵呵,再来一次?(输入0继续,任意键结束)]\n");
}else if (person==3&&computer==2){
printf("<<<<<<<<你赢了>>>>>>>>\n难道这是命运?如果老天再给我一次机会的话,我一定能赢你出的<<布>>!!!\n\n[呵呵,再来一次?(输入0继续,任意键结束)]\n");
}else if (person==1&&computer==2){
printf("<<<<<<<<你输了>>>>>>>>\n呵呵,知道我的厉害了吧??就凭你的<<剪刀>>也想赢我???送你2个字:白日...做梦!\n\n[不服气?再来一次?(输入0继续,任意键结束)]\n");
}else if (person==2&&computer==3){
printf("<<<<<<<<你输了>>>>>>>>\n呵呵,跟你玩这个我都让你一个手的!就凭你的<<石头>>也想赢我???送你2个字:白日...做梦!\n\n[不服气?再来一次?(输入0继续,任意键结束)]\n");
}else if (person==3&&computer==1){
printf("<<<<<<<<你输了>>>>>>>>\n呵呵,你回去修炼一千年再来找我挑战吧!就凭你的<<布>>也想赢我???送你1个字:你...太嫩!\n\n[不服气?再来一次?(输入0继续,任意键结束)]\n");
}else{
printf("<<<<<<<<平手了>>>>>>>>\n骚年,看你年纪平平居然身手这么了得,居然跟我打个平手!\n\n[输入0继续,任意键结束.]\n");
}
//接收用户输入用来判定是否继续游戏
scanf("%d",&again);
}
//game over...
return 0;
}
复制代码
作者:
猴子啊猴子
时间:
2015-5-22 09:18
不错.基本都是使用随机数来的
作者:
万物长生
时间:
2015-5-22 21:21
666666666666666666
作者:
kansiliyundi
时间:
2015-5-22 22:26
我擦,怎么这么厉害,我输了,技术伟
作者:
wangguanyang
时间:
2015-5-22 23:55
楼上的输出亮瞎了我的眼
作者:
hi虚无缥缈
时间:
2015-5-23 00:20
头都晕了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2