C++ 야구 게임
#include "stdafx.h"
#include <cstdlib>
#include <conio.h>
#include <ctime>
#include<iostream>
using namespace std;
#define ARR_TWO 2
#define ARR_ONE 1
#define ARR_SIZE 3
int g_nComNum[ARR_SIZE]={0,0,0};
int g_nUserNum[ARR_SIZE]={0,0,0};
int g_nResultCount = 0;
int g_nResult = 0;
void main()
{
while(true){
srand((unsigned int)time(NULL));
int m_nMakeSuc = 0;
for(int i=0; i<ARR_SIZE; i++){
g_nComNum[i] = (rand() % 10) ;
if(i==ARR_ONE && g_nComNum[i] != g_nComNum[i-ARR_ONE])
m_nMakeSuc++;
if((i==ARR_TWO && g_nComNum[i] != g_nComNum[i-ARR_TWO]) && g_nComNum[i] != g_nComNum[i-ARR_ONE] )
m_nMakeSuc++;
}
if(m_nMakeSuc == 2)
break;
}
while(true){
int m_nStrike = 0;
int m_nBall = 0;
g_nResultCount++;
printf("********** %d 회 **********\n", g_nResultCount);
while(true){
int m_nMakeSuc2 = 0; // 중복검사변수
int m_nThreshold = 0; // 범위검사변수
for(int j=0; j<ARR_SIZE; j++){
printf("%d 번 숫자 : ",j);
cin >> g_nUserNum[j];
if(j==1 && (g_nUserNum[j] != g_nUserNum[j-1])) //중복검사 1
m_nMakeSuc2++;
if((j==2 && g_nUserNum[j] != g_nUserNum[j-ARR_TWO]) && g_nUserNum[j] != g_nUserNum[j-ARR_ONE] ) //중복검사 2
m_nMakeSuc2++;
if(j==2 && ((0 > g_nUserNum[j-ARR_TWO] || g_nUserNum[j-ARR_TWO] > 9 ) || (0 > g_nUserNum[j-ARR_ONE] || g_nUserNum[j-ARR_ONE] > 9 )
|| (0 > g_nUserNum[j] || g_nUserNum[j] > 9 )) ) //범위 검사
m_nThreshold = 1;
}
if(m_nMakeSuc2 == 2 && m_nThreshold == 0)
break;
if(m_nThreshold != 2)
printf("오류 ! 숫자 중복 \n");
if(m_nThreshold == 1)
printf("오류 ! 범위는 0~9 \n ");
}
for(int i=0;i<ARR_SIZE;i++){
for(int j=0; j<ARR_SIZE; j++){
if(g_nComNum[i] == g_nUserNum[i]){
m_nStrike++;
break;
}else if(g_nComNum[i] == g_nUserNum[j]){
m_nBall++;
break;
}
}
}
printf("스트라이크:%d , 볼:%d \n", m_nStrike, m_nBall);
if(m_nStrike == 3)
break;
}
printf("\n%d 번 만에 성공!\n", g_nResultCount);
printf("컴퓨터 유저\n");
for(int k=0; k < ARR_SIZE; k++){
printf(" %d",g_nComNum[k]);
printf("%7.d\n",g_nUserNum[k]);
}
getch();
}
출력 ↓
'--프로그래밍-- > C, C++' 카테고리의 다른 글
[C++] rand()는 이제 그만 ! 난수 엔진 mt19937 (0) | 2015.01.29 |
---|