求、 各位 哥哥姐姐; 小弟在此 跪求 一 用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

相关兴趣推荐

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网