| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 817 人关注过本帖
标题:不到20行代码的猜数字游戏,大家评评
只看楼主 加入收藏
蓝一
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2007-5-25
收藏
 问题点数:0 回复次数:4 
不到20行代码的猜数字游戏,大家评评
程序代码:
#include <iostream>  
#include <ctime>
const char *subter_ = "少了!", *hyper_ = " 高了!", *right = "恭喜你猜对了!";
const char* get_diff(int input, int random){
    return (input > random) ? hyper_ : ((input < random) ? subter_ : right);
}
int judge(int input, int random){
    return puts(get_diff(input, random)),(input == random) ? 1 : 0;    
}  
int main(void){
    srand((unsigned)time(0));
    long random = rand() % 1000 + 1, init_money = 0, input = 0, degree = 11;
    while(degree--)   
        (scanf("%d", &input),(!judge(input, random)))? judge(input, random),printf("你还有%d次机会\n", degree) : 1;
    return 0;
}


[[it] 本帖最后由 蓝一 于 2008-6-3 22:35 编辑 [/it]]
搜索更多相关主题的帖子: 数字 游戏 
2008-06-03 22:34
Loli
Rank: 1
来 自:飞燕算法群46520219
等 级:新手上路
帖 子:348
专家分:0
注 册:2008-5-27
收藏
得分:0 
无语



" border="0" />[color=white]
2008-06-03 22:44
蓝一
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2007-5-25
收藏
得分:0 
貌似三目运算可以减少代码行
但可读性非常差

我再来一个
程序代码:
//趣味猜数字
/*
函数设计:
    long set_random();   //产生随机数字
    int judger();    //以用户输入为参数判断是否猜中
    char* get_diff();  //获得和正确数字的差距, 并给出提示信息 
    long money();        //统计玩家获得的金钱
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define TRUE 1
#define FALSE 0

char *subter = "少了!"; 
char *hyper = " 高了!"; 
char *right = "恭喜你猜对了!"; 


/*
函数名:long set_random();
参数:无
返回值: 产生的随机数字
函数功能:产生随机数字并返回
*/
long set_random()
{
    srand(time(0));
    long random = rand() % 100000; 
    return random;
} 

/*
函数名:char* get_diff(int);
参数:用户输入,正确数字 
返回值:提示信息
功能:判断和正确数字之间的差距,并返回提示信息
*/
char* get_diff(int input, int random)
{
    int diff = input - random; 
    return (diff > random) ? hyper : ((input < random) ? subter : right);
}

/*
函数名: int judeg(int, int);
参数:用户输入的数字,随机数字 
返回值:TREU 或 FALSE 
功能:判断玩家是否猜对,如果对返回TRUE,否则返回FALSE
*/
int judge(int input, int random)
{
    return (input == random) ? TRUE :(puts(get_diff(input, random)), FALSE);
}  

/*
函数名: long money(int); 
参数:初始金钱,玩家是否猜中
返回值:玩家当前钱数
功能:积累玩家资金
*/
long money(int init_money, int flag_win_fal)
{
    return flag_win_fal ? init_money += 10000 : init_money;    
}

 
int main(void)
{
    int random = set_random();
    int init_money = 0;
    int input = 0;
    do
    {
        scanf("%d", &input);
        if (!judge(input, random))
            judge(input, random);
        else
            printf("获得金钱%ld\n\n", money(init_money, judge(input, random)));
    }while(1);
    return 0;
}

2008-06-03 22:57
panzhengwei
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-5-27
收藏
得分:0 
回复3#
出现问题!!!!

z111111111111111.gif (3.75 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
2008-06-04 13:19
Loli
Rank: 1
来 自:飞燕算法群46520219
等 级:新手上路
帖 子:348
专家分:0
注 册:2008-5-27
收藏
得分:0 
楼上,你换C++编译吧



" border="0" />[color=white]
2008-06-04 13:46
快速回复:不到20行代码的猜数字游戏,大家评评
数据加载中...
 
   



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

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