반응형

개요

 

이번에는 C++을 배우기 전에 간단하게 C언어의 문법을 활용하여 컴퓨터와 유저가 서로 번갈아가면서 숫자를 입력해 먼저 100이 넘어가면 지는 그런 게임을 간단하게 한번 만들어 보도록 하자!

 


코드

 

#include <iostream>	// 입출력을 위해 사용
#include <cstdlib> // random 함수 사용
#include <ctime>   // Time 사용하기 위해 선언

using namespace std;

int computer_number(int i, int com_choice[]); // 컴퓨터가 입력하는 랜덤값
int user_number(int i, int user_choice[]);  // 사용자가 입력하는 값
void result(int winner_check); // 승자를 가리키 위한 함수
void showInfo(int i, int com_choice[], int user_choice[], int sum); // 입력된 숫자의 정보를 보여주는 Show함수

int main() {
	cout << "----------------------------------------------------------"<< endl << endl;
	cout << "100을 넘어라 게임" << endl << endl;
	cout << "컴퓨터와 사용가 번갈아가면서 숫자를 입력한다" << endl;
	cout << "숫자는 1 ~ 10 까지의 숫자를 사용한다" << endl;
	cout << "숫자는 중복이 안된다" << endl;
	cout << "최초로 100을 넘기면 승자가 된다!" << endl << endl;;
	cout << "----------------------------------------------------------" << endl << endl;

	srand((unsigned int)time(NULL)); // 시드값을 설정해준다.
	
	int com_choice[10] = { 0 }, user_choice[10] = { 0 };	// 각각 배열 10개를 만들고 0으로 초기화 시켜준다.
	int number, winner_check, i;
	int sum = 0;	// 숫자들의 총합

	for (i = 0; i < 10; i++) {
		number = computer_number(i, com_choice);
		sum += number;
		showInfo(i, com_choice, user_choice, sum);
		if (sum > 100) {			// 컴퓨터가 입력했을 때 100이 넘으면 이기도록 설정
			winner_check = 1;
			break;
		}
		number = user_number(i, user_choice);
		sum += number;
		showInfo(i, com_choice, user_choice, sum);
		if (sum > 100) {			// 사용자가 입력했을 때 100이 넘으면 이기도록 설정
			winner_check = 0;
			break;
		}
	}
	result(winner_check);	// winner_check 의 값을 가지고 간다.
	return 0;

}

int computer_number(int i, int com_choice[]) { // 컴퓨터가 선택하는 랜덤값
	int number,check;
	
	while (1) {					// 중복제거 를 위한 무한 반복문
		number = rand() % 10 + 1;
		check = 0;				// 반복문 제어를 위한 변수 check
		for (int j = 0; j < i; j++) {
			if (com_choice[j] == number) {
				check = 1;
			}
		}
		if (check == 0) {
			com_choice[i] = number;
			break;
		}

	}
	return com_choice[i];
}

int user_number(int i, int user_choice[]) { // 사용자가 선택하는 값
	int j, number, check;
	
	while (1) {					// 중복제거를 위한 무한 반복문
		cout << "숫자 입력후 Enter >>";
		cin >> number;
		if (number > 10) {		// 10이상의 숫자를 입력했을때 예외처리
			cout << "10이하의 숫자를 입력해 주세요" << endl;
			continue;
		}
		check = 0;
		for (j = 0; j < i; j++) {
			
			if (user_choice[j] == number) {
				cout << "중복 됬음니다." << endl << "다른 숫자를 입력해주세요" << endl;
				check = 1;
			}
		}
		if (check ==0) {
			user_choice[i] = number;
			break;
		}

	}

	return user_choice[i];
}

void result(int winner_check) {			// 승자를 가리기 위한 함수
	if (winner_check == 1) cout << "컴퓨터가 이겼습니다!" << endl;
	else cout << "사용자가 이겼습니다!" << endl;
}

void showInfo(int i, int com_choice[], int user_choice[], int sum) {		// 진행상활을 보여주는 함수
	int j;
	cout << "--------------------------------------------------------";
	cout << endl << endl << endl;
	cout << "컴퓨터 숫자 : ";
	for (j = 0; j <= i; j++) {
		cout << "  " <<com_choice[j];
	}
	cout << endl << endl << endl;
	cout << "사용자 숫자 : ";
	for (j = 0; j <= i; j++) {
		if (user_choice[j] == 0) {
			continue;
		}
		cout << "  " << user_choice[j];
	}
	cout << endl << endl << endl;
	cout << "현재 합계 : " << sum;
	cout << endl << endl << endl;
}

 

여기서는 입출력만 C++ 방법을 이용하여 사용하였다. 

 


실행후

 

반응형

+ Recent posts