📄 numble.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 + -