| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1358 人关注过本帖
标题:谁有快译通或者文曲星上那个猜数字游戏的代码..
只看楼主 加入收藏
yshtc
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-10-30
收藏
 问题点数:0 回复次数:7 
谁有快译通或者文曲星上那个猜数字游戏的代码..
我刚学C++2个多月,我们老师就叫我们编这个游戏...
因为我从来没玩过,根本都不知道怎么玩...
所以无从下手...
肯请高手给代码我看看啦..
谢谢...
搜索更多相关主题的帖子: 快译通 文曲星 数字 游戏 
2007-11-09 08:45
天使梦魔
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
收藏
得分:0 

不知道是个什么样的游戏................

2007-11-09 09:24
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以前写过,但只是用C写的.

就是随机给出4个互不相同的数字(你是不知道的),然后你去猜,猜出的四个数字之后有个提示:?A?B
A表示猜数字和位置都猜中的数量,而B只表示有多少数字是对的,但位置不对.
比如给出的是1 2 3 4
你猜
1 8 2 3
那提示就是1A2B

倚天照海花无数,流水高山心自知。
2007-11-09 09:41
yshtc
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-10-30
收藏
得分:0 
主要是需要C++代码....急啊....
2007-11-09 09:43
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 

[CODE]#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void generate(int a[],int size){
srand((unsigned int) time(0));
for (int i = 0;i < size;++i){
int j;
do{
a[i] = rand() % 10;
for (j = i-1;j >= 0;--j){
if (a[i] == a[j])
break;
}
}
while (j >= 0);
}
}

int main(){
const int size = 4;
int random[size];
//get 4 different random numbers
generate(random,size);

int countA,countAB;
//guess the numbers and do process
do{
int temp,guess[size] ={0};
cout << "enter your guess(4 different integer) : ";
cin >> temp;
//make sure the input numbers is valid
if (cin.fail()){
cerr << "invalid input,guess again" << endl;
cin.clear();
cin.ignore();
continue;
}
if (temp > 9999 || temp < 0){
cerr << "invalid input,guess again" << endl;
continue;
}

for (int i = size-1;temp != 0;guess[i--] = temp % 10,temp /= 10);

//make sure the input numbers are different
bool is_same = 0;
for (int i = 0;i < size;++i){
for (int j = i+1;j < size;++j)
if (guess[i] == guess[j])
is_same = 1;
}
if (is_same){
cerr << "invalid input,guess again" << endl;
continue;
}

countA = 0,countAB = 0;
for (int i = 0;i < size;++i){
if (random[i] == guess[i])
++countA;
for (int j = 0;j < size;++j)
if (guess[i] == random[j])
++countAB;
}
cout << countA << "A" << countAB - countA << "B" << endl;
}
while (countA != 4);
cout << "right guess,you win" << endl;
system("pause");
}[/CODE]

以前写的,不保证没有BUG


Fight  to win  or  die...
2007-11-09 12:29
yshtc
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-10-30
收藏
得分:0 

谢谢啦..我再自己看看改改...

2007-11-09 12:44
kakawei
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-10-29
收藏
得分:0 
我自己写了一个,试了一下,好象可以,以下是该函数的代码
void GenerateRanddata(int data[],int n)//随机得到四个不同的数,储存在一个数组中
{
for(int i=0;i<n;i++)
{
srand(time(0));
int a=rand()%9;
int counter=0;
if(i==0)data[i]=a;
else
{while(counter!=i)
{
a=rand()%9;
counter=0;
for(int j=0;j<i;j++)
{
if(a!=data[j])
counter+=1;
else continue;
}
}
data[i]=a;
}
}
}

void game()
{
int g[4];
int f[4];
GenerateRanddata(f,4);
int counter1=0;int counter=0;
while(counter1!=4&&counter<9)
{
int counter1=0,counter2=0;
cout<<"Enter four integers:"<<endl;
for(int k=0;k<4;k++)
cin>>g[k];

for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
if(i==j&&f[i]==g[j])
counter1+=1;
if(i!=j&&f[i]==g[j])
counter2+=1;
}
}
counter+=1;
cout<<counter1<<"A"<<counter2<<"B"<<endl;
if(counter1==4)
{cout<<"You win!"<<endl;break;}
}
if(counter==9)cout<<"You lose!"<<endl;
}

乱舞风云
2007-11-16 18:58
zlxiaonan
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-9-29
收藏
得分:0 
看了一眼楼上大哥的程序,,发现没有main函数,,养成好的习惯。
2007-11-19 09:05
快速回复:谁有快译通或者文曲星上那个猜数字游戏的代码..
数据加载中...
 
   



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

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