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

📄 numble.c

📁 手机上的小游戏,初学者必看的东西~~ 解决屏蔽垃圾输入的问题
💻 C
字号:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>

void Rander( int * i_a );
int point( int p[] );
int pass( int * user, int * right, int * a, int * b);


void userin( int * user)
{
    int i;
    
    for( i = 0; i < 4; i++)
    {
        while( 1 )
        {
            user[i] = getch();
            if( user[i] == 'q' )
            {
                printf( " Quit(Y or N)?");
                user[i] = getch();
                if( user[i] == 'y'||user[i] == 'Y' )
                {
                    printf("\n\n*** Game Over ***\n");
                    getch();
                    exit( 1 );
                }
                else printf("\n");
            }
            if( user[i] >= 49 && user[i] <= 57 )
            {
                printf("%c", user[i]);
                break;
            }
        }
    }
}

int main( void )
{
    int i_a[4];
    int user[4];
    int cont = 0, a, b, k = 0;
    int i;
    
    textbackground(7);            /* 设置屏幕背景色 */
    clrscr();

    while( 1 )
    {
        Rander( i_a );

        window(1, 1, 20, 25); /* 定义文本窗口 */
        textbackground(2);        /* 定义窗口背景色 */
        clrscr();

        printf( "Enter 4 numble:\n");
    
        while( cont != 8 )
        {
            userin( user );
            k = pass( user, i_a, &a, &b);
            if( k )
            {
                printf( "\nVery smart!\n");
                if( cont > 7 )
                    printf( "But ...time is money freand...\n");
                break;
            }
            printf( "\n%d A %d B\n", a, b);
            cont++;
        }
        cont = 0;
        if( k == 0)
        {
            printf("right is :  ");
            for( i = 0; i < 4; i++)
                printf("%d", i_a[i]);
            printf("\n");
            getch();
        }
    }
    printf( "Good Bey!\n");
    
    getch();
}


int pass( int * user, int * right, int * a, int * b)
{
    int i, j;
    *a = *b = 0;
    for( i = 0; i < 4; i++)
        for( j = 0; j < 4; j++)
            if( user[j]-48 == right[i] )
                if( i == j )
                    *a += 1;
                else
                    *b += 1;
    if( *a == 4 )
        return 1;
    return 0;
}



int point( int p[] )
{
    int i,j;
    for( i = 0; i < 3; i++)
        for( j = i+1; j < 4; j++)
            if( p[i] == p[j] )
                return j;
            if( i == 3 )
                return -1;
}

void change(int p[],int k)
{
    srand( time( NULL ) );
    p[k] = rand()%9 + 1;
}

void Rander( int * d )
{
    int i,k;
    
    srand( time( NULL ) );
    for( i = 0; i < 4; i++)
        d[i] = rand()%9+1;
    while(1)
    {    
        if( ( k = point( d )) == -1)
            break;
        else change( d, k);
    }
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -