求、 各位 哥哥姐姐; 小弟在此 跪求 一 用C语言编写的文曲星猜数字游戏代码。 是需要带记录分数的

作者&投稿:澹鸿 (若有异议请与网页底部的电邮联系)
求、 各位 哥哥姐姐;小弟在此 跪求 一 用C语言编写的文曲星猜数字游戏代码。~

#include #include#include#include void MakeDigit(int a[],int n);int InputGuess(int b[],int n,int number);int IsRightPosition(int a[],int b[],int n);int IsRightDigit(int a[],int b[]);main(){int number; //储存用户输入的整数int level=1; //用户最多想猜多少次int count=1; //记录用户已经猜的次数int rightPosition; //用户输入的数字中正确位置的数量int rightDigit; //用户输入的数字中正确且在不同位置的数字的数量int a[10]={0}; //储存系统随机生成的四位数字int b[4]={0}; //储存拆分后的用户输入的四位数字int i;MakeDigit(a,4);//提示用户输入最多能够猜多少次(保证在0-15次之间)do{printf("How many times do you want to guess:");//增强程序的健壮性while(scanf(" %d",&level)!=1){fflush(stdin);printf("Input error!
");}//将猜的次数限制在0-15次之间if(level>0&&level15);//用循环实现多次猜数do{printf("NO.%d of %d times:",count,level);scanf(" %d",&number);//增强程序的健壮性if(InputGuess(b,4,number)==-1){printf("Input wrong!
");continue;}rightPosition=IsRightPosition(a,b,4);rightDigit=IsRightDigit(a,b)-rightPosition;printf("%dA%dB
",rightPosition,rightDigit);count++;}while(rightPosition==4||count10000)return -1;else{int i;for(i=0;i<n;i++){b[3-i]=number%10;number=number/10;}return 1;}}//函数功能:输出数组a和数组b相同位置的元素相等的个数int IsRightPosition(int a[],int b[],int n){int i,j;int count=0;for(i=0;i<4;i++){j=i;if(a[i]==b[j])count++;}return count;}//函数功能:输出数组a与数组b中相同元素的总数int IsRightDigit(int a[],int b[]){int i,j;int count=0;for(i=0;i<4;i++){for(j=0;j<4;j++){if(a[i]==b[j])count++;}} return count;}

3. 文曲星猜数游戏
模拟文曲星上的猜数游戏,先由计算机随机生成一个各位相异的4位数字,由用户来猜,根据用户猜测的结果给出提示:xAyB
其中,A前面的数字表示有几位数字不仅数字猜对了,而且位置也正确,B前面的数字表示有几位数字猜对了,但是位置不正确。
最多允许用户猜的次数由用户从键盘输入。如果猜对,则提示“Congratulations!”;如果在规定次数以内仍然猜不对,则给出提示“Sorry, you haven't guess the right number!”。程序结束之前,在屏幕上显示这个正确的数字。


#include
#include
#include
int main()
{
int k,i,j,a[4],b[4],count,d,n;

time_t t;
srand((unsigned) time(&t));
b[0]= rand()%9;
for(i=1;i<4;i++)
{
rsm:k= rand()%9;
for(j=0;j<i;j++)
if(k==b[j])
goto rsm;
b[i]=k;
}

printf("
请输入猜的次数: ");

scanf("%d",&n);
while(n--)
{
count=0;d=0;
for(i=0;i<4;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<4;i++)
{
if(b[i]==a[i])
count++;
}
printf("%dA",count);
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
if(a[i]==b[j])
d++;
}
printf("%dB
",d-count);
if(count==4)
{
printf("
Congratulations!
");

system("pause");
return 0;
}
}
printf("Sorry, you haven't guess the right number.
");
printf("随机产生的数:");
for(i=0;i<4;i++)
{
printf("%d ",b[i]);
}
system("pause");
}

你运气好,我这正好有个以前写得玩的小程序:<<掷骰子>>,给你参考参考,不过内容可能有点杂,希望对你有所帮助:
// 赌博机.cpp : Defines the entry point for the console application.
//第2版.增加了游戏最终结果的记录保存功能 //win7版

#include "stdafx.h"
#include "stdlib.h"
#include "time.h"

long int process(long int);
void wait(int);
void record_time(FILE *fp);
void save(char name[],long int money);

int main(int argc, char* argv[])
{
char name[8];
int money,start;
int judge=1;//循环判断
start=100000;
money=start;
printf("请问阁下尊姓大名:");
scanf("%s",&name);
do
{
system("cls");//清屏
char choice;
printf("\t\t\t\t\t当 前 玩 家-----");
puts(name);
printf("\t\t\t\t\t您目前的金额为-----%d¥\n\n",money);
money=process(money);//调用函数进行钱数的控制和处理
printf("\n\t\t\t\t\t你口袋的钱目前还有-----%d元\n",money);
if(money<=0)//用户的钱低于0,则自动退出
{
printf("\t#############################################################\n");
printf("\t没钱的话,你丫的可以滚了!!\n");
printf("\t#############################################################\n");
printf("\n\t\t三秒后自动退出");
wait((int) 5);
exit(0);
}
else if(money>=10000000)//用户的钱超过一千万,则自动结束
{
printf("\t!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
printf("\t-----靠,你丫今天运气真他吗好,不玩了!\n");
printf("\t!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
wait((int) 3);
exit(0);
}
else//其他情况,询问用户是否继续游戏
{
printf("\n\t=======是否继续?(n退出,其他键继续)");
getchar();
scanf("%c",&choice);
if((choice=='n')||(choice=='N'))
{
judge=0;
save(name,money);
printf("\n\t\t三秒后自动退出");
wait((int) 3);
}
}
}while(judge);
return 0;
}

long int process(long int money)
{

long int lost,win,temp;//赢的倍率,输的倍率,下注金额
int number,guess_value;
temp=0;//初始下注金额为0
win=5;//5倍
lost=1;//1倍

srand((unsigned)time(NULL));//获取随机数0-6
number=rand()%6;//随机数在0-5之间
number=number+1;//实现骰子的功能
printf("\t*************************************************************\n");
printf("\t******这是一个掷骰子的小游戏,由电脑随即掷一个1-6的点数*******\n");
printf("\t*************************************************************\n");
printf("\n\n\t\t\t系统正在掷骰子");
for(int ctr=1;ctr<=3;ctr++)
{
printf(".");
wait((int) 1);
}
//printf("\n\n骰子点数是:%d\n\n",number);//作弊,显示骰子数
printf("\n\n请输入你所猜的点数(1-6):");
scanf("%d",&guess_value);
if((guess_value>6)||(guess_value<1))//输入点数不对
printf("\t\tXXXXXX不在骰子范围内!XXXXX\n");
else
{
printf("\n请输入下注金额(0-%d):",money);
scanf("%d",&temp);
if(temp>money)//下注金额超过用户本钱
{
printf("\t!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
printf("\t-----玩我啊!你那点屁钱还押这么多!\n");
printf("\t!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
}
else
{
if(number==guess_value)//猜对了
{
money=money-temp;
temp=temp*win;
printf("\t+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
printf("\t丫的运气真好,竟然猜中了%d点,%d块钱你拿去吧!\n",number,temp);
printf("\t+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
money+=temp;
}
else
{
temp=temp*lost;//猜错了
printf("\t-------------------------------------------------------------\n");
printf("\t嘿嘿...是%d点,你输%d块钱啦!爷叫你今天光着回去!\n",number,temp);
printf("\t-------------------------------------------------------------\n");
money-=temp;
}
}
}
return money;
}

void wait(int nbr_seconds)//延时程序
{
clock_t goal;
goal=(nbr_seconds*CLOCKS_PER_SEC)+clock();
while(goal>clock())
;
}

void save(char name[],long int money)
{
FILE *fp;
fp=fopen("C:\\Users\\Administrator\\Desktop\\record.txt","a+");
if(fp==NULL)
{
printf("打开文件失败!\n");
getchar();
exit(0);
}
fputs(name,fp);
fprintf(fp,"\t:最终钱数%d----------",money);
record_time(fp);
printf("\n\t您本次的游戏记录已经保存在您的桌面上了,文件名为record.txt\n");
}

void record_time(FILE *fp)//利用时间结构体_tm_中的数据进行格式化的输出
{
struct tm *ptr;
time_t lt;
lt=time(NULL);
ptr=localtime(<);
fprintf(fp,"%d年%d月%d日,%d:%d:%d,星期%d\n",ptr->tm_year+1900,ptr->tm_mon+1,ptr->tm_mday,ptr->tm_hour,ptr->tm_min,ptr->tm_sec,ptr->tm_wday);
}

我写了一个,留下你的邮箱,或者联系我wzwahl36@qq.com

然后你再补点分啊!

呵呵!

我有上学期做的课程设计,全部的,包括报告等,需要的话可以发你邮箱! 或者发我邮件,843478974@qq.com


绥滨县18745697606: 各位哥哥姐姐们小弟在此求教了:怎样不虚度大学时光,更好的武装自己,不被其他同学的脚步所同化呢? -
阳杜枸磺: 这靠你的意志力 别人都在玩,你能控制自己不玩么?别人都在睡觉你能起床来么?人都有从众心理,你能克服这一些的话再谈其他的吧 大学是一个舆论传播很快很复杂的地方 在你追求前进的时候最好不要特立独行 如果你克服这一些,那么尝试着利用课余时间打打工吧,很锻炼大学生的

绥滨县18745697606: 各位哥哥姐姐小弟有一题请教大家,鸡蛋0.5元,鸭蛋3元,鹅蛋5元,要用100元买一百个蛋,分...各位哥哥姐姐小弟有一题请教大家,鸡蛋0.5元,鸭蛋3元,... -
阳杜枸磺:[答案] 0.5X+3Y+5Z =100 (1) X+Y+Z =100 (2) (1)-(2)*0.5 ,得 ==>2.5Y+4.5Z =50 (3) 5Y+9Z =100 Y,Z都要为整数 Y=2,Z=10 或 Y=11,Z=5 所以,有2种情况, 一种是88,2,10或84,11,5

绥滨县18745697606: 各位哥哥姐姐们,行行好吧.小弟在此跪下了.我家是惠普笔记本,设了密码.哪位上帝可以不伤电脑,不被... -
阳杜枸磺: 楼主节哀,进不了系统,无法远程操作.要在不改密码的情况下知道密码,又是HP笔记本,代表多半是WIN7系统.这个就...

绥滨县18745697606: 求助各位大哥大姐们.小弟在线等.
阳杜枸磺: 在通知中心的信息选项,把显示预览关闭,再把提醒样式选无

绥滨县18745697606: 大哥大姐们小弟在此拜上了,帮我个忙~!
阳杜枸磺:付出的爱, 要怎么念彼此才会更明白, 爽朗的轻笑,亦难掩转身瞬间的黯然 我们,风起时说再见 爱你有多深 你是否永远明白?

绥滨县18745697606: 小弟最近比较烦,麻烦各位哥哥姐姐帮帮忙,找几个伤感的歌曲,最好是英文的,小弟在此谢过~ -
阳杜枸磺: 楼上说得那个only human确实伤感,值得一听 amazing grace--天赐恩宠 基督教圣歌 有种想被救赎的感觉 that place in your heart--Ronan Hardiman 这首歌则是有种天使降临世间的感觉,夜深人静一个人听感觉真的不错!truly maddiy and deep ...

绥滨县18745697606: 求:一个快速简单的换算公式!各位哥哥姐姐,帮小弟算一个简单的换算公式.问:5元4斤苹果,如果你买3元钱的,那应该给多少斤苹果呢?答案应该是2... -
阳杜枸磺:[答案] 4/5*3=2.4,3是你要买的金数

绥滨县18745697606: 各位哥哥姐姐小弟在24号晚急需诸葛亮卒于军的的译文和注释,(是十二年春到天下奇才也和初,亮自表后主曰到如其所言这2段)!是这2段的注释和译文!... -
阳杜枸磺:[答案] 十二年的春天,诸葛亮率领大部队从斜谷出击,用流马运粮草,驻军在武功的五丈原这个地方,和司马懿在渭水以南对峙.诸葛亮常常担心军队的粮草供应不上,从而使他的大志得不到实现,于是派遣一部分士兵进行屯田(在驻扎地里种粮食),作为...

绥滨县18745697606: 各位哥哥姐姐们..小弟求几本..全本的都市异能小说..如<现代奇人>那种类型的都市异能小说.... -
阳杜枸磺: 《禁果》,《生肖守护神》

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网