📄 guess.c
字号:
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
#include<bios.h>
#include<dos.h>
int a[4],b[4],d[4];
main()
{
int m,w,f,i,j,a[5],b[5],ss,s;
char ab,xy;
ss=0;s=0;
system("c:");
system("pdos95");
clrscr();
for(i=1;i<5;i++) {printf("\n");}
textcolor(GREEN);
cprintf(" 游戏说明 ");
printf("\n\n");
cprintf(" 游戏名称:猜数字");
printf(" \n\n");
cprintf(" A:表示数字正确,并且位置也正确。如:1A,表示有1个数字正确且位置正确.以此类推.");
printf("\n\n");
cprintf(" B:表示数字正确,但位置不正确。如:1B,表示有1个数字正确且位置正确。以此类推.");
printf(" \n\n");
cprintf(" 你只能输入数字0—9,并用回思车键来确认输入。");
for(i=1;i<8;i++) {printf("\n");}
cprintf(" Will you continue this program?(y/n)");
scanf(" %c",&ab);
if (ab!='y'&&ab!='Y') {textcolor(WHITE);clrscr();exit(0); }
clrscr();
start:
randomize();
do
{
for (i=1;i<=4;i++)
a[i]=random(10);
}
while ((a[1]==a[2])||(a[1]==a[3])||(a[1]==a[4])||(a[2]==a[3])||(a[2]==a[4])||(a[3]==a[4]));
ren:
textcolor(GREEN);
cprintf("请输入4位互不相同的数字:");
f=1;
do
{
do
{
i=1;
inputnumber(b);
m=judge(b);
}
while (m==0);
ss=0;s=0;
for (i=1;i<=4;i++)
{
for (j=1;j<=4;j++)
{
if (i==j&&a[i]==b[j]) {ss++;}
if (i!=j&&a[i]==b[j]) {s++;}
}
}
textcolor(28);
printf("\n");
if(ss!=4) {cprintf("%d%d%d%d %dA %dB",b[1],b[2],b[3],b[4],ss,s);}
if (ss!=4) {f++; }
textcolor(GREEN);
if (ss!=4&&f<9) {cprintf(" 请再输入4个互不相同的数字:");}
}
while(f<9&&ss!=4);
textcolor(GREEN);
if (f==1&&ss==4&&s==0)
{
printf("\n");
textcolor(RED);
cprintf(" 你第1次就猜对了此数,聪明灵俐,得分100!!");
printf("\n");
goto end1;
}
if(f<9)
{
textcolor(RED);
printf("\n");
cprintf("你第%d次就猜对了此数,聪明灵俐,得分100!!",f);
printf("\n");
}
if(f>8) {goto end;}
end1:
xy=0;
cprintf("嘿,真好玩,再猜一个?(y/n)");
do
{
if (kbhit())
{xy=bioskey(0);}
if (xy=='n'||xy=='N'||xy==27)
{textcolor(WHITE);clrscr();exit(0);}
}
while (xy!='y'&&xy!='Y');
printf("\n");
goto start;
end:
printf("\n");
textcolor(RED);
cprintf("正确数字:%d%d%d%d",a[1],a[2],a[3],a[4]);
printf("\n");
cprintf("你已经没有机会再猜对这个数,愿意猜下一个数吗?(y/n)");
xy=0;
do
{
if (kbhit())
xy=bioskey(0);
if (xy=='n'||xy=='N'||xy==27)
{textcolor(WHITE);clrscr();exit(0);}
}
while (xy!='y'&&xy!='Y');
printf("\n");
goto start;
}
inputnumber(d)
int d[5];
{
int i;
char xy;
textcolor(GREEN);
i=1;
textcolor(YELLOW);
doround:
do
{
if (kbhit())
{
xy=bioskey(0);
if (xy==27)
{
textcolor(RED);
cprintf("你真的不猜了吗?(y/n)");
endall();
cprintf(":");
}
if (xy>='0'&&xy<='9'&&i<6)
{
if (i<5)
{
cprintf("%c",xy);
d[i]=xy-48;
i++;
}
}
if (xy==8) i=xiaozhen(i);
}
}
while(xy!=13||i<5);
}
endall()
{
char xy;
textcolor(RED);
do
{
if (kbhit())
xy=bioskey(0);
if (xy=='y'||xy=='Y'||xy==27)
{
textcolor(WHITE);
clrscr();
exit(0);
}
}
while (xy!='n'&&xy!='N');
textcolor(YELLOW);
}
int judge(d)
int d[5];
{
if ((d[1]==d[2])||(d[1]==d[3])||(d[1]==d[4])||(d[2]==d[3])||(d[2]==d[4])||(d[3]==d[4]))
{
printf("\n");
textcolor(148);
cprintf("数字不能相同,请重新输入:");
textcolor(GREEN);
return(0);
}
return(1);
}
int xiaozhen(r)
int r;
{
int x,y;
if (r>1&&r<6)
{
x=wherex();y=wherey();
gotoxy(x-1,y);
printf("%c",255);
gotoxy(x-1,y);
r--;
}
return(r);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -