| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 816 人关注过本帖
标题:小弟不才,第一次写猜数游戏 = =!
只看楼主 加入收藏
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
结帖率:33.33%
收藏
 问题点数:0 回复次数:8 
小弟不才,第一次写猜数游戏 = =!
/*****************************************************************
** HighlightCodeV3.0 software by yzfy(雨中飞燕) http:// **
*****************************************************************/
#include<cstdio>
#include<cstdlib>
#include<ctime>
int count=15;
char IsOk(int randnum,int input)
{
   
char ch='Y';
    switch((int)(randnum<input))
    {
   
case 1:  printf("太大了\n"); break;
    case 0:  switch((int)(randnum>input))
            {
               
case 1: printf("太小了\n"); break;
                case 0: printf("恭喜你,猜对了!\n");
                        printf("是否继续游戏?(Y/N)");
                        scanf(" %c",&ch);
                        count=15;
                        break;
            }
            
break;
    }
   
return ch;
}
int GetRandNum()
{
   
int num;
    srand((unsigned int)time(0));
    for(num=rand();num<=0||num>=1000;num=rand());
    return num;
}
int main()
{
   
int num,rand_num;
    char ch='Y';
    printf("你有 15 次猜数机会!猜数范围在[1,1000]\n");
    printf("下面开始猜数游戏,请输入你要猜的数字...\n");
    rand_num=GetRandNum();
    while((ch=='Y')&&(scanf("%d",&num),num>0))
    {
        
if((ch=IsOk(rand_num,num))=='Y'&&count==15)
            rand_num=GetRandNum();
        if(--count == 0)  
        {
            
printf("你的次数已用完,你输了- -!\n");
            printf("是否重新来过?(Y/N)");
            scanf(" %c",&ch);
            rand_num=GetRandNum();
            count=15;
        }
    }
   
return 0;
}


[[it] 本帖最后由 中学者 于 2008-7-4 21:44 编辑 [/it]]
搜索更多相关主题的帖子: 游戏 
2008-07-04 17:14
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
__顶

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-07-04 17:15
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
这个游戏我在前年也写过一个

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-07-04 17:15
该页无法显示
Rank: 1
等 级:新手上路
帖 子:88
专家分:0
注 册:2008-7-4
收藏
得分:0 
有意思么...
猜数字思想是二分
2008-07-04 17:23
初中毕业
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-7-2
收藏
得分:0 
顶顶~~
2008-07-04 21:28
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
顶……好久没玩过这个游戏了……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-07-04 21:29
lingluoz
Rank: 2
来 自:苏州科技学院
等 级:新手上路
威 望:4
帖 子:749
专家分:0
注 册:2008-2-2
收藏
得分:0 
那我也曬一和哈
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>

typedef struct {
    char a;
    char b;
} _resout;

void create_number(char *lp_num)
{
    int i;
    char num[4];
    srand(time(NULL));
    do {
        for (i=0;i<4;i++)
            num[i]=rand()%10;
    } while ((num[0]==num[1])||(num[0]==num[2])||(num[0]==num[3])||
             (num[1]==num[2])||(num[1]==num[3])||(num[2]==num[3]));
    for (i=0;i<4;i++)
        *(lp_num+i)=num[i];
}

_resout check_number(char *lp_num,char *lp_num_native)
{
    int i,j;
    _resout res={0,0};
    for (i=0;i<4;i++) {
        for (j=0;j<4;j++) {
            if ( *(lp_num+i)==*(lp_num_native+j) ) {
                if (i==j)
                    res.a++;
                else
                    res.b++;
            }
        }
    }
    return res;
}

void input_number(char *lp_num) {
    char buffer[80]; /*输入缓冲区防止用户输入的太多让程序挂掉*/
    int i;
input_origin:
    putchar( '?' );
    gets( buffer );
    if (strlen(buffer)!=4) goto input_origin;
    if ((buffer[0]==buffer[1])||(buffer[0]==buffer[2])||
        (buffer[0]==buffer[3])||(buffer[1]==buffer[2])||
        (buffer[1]==buffer[3])||(buffer[2]==buffer[3]) ) goto input_origin;
    for (i=0;i<4;i++) {
        if (isdigit(buffer[i])==0) goto input_origin;
        *(lp_num+i)=buffer[i]-'0';
    }
}

int main() {
    char num_native[4];
    char num[4];
    int i;
    _resout res;
    create_number(num_native);
    for (i=0;i<10;i++) {
        input_number(num);
        res=check_number(num,num_native);
        if (res.a==4) {
            puts("yes!");
            break;
        }
        printf("A%dB%d\n",res.a,res.b);
    }
    if (i==10) {
        for (i=0;i<4;i++)
            putchar('0'+num_native[i]);
    }
    putchar ('\n');
    return 0;
}

Murphy's Law :
If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it.
2008-07-04 21:43
oldboy22
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-5-19
收藏
得分:0 
。。。。。。。。。。。。

让魔鬼来得更猛烈些吧。。。
2008-07-04 21:44
duduchang
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2008-5-6
收藏
得分:0 
不错!继续加油!
2008-07-04 22:32
快速回复:小弟不才,第一次写猜数游戏 = =!
数据加载中...
 
   



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

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