반응형
카운트다운 게임은 일반적으로 특정 숫자에서 시작하여 1씩 감소시키면서 플레이어가 정해진 시간 안에 특정 목표 숫자에 도달하는 게임입니다.
컴퓨터가 시작 숫자를 1에서 10까지의 범위에서 무작위로 선택하고, 사용자가 1을 더하거나 빼는 입력을 받아 목표 숫자에 도달하도록 하는 간단한 카운트다운 게임을 구현한 것입니다. 게임의 제한 시간은 30초로 설정되어 있습니다. 필요에 따라 목표 숫자와 시간 제한을 조절하여 사용할 수 있습니다.
여기에서는 C언어와 C++ 언어의 코드가 있으며, 아래쪽에 파이썬 코드의 링크가 있습니다.
C언어
#define _CRT_SECURE_NO_WARNINGS // Visual Studio
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void countdown_game(int target_number, int time_limit) {
int current_number = rand() % 10 + 1; // 시작 숫자를 무작위로 선택
printf("게임 시작! 현재 숫자: %d\n", current_number);
time_t start_time = time(NULL); // 게임 시작 시간 기록
while (current_number != target_number) {
printf("1을 더하거나 뺀 후 Enter를 눌러주세요.\n");
char operation;
scanf(" %c", &operation);
if (operation == '+') {
current_number += 1;
}
else if (operation == '-') {
current_number -= 1;
}
else {
printf("올바른 연산을 선택하세요.\n");
continue;
}
printf("현재 숫자: %d\n", current_number);
// 시간 초과 확인
time_t current_time = time(NULL);
if (current_time - start_time > time_limit) {
printf("시간 초과! 게임 종료.\n");
break;
}
}
if (current_number == target_number) {
printf("축하합니다! 목표 숫자 %d에 도달하셨습니다.\n", target_number);
printf("소요된 시간: %ld초\n", time(NULL) - start_time);
}
}
int main() {
srand((unsigned int)time(NULL));
countdown_game(10, 30); // 예제로 목표 숫자를 10, 시간 제한을 30초로 설정
return 0;
}
C++ 언어
#include <iostream>
#include <ctime>
#include <cstdlib>
void countdown_game(int target_number, int time_limit) {
int current_number = rand() % 10 + 1; // 시작 숫자를 무작위로 선택
std::cout << "게임 시작! 현재 숫자: " << current_number << std::endl;
time_t start_time = time(nullptr); // 게임 시작 시간 기록
while (current_number != target_number) {
std::cout << "1을 더하거나 뺀 후 Enter를 눌러주세요." << std::endl;
char operation;
std::cin >> operation;
if (operation == '+') {
current_number += 1;
} else if (operation == '-') {
current_number -= 1;
} else {
std::cout << "올바른 연산을 선택하세요." << std::endl;
continue;
}
std::cout << "현재 숫자: " << current_number << std::endl;
// 시간 초과 확인
time_t current_time = time(nullptr);
if (current_time - start_time > time_limit) {
std::cout << "시간 초과! 게임 종료." << std::endl;
break;
}
}
if (current_number == target_number) {
std::cout << "축하합니다! 목표 숫자 " << target_number << "에 도달하셨습니다." << std::endl;
std::cout << "소요된 시간: " << time(nullptr) - start_time << "초" << std::endl;
}
}
int main() {
srand(static_cast<unsigned int>(time(nullptr)));
countdown_game(10, 30); // 예제로 목표 숫자를 10, 시간 제한을 30초로 설정
return 0;
}
실행한 결과 화면입니다.
시간이 초과된 경우
반응형
'C_C++' 카테고리의 다른 글
(C언어) 테트리스 게임 소스 (79) | 2024.01.11 |
---|---|
(C언어) 구조체를 이용한 성적처리 프로그램, 총점 평균 석차 구하기 (3) | 2024.01.10 |
(C/C++) 배열에서 정렬하기 않고 최대값, 두 번째로 큰 값 구하기 (80) | 2023.12.30 |
(C언어) 삼각형의 종류 판단하기: 직각, 둔각, 예각 삼각형 (80) | 2023.12.14 |
(C++) 숫자 맞추기 게임: 클래스 이용 (63) | 2023.12.07 |