| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7493 人关注过本帖, 1 人收藏
标题:猜数字小游戏简单源代码
只看楼主 加入收藏
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏(1)
 问题点数:0 回复次数:23 
猜数字小游戏简单源代码
猜数字小游戏简单源代码,闲着无聊写的菜代码,很垃圾
也是纯粹练习一下手工高亮代码而已
// header file
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

// define var-type
typedef const char* PCSTR;
typedef PCSTR const CPCSTR;

// define read-only variables
#define ERROR_INPUT 0x80000000
CPCSTR INFO_ERROR = "对不起,您输入的数字不对,请重新输入:";
CPCSTR INFO_SPLIT = "******************************************************";
CPCSTR INFO_INPUT = "请您输入一个数字:";
CPCSTR INFO_GAME = "您好,现在请您猜一个1000以内的整数。\n您有%d次机会,每次您猜错了,系统会提\n示您猜得大了或者小了。祝您玩得愉快!\n";
CPCSTR INFO_FAIL = "您好,您的次数已到!";
CPCSTR INFO_QUIT = "请问您还想继续玩吗?是请按1:";
CPCSTR INFO_TIMES= "这是您第%d次猜数,结果是";
PCSTR INFO_GUESS[3] = {
   
"您输入的数字太小,请继续猜。",
   
"您猜对了!恭喜!",
   
"您输入的数字过大,请继续猜。",
};

// get the sign of the integer
int sgn(int n)
{
   
if(n==0) return 0;
   
else return n>0?1:-1;
}

// input a integer
int InfoGetInt(PCSTR str)
{
   
int n;
   
puts(str);
   
if (scanf("%d", &n)==1) return n;
   
else
   
{
        
while(getchar()!='\n');
        
return ERROR_INPUT;
    }
}

// game start function,
// int _nChance : how many chances to guess
int GameStart(int _nChance)
{
   
int nNum = rand() % 1000 + 1;
   
int n = 1, nChance = _nChance;
   
for ( ; n && nChance>0; --nChance) // loop while nChance>0
   
{
        
n = InfoGetInt(INFO_INPUT);
        
while (n<1 || n>1000) // check input
        
{
            
n = InfoGetInt(INFO_ERROR);
        }
        
n = sgn(n-nNum);
        
printf(INFO_TIMES, _nChance - nChance + 1);
        
puts(INFO_GUESS[n+1]);
    }
   
return nChance;
}

// main function
int main(void)
{
   
int nChance = 20;
   
// output infomation about the game
   
printf(INFO_GAME, nChance);
   
puts(INFO_SPLIT);
   
srand(time(NULL)); // randomize
   
do // loop input test
   
{
        
if (GameStart(nChance) == 0) puts(INFO_FAIL);
        
puts(INFO_SPLIT);
        
// is exit program
   
}while(InfoGetInt(INFO_QUIT)==1);
   
return 0; // must be null
}
[color=#FFFFFF]

[[it] 本帖最后由 雨中飞燕 于 2008-2-4 03:30 编辑 [/it]]
搜索更多相关主题的帖子: 源代码 小游戏 数字 include 垃圾 
2008-02-04 03:10
killer_l
Rank: 2
等 级:新手上路
威 望:3
帖 子:1139
专家分:0
注 册:2007-5-25
收藏
得分:0 
沙花

2008-02-04 08:32
菜鸭
Rank: 1
等 级:新手上路
帖 子:262
专家分:0
注 册:2007-12-9
收藏
得分:0 
经TC测试,正常应用。

谈笑声中话天地,清茶浊酒品江湖。
昔日豪杰今安在?中华代有人才出!
2008-02-04 14:49
闪闪4521
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-11-30
收藏
得分:0 
学习学习....
学习您的风格
我英语好烂,写程序的时候老是想不出用什么函数名
2008-02-04 15:06
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
现在我作出一个决定:以后在这里发完整代码要保证除TC外的C/C++编译器均能通过;
但要TC无法正常通过,既使通过编译也运行不正常
2008-02-04 16:21
菜鸭
Rank: 1
等 级:新手上路
帖 子:262
专家分:0
注 册:2007-12-9
收藏
得分:0 
祝你成功

谈笑声中话天地,清茶浊酒品江湖。
昔日豪杰今安在?中华代有人才出!
2008-02-04 16:33
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
[bo]以下是引用 [un]雨中飞燕[/un] 在 2008-2-4 16:21 的发言:[/bo]

现在我作出一个决定:以后在这里发完整代码要保证除TC外的C/C++编译器均能通过;
但要TC无法正常通过,既使通过编译也运行不正常

这样都行?不要哦~

女侠,约吗?
2008-02-11 03:04
devfhpgah
Rank: 1
来 自:江西
等 级:新手上路
帖 子:204
专家分:0
注 册:2007-8-16
收藏
得分:0 
努力努力

努力才会成功!
2008-02-11 11:49
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
[bo]以下是引用 [un]雨中飞燕[/un] 在 2008-2-4 16:21 的发言:[/bo]

现在我作出一个决定:以后在这里发完整代码要保证除TC外的C/C++编译器均能通过;
但要TC无法正常通过,既使通过编译也运行不正常

好象这样很容易,多定义一个超过64K的数组就可以了

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2008-02-11 12:08
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
TC是16位是吧```
手工高亮代码  是怎么弄的``好好看``
看起来也好舒服``

容易学吗``

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2008-02-11 12:36
快速回复:猜数字小游戏简单源代码
数据加载中...
 
   



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

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