/******************************************************************************
[๋ฌธ์ ] ์ซ์ ์ผ๊ตฌ ๊ฒ์ ํ๋ก๊ทธ๋จ ์์ฑ
์๋ ์กฐ๊ฑด์ ๋ง๋ C์ธ์ด ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
[ํ๋ก๊ทธ๋จ ์ค๋ช
]
- ์ปดํจํฐ๋ 1~9 ์ฌ์ด์ ์๋ก ๋ค๋ฅธ ์ ์ 3๊ฐ๋ฅผ ๋ฌด์์๋ก ์ ํํ๋ค.
- ์ฌ์ฉ์๋ 1~9 ์ฌ์ด์ ์๋ก ๋ค๋ฅธ ์ ์ 3๊ฐ๋ฅผ ์
๋ ฅํ๋ค.
- ์
๋ ฅ๊ฐ๊ณผ ์ปดํจํฐ์ ์ซ์๋ฅผ ๋น๊ตํ์ฌ ์คํธ๋ผ์ดํฌ(Strike)์ ๋ณผ(Ball)์ ๊ณ์ฐํ๋ค.
ยท ์คํธ๋ผ์ดํฌ: ์ซ์์ ์์น๊ฐ ๋ชจ๋ ๊ฐ์
ยท ๋ณผ: ์ซ์๋ ์์ผ๋ ์์น๊ฐ ๋ค๋ฆ
- 3 ์คํธ๋ผ์ดํฌ๊ฐ ๋์ฌ ๋๊น์ง ๊ฒ์์ ๋ฐ๋ณต ์งํํ๋ฉฐ, ์๋ ํ์(๋ผ์ด๋)๋ฅผ ๊ธฐ๋กํ๋ค.
- ์ต์ข
์ ์ผ๋ก ์ ๋ต๊ณผ ํจ๊ป ๋ผ์ด๋ ์๋ฅผ ์ถ๋ ฅํ๋ค.
[๊ตฌํ ์กฐ๊ฑด]
๋ค์์ ํจ์๋ค์ ์ฌ์ฉํ์ฌ ๊ตฌํํ ๊ฒ. ํฌ์ธํฐ ๋ฐ ๋ฐฐ์ด ์ฌ์ฉ์ ๊ธ์งํ๋ฉฐ, ํจ์ ์ด๋ฆ๊ณผ ๋งค๊ฐ๋ณ์๋ ๊ทธ๋๋ก ์ฌ์ฉํ ๊ฒ.
1. int generateNumber(int n1, int n2)
- 1~9 ์ฌ์ด ์ซ์๋ฅผ ํ๋ ๋ฌด์์๋ก ์์ฑํ์ฌ ๋ฐํ
- ์ธ์๋ก ์ ๋ฌ๋ n1, n2์ ๋ค๋ฅธ ์ซ์์ฌ์ผ ํจ
- ์ด 3๋ฒ ํธ์ถํ์ฌ com1, com2, com3์ ์์ฑํ ๊ฒ
2. int getInput(char* prompt)
- ์ฌ์ฉ์๋ก๋ถํฐ ์ซ์ ํ๋๋ฅผ ์
๋ ฅ๋ฐ์ ๋ฐํ
- prompt๋ ์๋ด ๋ฌธ๊ตฌ๋ก ์ถ๋ ฅํจ (์: "์ฒซ ๋ฒ์งธ ์ซ์ (1~9): ")
3. int checkGuess(int com1, int com2, int com3, int user1, int user2, int user3)
- ์ปดํจํฐ ์ซ์์ ์ฌ์ฉ์ ์
๋ ฅ์ ๋น๊ตํ์ฌ ์คํธ๋ผ์ดํฌ/๋ณผ์ ๊ณ์ฐ
- ๊ฒฐ๊ณผ๋ "๊ฒฐ๊ณผ: X ์คํธ๋ผ์ดํฌ, Y ๋ณผ" ํ์์ผ๋ก ์ถ๋ ฅ
- ์คํธ๋ผ์ดํฌ ๊ฐ์๋ง ์ ์๋ก ๋ฐํ
4. void playGame()
- ๊ฒ์์ ์ ์ฒด ํ๋ฆ์ ์ ์ด
- com1~com3์ generateNumber๋ก ์์ฑ
- user1~user3์ getInput์ผ๋ก ์
๋ ฅ๋ฐ์
- ์ค๋ณต ์
๋ ฅ ๋๋ ๋ฒ์(1~9) ๋ฒ์ด๋ ๊ฒฝ์ฐ ๋ค์ ์
๋ ฅ๋ฐ๋๋ก ์ฒ๋ฆฌ
- checkGuess๋ฅผ ํตํด ํ๋จํ๋ฉฐ, 3 ์คํธ๋ผ์ดํฌ์ผ ๊ฒฝ์ฐ ์ฑ๊ณต ๋ฉ์์ง์ ๋ผ์ด๋ ์ ์ถ๋ ฅ ํ ์ข
๋ฃ
[์คํ ์์]
โพ ์ซ์ ์ผ๊ตฌ ๊ฒ์์ ์์ํฉ๋๋ค!
์ฒซ ๋ฒ์งธ ์ซ์ (1~9): 1
๋ ๋ฒ์งธ ์ซ์ (1~9): 2
์ธ ๋ฒ์งธ ์ซ์ (1~9): 3
๊ฒฐ๊ณผ: 1 ์คํธ๋ผ์ดํฌ, 1 ๋ณผ
์ฒซ ๋ฒ์งธ ์ซ์ (1~9): 4
๋ ๋ฒ์งธ ์ซ์ (1~9): 5
์ธ ๋ฒ์งธ ์ซ์ (1~9): 6
๊ฒฐ๊ณผ: 0 ์คํธ๋ผ์ดํฌ, 2 ๋ณผ
์ฒซ ๋ฒ์งธ ์ซ์ (1~9): 7
๋ ๋ฒ์งธ ์ซ์ (1~9): 3
์ธ ๋ฒ์งธ ์ซ์ (1~9): 2
๊ฒฐ๊ณผ: 3 ์คํธ๋ผ์ดํฌ, 0 ๋ณผ
3 ์คํธ๋ผ์ดํฌ! ์ ๋ต์
๋๋ค! ์ด 3 ๋ผ์ด๋ ๋ง์ ์ฑ๊ณต!
[์ฃผ์์ฌํญ]
- ํฌ์ธํฐ, ๋ฐฐ์ด ์ฌ์ฉ ๊ธ์ง
- ํจ์ ์ด๋ฆ๊ณผ ๋ณ์ ์ด๋ฆ์ ๋ฌธ์ ์ ์ ์๋ ๊ฒ ๊ทธ๋๋ก ์ฌ์ฉํ ๊ฒ
- srand(time(NULL)); ๋ main ํจ์์์ ํ ๋ฒ๋ง ํธ์ถ
*******************************************************************************/
#pragma warning (disable : 4996)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int generateNumber (int n1, int n2){
int n;
while(1){
n = rand() % 9 + 1;
if(n != n1 && n != n2){
break;
}
}
return n;
}
int getInput(int prompt){
int num;
printf("%d ๋ฒ์งธ ์ซ์ (1~9) : ", prompt);
scanf("%d", &num);
return num;
}
int checkGuess(int com1, int com2, int com3, int user1, int user2, int user3){
int strike = 0, ball = 0;
if (user1 == com1) strike++;
if (user2 == com2) strike++;
if (user3 == com3) strike++;
if (user1 == com2 || user1 == com3) ball++;
if (user2 == com1 || user2 == com3) ball++;
if (user3 == com1 || user3 == com2) ball++;
printf("result : %d strike, %d ball\n\n", strike, ball);
return strike;
}
void playGame(){
int com1, com2, com3;
int user1, user2, user3;
int round = 0;
com1 = generateNumber(0, 0);
com2 = generateNumber(com1, 0);
com3 = generateNumber(com1, com2);
printf("โพ ์ซ์ ์ผ๊ตฌ ๊ฒ์์ ์์ํฉ๋๋ค!\n");
while(1){
user1 = getInput(1);
user2 = getInput(2);
user3 = getInput(3);
if (user1 < 1 || user1 > 9 || user2 < 1 || user2 > 9 || user3 < 1 || user3 > 9){
printf("1~9 ์ฌ์ด ์ซ์๋ง ์
๋ ฅํ์ธ์.\n");
continue;
}
if (user1 == user2 || user1 == user3 || user2 == user3){
printf("์๋ก ๋ค๋ฅธ ์ซ์๋ฅผ ์
๋ ฅํ์ธ์.\n");
continue;
}
round++;
if (checkGuess(com1, com2, com3, user1, user2, user3) == 3){
printf("3 ์คํธ๋ผ์ดํฌ! ์ ๋ต์
๋๋ค.\n์ด %d ๋ผ์ด๋ ๋ง์ ์ฑ๊ณต!\n", round);
break;
}
}
}
int main(){
srand(time(NULL));
playGame();
return 0;
}