| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2592 人关注过本帖
标题:[求助]剪子,包袱,锤头,c语言简易小游戏编程
只看楼主 加入收藏
cleardark
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-3-13
收藏
 问题点数:0 回复次数:8 
[求助]剪子,包袱,锤头,c语言简易小游戏编程

这是一个关于剪子包袱锤头游戏的小程序

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void main()
{ int a=0,b=0;//a随机数,b用户输入
char f=' ';//是否继续游戏
char c[3]={"剪子","包袱","锤"};
while(1)
{
while(1)
{
a=rand()%3+1;//生成1~3随机数
printf("猜拳游戏开始。\n1.%s\n2.%s\n3.%s\n",c[1],c[2],c[3]);
scanf("%d",&b);
fflush(stdin);
if ((b>=1)&&(b<=3))//验证输入数字是否正确
{break;}
else
{printf("输入错误请重新输入。\n");}
}
printf("(计算机)%s:(用户)%s\n",c[a-1],a[b-1]);
if (a==1)//剪子
{
switch(b)
{case 1:printf("平局,>_<\n");break;
case 2:printf("输了,@_@\n");break;
case 3:printf("胜利!^_^\n");break;
}
}
else if (a==2)//包袱
{
switch(b)
{
case 1:printf("胜利!^_^\n");break;
case 2:printf("平局,>_<");break;
case 3:printf("输了,@_@\n\n");break;
}
else if(a==3)//锤
{
switch(b)
{case 1:printf("输了,@_@\n");break;
case 2:printf("胜利!^_^\n");break;
case 3:printf("平局,>_<\n");break;
}
printf("是否继续游戏?(y/n)");
scanf("%c",f);
if((f!=y)||(f!=Y))
break;
}
}

--------------------Configuration: Cpp1 - Win32 Debug--------------------
Compiling...
Cpp1.cpp
C:\Documents and Settings\Administrator\My Documents\作业\测试\正在测试项目\Cpp1.cpp(7) : error C2117: '剪子' : array bounds overflow
C:\Documents and Settings\Administrator\My Documents\作业\测试\正在测试项目\Cpp1.cpp(7) : error C2117: '包袱' : array bounds overflow
C:\Documents and Settings\Administrator\My Documents\作业\测试\正在测试项目\Cpp1.cpp(7) : error C2078: too many initializers
C:\Documents and Settings\Administrator\My Documents\作业\测试\正在测试项目\Cpp1.cpp(21) : error C2109: subscript requires array or pointer type
C:\Documents and Settings\Administrator\My Documents\作业\测试\正在测试项目\Cpp1.cpp(35) : error C2181: illegal else without matching if
C:\Documents and Settings\Administrator\My Documents\作业\测试\正在测试项目\Cpp1.cpp(43) : error C2065: 'y' : undeclared identifier
C:\Documents and Settings\Administrator\My Documents\作业\测试\正在测试项目\Cpp1.cpp(43) : error C2065: 'Y' : undeclared identifier
C:\Documents and Settings\Administrator\My Documents\作业\测试\正在测试项目\Cpp1.cpp(47) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.

Cpp1.obj - 1 error(s), 0 warning(s)
我的英文水平不好 请问那里的错误哦?、、、、?
此程序能否简洁一些呢?~~ 谢谢

[此贴子已经被作者于2007-3-20 19:52:34编辑过]

搜索更多相关主题的帖子: c语言 剪子 小游戏 include char 
2007-03-20 17:33
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
你可以用WIN TC啊
全是中文的
2007-03-20 18:08
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 

错误 noname.c 7: 太多的初始化符在 main 函数中
错误 noname.c 7: 初始化程序语法错误在 main 函数中
错误 noname.c 7: 说明语法错误在 main 函数中
错误 noname.c 7: 说明缺少';'在 main 函数中
错误 noname.c 8: 说明语法错误

2007-03-20 18:11
pinglideyu
Rank: 3Rank: 3
来 自:武汉工程大学
等 级:论坛游侠
威 望:1
帖 子:735
专家分:140
注 册:2007-1-7
收藏
得分:0 
这个东西我也挺想知道的,呵呵 版主帮忙呀!

~~我的明天我知道~~
2007-03-20 18:46
cleardark
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-3-13
收藏
得分:0 
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
main()
{ int a=0,b=0,d=0,e=0;
char f=' ';
char *c[]={"剪子","包袱","锤"};
while(1)
{aa:while(1)
{
a=rand()%3+1;//生成1~3随机数
printf("猜拳游戏开始。\n1.%s\n2.%s\n3.%s\n",c[0],c[1],c[2]);
scanf("%d",&b);
fflush(stdin);
if ((b>=1)&&(b<=3))//验证输入数字是否正确
{break;}
else
{printf("输入错误请重新输入。\n");}
}
d=a-1;e=b-1;
printf("(计算机)%s:(用户)%s\n",c[a-1],c[b-1]);

if (a<2)//剪子
{ switch(b)
{case 1:printf("平局,>_<\n");break;
case 2:printf("输了,@_@\n");break;
case 3:printf("胜利!^_^\n");break;
}
}
else if (a==2)//包袱
{ switch(b)
{case 1:printf("胜利!^_^\n");break;
case 2:printf("平局,>_<");break;
case 3:printf("输了,@_@\n\n");break;
}
}
else //锤
{ switch(b)
{case 1:printf("输了,@_@\n");break;
case 2:printf("胜利!^_^\n");break;
case 3:printf("平局,>_<\n");break;
}
}
while(1)
{printf("是否继续游戏?(y/n)");
f=getchar();
if((f=='y')||(f=='Y')||(f=='N')||(f=='n'))
{ if((f=='y')||(f=='Y'))
{printf("游戏继续.\n");goto aa;}
else
{printf("游戏结束。\n");break;}
}
else
{printf("输入错误。\n");}
}
break;
}
}

[此贴子已经被作者于2007-3-20 20:06:26编辑过]


2007-03-20 19:09
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 

注意编译器错误信息中括号内的数字,那是出错的行号,
我现在这个电脑没有编译器,我只把我能看出的问题给你说下:
7:char c[3]={"剪子","包袱","锤"};
数组越界,你把一个字符串赋给一个字符数组元素是不行的
(一个数组元素只能放1个字符,剪子,包袱都放不下,还有要
确保你的编译器支持中文)
21:printf("(计算机)%s:(用户)%s\n",c[a-1],a[b-1]);
你也不可以把1个数组元素以字符串形式输出
35:编译器找不到与else匹配的if
(你的缩进太乱,没编译器我看不出来哪里错了- -)
43:变量y和Y没有被定义
你的“Y”和“y”是不是应该加上单引号表示是字符
(我这里用双引号为了表示引用)
47:意想不到的错误终止
编译器都不知道,我也就不清楚了


“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2007-03-20 22:05
hujian100
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2006-9-14
收藏
得分:0 

楼主,我按你的思路编了一个 中间判断部分写的比较繁琐一些,但还能用。

#include <stdio.h>
#include <stdlib.h>

main()
{
char Guess[3][6]={"stone","forfex","cloth"};
char choice;
int you_input,computer_input,compare_result;
printf("Game Start!\n");
while(1)
{
while(1)
{
printf("1 stands for stone,2 stands for forfex,3 stands for cloth.\n");
printf("Please input your choice[1-3]:");
scanf("%d",&you_input);
if(you_input>=1&&you_input<=3)
break;
else
printf("Input error,please try it again!\n");
}
computer_input=rand()%3+1;
if(you_input==computer_input)
compare_result=0;
else if(you_input==1)
{
if(computer_input==2)
compare_result=1;
else
compare_result=-1;
}
else if(you_input==2)
{
if(computer_input==3)
compare_result=1;
else
compare_result=-1;
}
else
{
if(computer_input==1)
compare_result=1;
else
compare_result=-1;
}
switch(compare_result)
{
case 0 : printf("Your input is %s,the computer's input is %s,the result is draw.(-_-!)\n",Guess[you_input-1],Guess[computer_input-1]);break;
case 1 : printf("Your input is %s,the computer's input is %s,the result is you win.(^_^)\n",Guess[you_input-1],Guess[computer_input-1]);break;
case -1 : printf("Your input is %s,the computer's input is %s,the result is you lose.(T_T)\n",Guess[you_input-1],Guess[computer_input-1]);break;
default: printf("Operation error!\n");
}
while(1)
{
getchar();
printf("Do you want to go on gaming?(y/n)");
scanf("%c",&choice);
if(choice=='y'||choice=='Y')
break;
else if(choice=='n'||choice=='N')
return 0;
else
printf("Input error,please try it again!\n");
}
}
}


2007-03-21 18:19
小孟
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-9-21
收藏
得分:0 
#include <stdlib.h>
#include <stdio.h>
#include<time.h>
#include <string.h>
void main()
{
int a=0,b=0;//a随机数,b用户输入
char f='y';//是否继续游戏
char c1[]={"剪子"};
char c2[]={"包袱"};
char c3[]={"锤"};
while(1)
{
    srand( (unsigned)time(NULL));
    a=rand()%3+1;//生成~3随机数
    printf("猜拳游戏开始。\n1.%s\n2.%s\n3.%s\n",c1,c2,c3);
    printf("请输入您要出的things:\n");
    scanf("%d",&b);

    while(1)
    {
    if ((b>=1)&&(b<=3))//验证输入数字是否正确
    break;
    else
    {
     printf("输入错误请重新输入:\n");
     scanf("%d",&b);
    }
    }

    printf("(计算机)%s:(用户)%s\n",a==1?c1:a==2?c2:c3,b==1?c1:b==2?c2:c3);

    if (a==1)//剪子
    {
    switch(b)
    {
    case 1:printf("平局,>_<\n");break;
    case 2:printf("输了,@_@\n");break;
    case 3:printf("胜利!^_^\n");break;
    }
    }
    else if (a==2)//包袱
    {
    switch(b)
    {
    case 1:printf("胜利!^_^\n");break;
    case 2:printf("平局,>_<");break;
    case 3:printf("输了,@_@\n\n");break;
    }
    }
    else if(a==3)//锤
    {
    switch(b)
    {case 1:printf("输了,@_@\n");break;
    case 2:printf("胜利!^_^\n");break;
    case 3:printf("平局,>_<\n");break;
    }
    }
    printf("是否继续游戏?(y/n)");
    f=getchar();
    printf("%c\n",f);
    f=getchar();
    if(f!='y'&& f!='Y')
        break;
}

}
2010-09-21 22:03
小孟
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-9-21
收藏
得分:0 
程序 搞定!!
2010-09-21 22:03
快速回复:[求助]剪子,包袱,锤头,c语言简易小游戏编程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022071 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved