1
/
5

じゃんけんゲーム(java)

じゃん拳を極めたじゃんけんマスターを目指すプログラムを作りました。

自分史上最長プログラムです。


オープニング画面


テンキーを利用してじゃんけんをする。
1面はじゃんけん5番勝負に勝たなければならない
2面はじゃんけん5番勝負に負けなければならない
3面はじゃんけん5番勝負に都度勝ち負けの指示が出るので、指示の通りに勝ち負けをコントロールする
ゲーム画面


全てに勝ち進むことでじゃん拳マスターとして認められる
エンディング画面



import java.io.*;

class Kachimake
{
//インスタンス変数置き場
int kikai; //機械:機械側のじゃんけんの「手」を格納する
int ningen; //人間:遊び手のじゃんけんの「手」を格納する
int kekka; //結果:ゲームの結果を格納する

//じゃんけんで出す手を決める処理
public int nanidasuno(){

//ランダム変数を使って0~2の値を変数kikaiに代入する
kikai=(int)(Math.random()*3);

//変数kikaiをそれぞれ、グー/チョキ/パーに変換し、表示する
if(kikai==0)
System.out.println("グー");

else if(kikai==1)
System.out.println("チョキ");

else
System.out.println("パー");


//数字とじゃんけんの「手」の対応表
System.out.println("0:グー 1:チョキ 2:パー");

//機械側が出した手を返す
return kikai;

}

//じゃんけんに勝たなきゃいけないときの判断処理
public int katsu(int master,int challenger){

//引数を各変数に代入
kikai=master;
ningen=challenger;

//あいこの場合
if(kikai==ningen){
System.out.println("あいこです。\n");
kekka=0;
}
//負けた場合
else if(kikai==0&&ningen==1||kikai==1&&ningen==2||kikai==2&&ningen==0){
System.out.println("負けです。\n");
kekka=0;
}
//勝った場合
else if(kikai==0&&ningen==2||kikai==1&&ningen==0||kikai==2&&ningen==1){
System.out.println("勝ちました。\n");
kekka=1;
}

//指示通りにできたかを返す
return kekka;
}

//じゃんけんに負けなきゃいけないときの判断処理
public int make(int master,int challenger){

//引数を各変数に代入
kikai=master;
ningen=challenger;

//あいこの場合
if(kikai==ningen){
System.out.println("あいこです。\n");
kekka=0;
}
//負けた場合
else if(kikai==0&&ningen==1||kikai==1&&ningen==2||kikai==2&&ningen==0){
System.out.println("負けです。\n");
kekka=1;
}
//勝った場合
else if(kikai==0&&ningen==2||kikai==1&&ningen==0||kikai==2&&ningen==1){
System.out.println("勝ちました。\n");
kekka=0;
}

//指示通りにできたかを返す
return kekka;
}
}



class JankenDojo
{
public static void main(String[] args)throws IOException
{

//変数置き場
int shihan; //師範:機械側のじゃんけんの「手」を格納する
int chousensha; //挑戦者:遊び手のじゃんけんの「手」を格納する
int docchi; //どっち:じゃんけんに勝つか負けるかを格納する
int shouhai; //勝敗:ゲームの結果を格納する

//遊び手の入力内容を一時保存する
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str;

//class Kachimakeを起動
Kachimake km=new Kachimake();

//ゲームイントロ
System.out.println("ここは\n\n『じ\n ゃ\n ん\n 拳\n 道\n 場』\n");
System.out.println("勝ちも負けもマスターしたじゃん拳マスターに君はなれるか!?");

//インターバル
try{
Thread.sleep(3000);
}
catch(InterruptedException e){}

//ゲームスタート
//1面【じゃんけんに勝つ】
System.out.println(); //視認性向上を目的とした1行空け
System.out.println("まずは勝ちを極めるべし");
System.out.println("じゃんけんに勝つのだ。");

//じゃんけん5回勝負(じゃんけんに勝つ)
for(int i=1;i<=5;i++){

//機械側のじゃんけんの「手」をnanidasunoメソッドに決めてもらう
shihan=km.nanidasuno();

//遊び手の入力した値を変数chousenshaに入力
str=br.readLine();
chousensha=Integer.parseInt(str);

//じゃんけんの勝敗をkatsuメソッドに判定してもらい、結果を変数shouhaiに格納する
shouhai=km.katsu(shihan,chousensha);

//変数houhai=0の場合(失敗した場合)のゲームオーバーの表示
if(shouhai==0){
System.out.println("まだまだだな。");
System.exit(0);
}

}

//5試合連取した場合のコメント
System.out.println("なかなかやるな。勝ちは体得しているようだ。");

//インターバル
try{
Thread.sleep(3000);
}
catch(InterruptedException e){}

//2面【じゃんけんに負ける】
System.out.println(); //視認性向上を目的とした1行空け
System.out.println("次は負けを極めてもらおう。");

//じゃんけん5回勝負(じゃんけんに負ける)
for(int i=1;i<=5;i++){

//機械側のじゃんけんの「手」をnanidasunoメソッドに決めてもらう
shihan=km.nanidasuno();

//遊び手の入力した値を変数chousenshaに入力
str=br.readLine();
chousensha=Integer.parseInt(str);

//じゃんけんの勝敗をmakeメソッドに判定してもらい、結果を変数shouhaiに入れる
shouhai=km.make(shihan,chousensha);

//変数houhai=0の場合(失敗した場合)のゲームオーバーの表示
if(shouhai==0){
System.out.println("負けは負けではない。");
System.out.println("すべてを制御できてこそのじゃん拳マスターだ。");
System.exit(0);
}

}

//5試合連取した場合のコメント
System.out.println("負けまで体得しているだと!?");
System.out.println("まさか、本当にじゃん拳マスターに……");

//インターバル
try{
Thread.sleep(3000);
}
catch(InterruptedException e){}

//3面【じゃんけんに勝ったり負けたりする】
System.out.println(); //視認性向上を目的とした1行空け
System.out.println("勝ちも負けもマスターしたじゃん拳マスターに君はなれるか!?");

//じゃんけん5回勝負(じゃんけんに勝ったり負けたりする)
for(int i=1;i<=5;i++){

//ランダム変数を使って0~1の値を変数kikaiに代入する
docchi=(int)(Math.random()*2);

//それぞれ、勝ち/負けに変換し、それぞれを表示する
if(docchi==0)
System.out.println("\nじゃんけんに勝ってください");

else
System.out.println("\nじゃんけんに負けてください");


//機械側のじゃんけんの「手」をnanidasunoメソッドに決めてもらう
shihan=km.nanidasuno();

//遊び手の入力した値を変数chousenshaに入力
str=br.readLine();
chousensha=Integer.parseInt(str);

//じゃんけんの勝敗をkatsu/makeメソッドに判定してもらい、
//結果を変数shouhaiに入れる
if(docchi==0)
shouhai=km.katsu(shihan,chousensha);

else
shouhai=km.make(shihan,chousensha);


//変数houhai=0の場合(失敗した場合)のゲームオーバーの表示
if(shouhai==0){
System.out.println("頑張ったが、まだ未熟。");
System.out.println("すべてを制御できてこそのじゃん拳マスターだ。");
System.exit(0);
}
}

//エンディング
System.out.println("君こそがじゃん拳マスターだ。");
System.out.println(" お\n め\n で\n と\n う");
System.out.println("~~fin~~");

}
}