#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void thinking(int*);
void decision(int*, int*, int*, int*);
int num_length;
int main(void)
{
int n, strike, ball, *computer, *gameuser;
int difficulty;
int chance;
printf("*----------------------------------------------*\n");
printf(" ¾ß±¸°ÔÀÓ \n");
printf("*----------------------------------------------*\n");
printf("³À̵µ¸¦ ÀÔ·ÂÇϽÿÀ(1,2,3 ´Ü°è):");
scanf_s("%d", &difficulty);
num_length = difficulty+2;
printf(" 1) ÄÄÇ»ÅͰ¡ %d°³ÀÇ ÇÑÀÚ¸® ¼ö¸¦ »ý°¢ÇÕ´Ï´Ù.\n",num_length);
printf(" 2) »ç¿ëÀÚ°¡ %d°³ÀÇ ¼ýÀÚ¸¦ ÀÔ·ÂÇÕ´Ï´Ù. \n",num_length);
printf(" 3) ¼ýÀÚ°¡ °°°í À§Ä¡°¡ °°À¸¸é ½ºÆ®¶óÀÌÅ©ÀÔ´Ï´Ù.\n");
printf(" 4) ¼ýÀÚ°¡ °°À¸³ª À§Ä¡°¡ ´Ù¸£¸é º¼ÀÔ´Ï´Ù.\n");
printf(" *) ¼ýÀÚ´Â ¶ç¾î¼ ÀÔ·ÂÇϼ¼¿ä. (¿¹: 1 4 5 7) \n");
printf("*----------------------------------------------*\n");
chance = difficulty * 10;
computer = malloc((num_length) * sizeof(int));
gameuser = malloc((num_length) * sizeof(int));
printf("±âȸ´Â %dȸ Á¦°øµË´Ï´Ù.", chance);
srand(time(NULL));
while (1) {
printf("»õ °ÔÀÓÀÔ´Ï´Ù \n");
thinking(computer);
for (n = 1;; n++) {
printf("(%d)> ", n);
switch (num_length) {
case 3:
scanf_s("%d %d %d", &gameuser[0], &gameuser[1], &gameuser[2]);
break;
case 4:
scanf_s("%d %d %d %d", &gameuser[0], &gameuser[1], &gameuser[2],&gameuser[3]);
break;
case 5:
scanf_s("%d %d %d %d %d", &gameuser[0], &gameuser[1], &gameuser[2],&gameuser[3],&gameuser[4]);
break;
}
strike = ball = 0;
decision(computer, gameuser, &strike, &ball);
if (strike == num_length) {
printf("ÃàÇÏÇÕ´Ï´Ù. %d step ¸¸¿¡ ¸ÂÃß¾ú½À´Ï´Ù !!! \n", n);
break;
}
else if (n == chance) {
printf("½ÇÆÐ!!! \n");
break;
}
else
printf("\t\t(%d ½ºÆ®¶óÀÌÅ© %d º¼ ±âȸ %d ³²À½)\n", strike, ball,chance -n);
}
}
}
int num_one(int comp[])
{
int i, count = 0;
for (i = 0; i < 10; i++) {
if (comp[i] == 1) count++;
}
return count;
}
void thinking(int computer[])
{
int i, j, n, num;
int comp[10] = { 0 };
do {
num = rand() % 10;
comp[num] = 1;
n = num_one(comp);
if (n == num_length) break;
} while (1);
for (i = 0, j = 0; i < 10; i++) {
if (comp[i] == 1)
computer[j++] = i;
}
for (i = 0, j = 0; i < 10; i++) {
int tmp;
j = rand() % 3 + 1;
tmp = computer[j];
computer[j] = computer[0];
computer[0] = tmp;
}
}
void decision(int computer[], int gameuser[], int* strike, int* ball) {
int i, j;
for (i = 0; i < num_length; i++) {
if (gameuser[i] == computer[i]) (*strike)++;
else {
for (j = 0; j < num_length; j++) {
if (gameuser[i] == computer[j]) (*ball)++;
}
}
}
}