⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guess.c

📁 猜数字游戏
💻 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 + -