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~~"); } }