| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 543 人关注过本帖
标题:问一个猜数小游戏的相关问题
只看楼主 加入收藏
wnd0617
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-12-11
收藏
 问题点数:0 回复次数:6 
问一个猜数小游戏的相关问题
感谢斑竹帮我把帖转到供求区,可是那人气实在不行,所以另开一求教帖..望见谅

就是猜数的问题
k位数(2~9)
大小限制是(1~b(2~9))
然后有重复或不重复的可能性
如果重复的话,这k位数的排列就是任意的1~b的数字
不重复的话一次类推

现在要求如果数值正确位置不正确奖励一颗白星星,数值正确且位置也正确奖励一颗红星星,知道玩家完成或退出才算结束

感觉不太难..但是很绕..

希望高手指点..qq262791887

如果花费时间可以按小时计费,不满一小时按小时计算
诚心,骗子勿扰..
搜索更多相关主题的帖子: 小游戏 
2008-12-11 08:06
wnd0617
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-12-11
收藏
得分:0 
如果看不懂的话..我可以补充谢谢
2008-12-11 09:31
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
您可以举个例子。比如说是哪个数据,然后怎样猜。我有点没看懂你这道题。
2008-12-11 09:46
wnd0617
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-12-11
收藏
得分:0 
k跟b还有是否重复是玩家自己设定的..
k位数,b为最大值 如果k=7, b=7
随机出现下列一组数
2 3 5 4 6 7 1

如果你猜
2 2 5 1 6 7 4
则白星星的数量为2
红星星的数量为 4
2008-12-11 10:05
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
-----------------

    如果你还想做界面的话,这个区好象不适合你,上其它的如C++区可能会合适些。但是程序中的算法之类的还可以搞定。高手不屑于做这样的题,我们这些新手能把程序写出来,但如果关系到界面,就非我们的能力所能搞定的了。
2008-12-11 10:10
woshiyun
Rank: 1
等 级:新手上路
威 望:2
帖 子:348
专家分:0
注 册:2008-6-16
收藏
得分:0 
给你一个框架,有几段代码还是要你自己实现的。

#include <stdio.h>
#define K 6
#define B 9
#define MAX_TIME 6

void initNum(int * sourceNum, int n)
{
    //简易代码,建议用rand随机数生成1-B的数字
    for(int i=0;i<n;i++) sourceNum[i]=i+1;
}

int inputNum(int * sourceNum, int n)
{
    for(int i=0;i<n;i++) scanf("%d", sourceNum+i);
    return 1;
}

int checkValid(int * userNum, int n)
{
    //简易代码,检查数字是否符合范围要求
    return 1;
}

int checkAllRight(int * sourceNum, int * userNum, int  n)
{
    int res=0;
    for(int i=0;i<n;i++)
    {
        if(sourceNum[i] == userNum[i])
        {
            printf("%c  ", 2);
            res++;
        }
    }
    printf("\n");
    return res;
}

void checkPartRight(int * sourceNum, int * userNum, int  n)
{
    //简易代码,统计数值对,位置错的个数
    for(int i=0;i<n;i++)
    {
        printf("%c  ", 1);
    }
    printf("\n");
}

int main ()
{
    int time, result, allRightNumber;
    int sourceNum[K], userNum[K];
    time = MAX_TIME;
    result = 0;
   
    initNum(sourceNum, K);
    while((--time)&&(!result))
    {
        printf("Please input %d numbers(1~%d):   %d times left\n", K, B, time);
        while(inputNum(userNum, K)&&!checkValid(userNum, K));
        checkPartRight(sourceNum, userNum, K);
        allRightNumber = checkAllRight(sourceNum, userNum, K);
        if(allRightNumber == K) result = 1;
    }
   
    if(result)
    {
        printf("Good job!\n");
    }
    else
    {
        printf("Time out! The numbers are: ");
        for(int i=0; i<K; i++) printf("%d  ", sourceNum[i]);
        printf("\n");
    }
    return 0;
}
2008-12-11 10:11
wnd0617
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-12-11
收藏
得分:0 
因为只是要求c语言,而且不需要界面的,只要输出的时候排列美观点整齐点就好..不要很死板的跟回答问题似的,要达到游戏娱乐的效果哈
2008-12-11 10:31
快速回复:问一个猜数小游戏的相关问题
数据加载中...
 
   



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

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