📄 guess.cpp
字号:
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
void check()
{char a[10],b[10];
FILE *fp;
cout<<"请输入密码"<<endl;
cin>>b;
if((fp=fopen("mima.txt","r"))==NULL)
cout<<"不能打开文件"<<endl;
fscanf(fp,"%s",a);
while(strcmp(a,b)!=0)
{ cout<<"密码错误,请从新输入"<<endl;
cin>>b;}
fclose(fp);
}
void change_mima()
{char a[10],b[10];
FILE *fp;
if((fp=fopen("mima.txt","w"))==NULL)
cout<<"写入操作错误"<<endl;
cout<<"请输入密码"<<endl;
cin>>a;
cout<<"请再输入密码"<<endl;
cin>>b;
if(strcmp(a,b)==0)
{fprintf(fp,"%s",a);
cout<<"更改密码成功"<<endl;}
else
cout<<"修改错误"<<endl;
fclose(fp);
}
void guess_num()
{
int a1,b1;
int num,guess,n[4],k,i,j,s=0;
k=0;
num=0;
cout<<"欢迎进入猜数字游戏。"<<endl;
cout<<"游戏规则:请猜出一个四位数,它的每位数字各不相同且每猜一次都提示相应的a、b值"<<endl;
cout<<"你总共有八次机会"<<endl;
cout<<"a代表猜对数字的总个数,b代表数字且对应位置都猜对的数字个数";
cout<<endl<<"由于系统调用函数,可能要延迟一会儿,待出现提示时开始游戏时继续"<<endl;
while(!s)
{ ::srand((unsigned int)time(NULL));
s=rand()%10;
n[k]=s;}
k++;
while(k<5)
{loop: ::srand((unsigned int)time(NULL));
s=rand()%10;
for(i=0;i<k;i++)
if(s!=n[i])
n[k]=s;
else goto loop;
k++;}
cout<<endl;
for(i=0;i<4;i++)
num=num*10+n[i];
cout<<"让你久等了,非常抱歉!现在你可以开始游戏了"<<endl;
a1=0;
b1=0;
int v=0;
cout<<" a b"<<endl;
cout<<"这是第"<<v+1<<"次 "<<a1<<" "<<b1<<" ";
cin>>guess;
int m[4];
while(v<7)
{m[0]=guess/1000;
m[1]=(guess-m[0]*1000)/100;
m[2]=(guess-m[0]*1000-m[1]*100)/10;
m[3]=guess%10;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(n[i]==m[j])
a1++;
for(i=0;i<4;i++)
if(n[i]==m[i])
b1=b1+1;
if(a1==4&&b1==4) {k=0;break;}
cout<<"这是第"<<v+2<<"次 "<<a1<<" "<<b1<<" ";
cin>>guess;
a1=0;
b1=0;
v++;
}
if(k==0)cout<<"你猜对了,这个数是"<<num<<endl;
else cout<<"这个数是"<<num<<endl;
cout<<"你继续吗?(y/n)"<<endl;
}
void main()
{int i;
char ch;
check();
cout<<" 欢迎使用猜数字游戏"<<endl;
cout<<endl<<endl<<endl;
cout<<"1------------修改密码" <<endl;
cout<<"2------------猜数字" <<endl;
cout<<endl<<endl<<endl;
cout<<"请选择你要的操作"<<endl;
cin>>i;
switch(i)
{case 1:{change_mima();
cout<<"你要开始游戏吗?(y/n)"<<endl;
cin>>ch;
while(ch=='y')
{guess_num();
cin>>ch;
}
break;}
case 2:{guess_num();
cin>>ch;
while(ch=='y')
guess_num();
break;}
default :cout<<"error!"<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -