?? 文曲星小游戲.txt
字號:
文曲星小游戲
/*這是文曲星里的小游戲,本人用C語言將其編出并添加破紀錄功能。游戲規則:隨機產生4個數字,由玩家輸入4個不重復的數字(如:8 3 1 2)按回車后電腦給出提示,其形式為"?A?B".你所輸入的四位數中,位置和數字都正確則為A,數字相同但位置不相同時為B,你只可以猜10次,若你所用的次數小于紀錄保持者,則為破紀錄。小作一篇,請多請教!
廣東工業大學 廖龍彪QQ:316688817 http://russia.e63.cn (俄羅斯記事本!歡迎訪問!!)*/
#include<stdlib.h>
#include<time.h>
#include<stdio.h>
struct player /*創立結構體*/
{
char name[20];
int score ;
}
player ;
int a[5],b[5],n1,n2,n3,i,j ;/*n1計算位置數字相同的數字個數n2計算數字相同但位置不相同的數字個數n3計算所猜次數*/
char ch ;
main()
{
goread();/*調用讀取破紀錄者函數*/
loop1 :
clrscr();/*清屏*/
n1=0 ;
n3=0;
getnumber();/*調用隨機產生4個數的函數*/
while(n1<4&&n3<10)
{
++n3 ;
n1=0 ;
n2=0 ;
printf("The top player:%s by only %i times Guess 4 numbers:",player.name,player.score);
for(i=1;i<=4;i++)
scanf("%d",&b[i]);
for(i=1;i<=4;i++)
{
if(a[i]==b[i])
{
n1++;
continue ;
}
for(j=1;j<=4;j++)
if(b[i]==a[j])n2++;
}
printf("%dA%dB you have guessed %d times\n",n1,n2,n3);
}
if(n3>10)printf("you blew it,the answer is %d%d%d%d",a[1],a[2],a[3],a[4]);
else
{
printf("Congratulastions!you finish it by %d times\n",n3);
if(n3<player.score)
breakrecord();/*調用新紀錄者函數*/
}
getchar();
printf("Do you wanna play it again?(y/n)\n");
ch=getchar();
if(ch=='y')goto loop1 ;
}
goread()/*讀取破紀錄者函數*/
{
FILE*fp ;
if((fp=fopen("player.txt","rb"))==NULL)
{
newset();/*調用初始化紀錄者函數*/
fp=fopen("player.txt","rb");
}
if(fread(&player,sizeof(struct player),1,fp)!=1)
printf("file write error");
fclose(fp);
}
newset()/*初始化紀錄者函數*/
{
struct player
{
char name[20];
int score ;
}
player=
{
"along",10
}
;
FILE*fp ;
if((fp=fopen("player.txt","wb"))==NULL)
{
printf("file open error\n");
return ;
}
if(fwrite(&player,sizeof(struct player),1,fp)!=1)
printf("file write error");
fclose(fp);
}
getnumber()/*隨機產生4個數的函數*/
{
randomize();
for(i=1;i<=4;i++)
loop2 :
{
a[i]=rand()%10 ;
for(j=i-1;j>=1;j--)
if(a[i]==a[j])goto loop2 ;
}
}
breakrecord()/*新紀錄者函數*/
{
printf("What is you name?");
scanf("%s",&player.name);
player.score=n3 ;
{
FILE*fp ;
if((fp=fopen("player.txt","wb"))==NULL)
{
printf("file open error\n");
return ;
}
if(fwrite(&player,sizeof(struct player),1,fp)!=1)
printf("file write error");
fclose(fp);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -