Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
查看: 5595|回复: 40
打印 上一主题 下一主题

请教下如何利用c语言设计一个简单的数字游戏??

[复制链接]

3

主题

0

好友

312

积分

超级会员

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

跳转到指定楼层
1#
发表于 2009-4-18 04:16 PM |只看该作者 |倒序浏览
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main(void){
   

    //如果选择y就开始游戏
    if(choice == 'Y'){
      
        srand(time(NULL));
        int answer =(rand()%100)+1;
        //上面两行,用意是为了产生乱数可以给玩家去猜,所以answer就是乱数,请自行运用
        
        printf("=====开始游戏=====\n");
        while(1){
             //请输入1~100的数字  
           
            //若输入0就结束游戏      
            if(){
            
            }
            //若输入小过0或大过100的话,就必须让玩家重新输入
            else if(){
                 
            }
            //若输入的答案刚好等于answer
            else if(){
                 
                 //这里要让玩家选择要不要重新玩多一次
                           
            }//若输入的数字大于答案
            else if(){
               
            }//若输入的数字小于答案
            else if(){
               
            }
   
        }      
              
    }//如果选择N就结束游戏
    else printf("good bye .....\n");
    system("pause");   
    return 0;
    }



有没有人可以帮下我啊?我不会做啊。。。。




收藏收藏0

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

2#
发表于 2009-4-18 05:17 PM |只看该作者
既然结构你都大概了解了,怎么會不知道如何開始呢??

首先你該去查阅 C 如何取得使用者所輸入的数据,然后判段是否为数字或文字,之後才開始你所定义的规则判段


回复

使用道具 举报

3

主题

0

好友

312

积分

超级会员

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

3#
发表于 2009-4-18 05:38 PM |只看该作者

回复 #2 Super-Tomato 的帖子

我是明白了,不过我要执行的时候,有点问题。。。
所以我希望你们可以帮下我咯。。。


回复

使用道具 举报

1

主题

0

好友

178

积分

高级会员

Rank: 3Rank: 3Rank: 3

4#
发表于 2009-4-18 06:39 PM |只看该作者
#define _CRT_SECURE_NO_DEPRECATE           \\当中有scanf的问题,所以用这个去弄掉scanf的warning
#include<stdio.h>
#include<stdlib.h>

int main(void)
{        char choice,ch;
        int a;
    int answer;
s3:        answer =(rand()%100)+1;
s1:
        printf(" Press Y to start Game,Press N to Quit\n");
        scanf("%c",&choice);
        switch(choice)
        {
        case 'y':printf("Start Game!\n");
s2:                        printf("enter a number 1~100,0 to Quit\n");
                        scanf("%d",&a);
                        if(a==0) return 0;
                        else if(a<=-1||a>100)goto s2;
s4:                        if(a==answer)
                        {printf("Correct!Do you want to play again?Y or N\n");
                        scanf("%c",&ch);
                                switch(ch)
                                {case 'y':goto s3;
                                case 'n':printf("Goodbye\n");break;
                                default :printf("Not available\n");goto s4;}}
                        else {printf("Wrong number!Guess Again!\n");
                        goto s2;};
        case 'n':printf("Goodbye!");break;
        default :printf("not available\n");goto s1;
        };
}
这个我自己打的...有什么问题...看看一下吧...作参考..
switch跟if的问题拿来对比...这样才会进步嘛...em0020
if的我也试过了...可以...em0020

[ 本帖最后由 冥 于 2009-4-18 06:56 PM 编辑 ]


回复

使用道具 举报

3

主题

0

好友

312

积分

超级会员

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

5#
发表于 2009-4-18 06:56 PM |只看该作者

回复 #4 冥 的帖子

em0007 老师叫我们用if来做。。。。

[ 本帖最后由 fuiyooo 于 2009-4-18 06:59 PM 编辑 ]


回复

使用道具 举报

1

主题

0

好友

178

积分

高级会员

Rank: 3Rank: 3Rank: 3

6#
发表于 2009-4-18 06:58 PM |只看该作者
#include<stdio.h>
#include<stdlib.h>

int main(void)
{        char choice,ch;
        int a;
    int answer;
s3:        answer =(rand()%100)+1;
s1:
        printf("Press Y to start Game,Press N to Quit\n");
        scanf("%c",&choice);
       
       
        if(choice=='y'){printf("Start Game!\n");
s2:                        printf("enter a number 1~100,0 to Quit\n");
                        scanf("%d",&a);
                        if(a==0) return 0;
                        else if(a<=-1||a>100)goto s2;
s4:                        if(a==answer)
                        {printf("Correct!Do you want to play again?Y or N\n");
                        scanf("%c",&ch);
                                switch(ch)
                                {case 'y':goto s3;
                                case 'n':printf("Goodbye\n");break;
                                default :printf("Not available\n");goto s4;}}
                        else {printf("Wrong number!Guess Again!\n");
                        goto s2;};}
        else {printf("Goodbye!");
        return 0;
        }
}
我把一部分改成if了...再动点脑筋...自己把switch部分改改看...-.-


回复

使用道具 举报

3

主题

0

好友

312

积分

超级会员

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

7#
发表于 2009-4-18 07:00 PM |只看该作者

回复 #6 冥 的帖子

如果不用goto这指令能做到吗?


回复

使用道具 举报

1

主题

0

好友

178

积分

高级会员

Rank: 3Rank: 3Rank: 3

8#
发表于 2009-4-18 07:05 PM |只看该作者
如果不用goto...用do while了...但没用阿...你重点是一定要用if...

[ 本帖最后由 冥 于 2009-4-18 07:10 PM 编辑 ]


回复

使用道具 举报

1

主题

0

好友

178

积分

高级会员

Rank: 3Rank: 3Rank: 3

9#
发表于 2009-4-18 07:06 PM |只看该作者
还是要用到if...不用goto也是可以


回复

使用道具 举报

0

主题

9

好友

69

积分

中级会员

Rank: 2Rank: 2

10#
发表于 2009-4-18 07:11 PM |只看该作者
一般來說 都不鼓勵用goto
判斷最好用的就是if了
那是基本功而已 背後會越用越多


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2024-11-26 06:31 AM , Processed in 0.101203 second(s), 26 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部