20160503_야구게임만들기
콘솔로 야구게임을 만들어보자.
배열, if문, for문, rand 함수를 이용해 만들 수 있다.
순서를 나눠보면
1. 랜덤한 숫자 3개를 com[3]에 저장한다. (단, 첫번째 자리는 0이 될수 없으며, 각 자리의 숫자는 중복될 수 없다.)
2. 10번의 기회를 가지도록 for문을 만든다.
3. 각 기회당 세개의 숫자를 입력받고, com과 비교하여 숫자만 맞으면 ball, 숫자와 자리가 맞으면 strike의 숫자를 올려준다.
4. 세자리를 맞추면 게임을 끝낸다.
#include <iostream>
#include <time.h>
using namespace std;
int main() {
int com[3]; // 임의로 설정할 3개의 정수
int user[3]; // 입력받을 3개의 정수
int strike = 0, ball = 0; // strike, ball의 수
while (true) { // 3자리에 임의의 수를 중복되지 않도록 넣음.
com[0] = rand() % 10;
if (com[0] == 0) continue;
com[1] = rand() % 10;
if (com[0] == com[1]) continue;
com[2] = rand() % 10;
if (com[2] == com[0] || com[2] == com[1]) continue;
break;
}
for (int i=0; i<10; i++) { //기회가 10번이다.
cout << "세개의 수 입력 : ";
for(int i = 0; i<3; i++) { //입력받는다.
cin >> user[i];
}
for(int i = 0; i<3; i++) {
for(int j =0; j<3; j++) {
if(i==j && com[i] == user[j]) strike++;
if(i!=j && com[i] == user[j]) ball++;
}
}
cout << strike <<"스트라이크 " << ball <<"볼" <<endl;
if (strike == 3) // 3스트라이크이면 반복문을 나간다.
berak;
else // 3스트라이크가 아니면 볼, 스트라이크를 0으로 초기화한다.
strike = ball = 0;
}
}