【C++】1/8192 をお手軽実装してみよう【プログラミング】
こんにちは、しがないプログラマBです。
みなさんは 1/8192 というゲームを知っていますでしょうか。一時期数多の配信者が配信していたことから、認知している人も多いかと思います。
そんなブームを作り上げた 1/8192 ですが、ゲームシステムはこの世に存在するゲームの中でも、最も簡単な部類に入ります。
それではさっそくコードを作ってみましょう。
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
int user_input, random_number;
int stage = 1;
srand(time(0));
cout << "press ctrl + C to exit" << endl;
while (stage <= 13) {
cout << "\nStage " << stage << ": 0 or 1?: ";
cin >> user_input;
random_number = rand() % 2;
if (user_input == random_number) {
stage++;
} else {
stage = 1;
}
}
cout << "\nGAME CLEAR" << endl;
return 0;
}
いや、少な!
僅か30行足らずで骨組みが完成してしまいました。
ここから、ユーザーが楽しく思えるような要素を追加してみましょう。
少し改良したコードを用意してみました。
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
// ANSIエスケープシーケンスを使用してテキストの色を赤くする関数
void setTextRed() {
cout << "\033[31m";
}
// 色をリセットする関数
void resetTextColor() {
cout << "\033[0m";
}
int main() {
int user_input, random_number;
int stage = 1;
srand(time(0));
cout << "press ctrl + C to exit" << endl;
while (stage <= 13) {
if (stage == 13) {
setTextRed();
}
cout << "\nStage " << stage << ": 0 or 1?: ";
cin >> user_input;
random_number = rand() % 2;
if (user_input == random_number) {
stage++;
} else {
stage = 1;
resetTextColor();
}
}
resetTextColor();
cout << "\nGAME CLEAR" << endl;
return 0;
}
追加要素を簡単に説明すると、最終ステージで文字を全て赤色にする要素を加えました。ゲームの基礎がシンプルだと拡張性にも優れていてコードを書いていて楽しいですね。
是非コードを動かしたり自由に変更したりして自分の 1/8192 を作ってみてください。
それでは