じゃんけんゲーム(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~~");
}
}