【C++】じゃんけんゲーム作ってみた!
C言語を勉強し始めて1ヵ月。C++を勉強し始めて1週間たって、
アウトプットしようと考え、簡単なじゃんけんゲームを作ってみました。
指摘箇所沢山あるかと思います、「こうしたら良いよ」など、コメントいただけるととてもうれしいです
全体のソースコード
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
class You{ //自分のクラス
public:
int youte(int x);
};
class Aite{ //相手のクラス
public:
int aitete(int y);
};
int Aite::aitete(int y){
int te; //変数宣言
te = y; //(rand() % 3 + 1)から1~3のどれかの値を代入
cout << "相手が出した手は・・・";
if(te == 1)
cout << "グー" << endl;
else if (te == 2)
cout << "チョキ" << endl;
else if (te == 3)
cout << "パー" << endl;
return te;
}
int main()
{
do { //1だったら、再度じゃんけん開始
srand((unsigned)time(NULL)); //現在の時刻で初期化
int me;
cout << "あなたは何を出す? 1:グー、 2:チョキ、 3:パー >> ";
cin >> me;
cout << "あなたが出した手は・・・";
if(me == 1) //1だったらグーと表示
cout << "グー" << endl;
else if (me == 2) //2だったらチョキと表示
cout << "チョキ" << endl;
else if (me == 3) //3だったパーと表示
cout << "パー" << endl;
int te;
Aite note;
te = note.aitete(rand() % 3 + 1); //1~3ランダムに出す
if(me == te) //あいこの条件
cout << "あいこ" << endl;
else if (me == 1 && te == 2 || //自分の勝ちの条件
me == 2 && te == 3 ||
me == 3 && te == 1)
cout << "あなたの勝ち" << endl;
else //他の条件は自分は負け
cout << "あなたの負け" << endl;
cout << "まだじゃんけんしますか?1:yes, 2:no >> ";
int tugi;
cin >> tugi;
if(tugi == 2){ //もし、2だったらbreakでじゃんけん終了
cout << "終わります";
break;
}
} while (1); //1だったら、再度じゃんけん開始
}
作ってみました…!
※追加 違う数値を入力した場合に、プログラムが終わるようにしてみました!
※今回は練習の為、上記の私が作ったコードを修正してみました…
(上記の分ご指摘等していただいた方々、ありがとうございました!)
上記機能追加
#include <cstdlib>
#include <ctime>
#include <iostream>
using namespace std;
enum { ROCK = 1, SCISSORS = 2, PAPER = 3 };
enum { YES = 1, NO = 2 };
class Aite { // 相手のクラス
public:
int aitete(int y);
};
int Aite::aitete(int y) {
int te; // 変数宣言
te = y; //(rand() % 3 + 1)から1~3のどれかの値を代入
cout << "相手が出した手は・・・";
if (te == ROCK)
cout << "グー" << endl;
else if (te == SCISSORS)
cout << "チョキ" << endl;
else if (te == PAPER)
cout << "パー" << endl;
return te;
}
int main() {
do { // 1だったら、再度じゃんけん開始
srand((unsigned)time(NULL)); // 現在の時刻で初期化
int me;
cout << "あなたは何を出す? 1:グー、 2:チョキ、 3:パー >> ";
cin >> me;
cout << "あなたが出した手は・・・";
if (me == ROCK) { // 1だったらグーと表示
cout << "グー" << endl;
} else if (me == SCISSORS) { // 2だったらチョキと表示
cout << "チョキ" << endl;
} else if (me == PAPER) { // 3だったパーと表示
cout << "パー" << endl;
} else {
cout << "出してる手が範囲外です。" << endl;
cout << "1~3を入力して下さい。" << endl;
break;
}
int te;
Aite note;
te = note.aitete(rand() % 3 + 1); // 1~3ランダムに出す
if (me == te) // あいこの条件
cout << "あいこ" << endl;
else if (me == ROCK && te == SCISSORS || // 自分の勝ちの条件
me == SCISSORS && te == PAPER || me == PAPER && te == ROCK)
cout << "あなたの勝ち" << endl;
else // 他の条件は自分は負け
cout << "あなたの負け" << endl;
cout << "まだじゃんけんしますか?1:yes, 2:no >> ";
int tugi;
cin >> tugi;
if (tugi == NO) { // もし、2だったらbreakでじゃんけん終了
cout << "終わります";
break;
} else if (tugi != YES) {
cout << "数値が間違えています。" << endl;
cout << "1か2を入力して下さい。" << endl;
break;
}
} while (YES); // 1だったら、再度じゃんけん開始
}
終わらず、じゃんけん続けたいのですが、やり方が分からず今悩んでいるところですーー…