[お題にTRY] じゃんけんゲーム #Java

こんにちわ。
自宅で有酸素運動できるように買った「フットステップ」が、超お気に入りの、下駄です。
でも、1ヶ月たたないのに、足を乗せる部品のヒンジ部分がポッキリ折れてしまいました。
1年補償と書いてあるので、返品しましたが、品質保証って大事だと考えさせられましたね。
本日のIT謎掛け
「コンパイル言語」と、かけまして、
「ポケットをたたくビスケット」と、ときます。
そのココロは・・・
バイナリ(Binaryと倍なり)
javaでじゃんけんゲーム
最初に、javaのコンパイル環境を作っていない人は、前回の「九九表示」を参考に構築してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
import java.util.Scanner; import java.util.Random; import java.util.InputMismatchException; public class janken { public static void main(String[] args){ String spr_arr[] = {"グー" , "チョキ" , "パー"}; System.out.printf("じゃんけん : [0:グー 1:チョキ 2:パー] : "); Scanner scan = new Scanner(System.in); int my_spr = scan.nextInt(); System.out.printf("あなたの出した手は、%sです。\n" , spr_arr[my_spr]); int com_spr = get_com_spr(); System.out.printf("コンピュータの出した手は、%sです。\n" , spr_arr[com_spr]); String result = spr_match(my_spr , com_spr); String res_str = result_view(result); System.out.printf("%s\n" , res_str); } public static int get_com_spr(){ Random random = new Random(); return random.nextInt(3); } public static String spr_match(int my_spr , int com_spr){ if(my_spr == com_spr){ return "draw"; } else if(my_spr == 0 && com_spr == 1){ return "win"; } else if(my_spr == 1 && com_spr == 2){ return "win"; } else if(my_spr == 2 && com_spr == 0){ return "win"; } else { return "lose"; } } public static String result_view(String res){ if(res == "win"){ return "あなたの勝ちです。"; } else if(res == "lose"){ return "あなたの負けです。"; } else{ return "引き分けです。"; } } } |
実行と解説
コンパイルして実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# コンパイル $ javac janken.java # 実行 $ java janken じゃんけん : [0:グー 1:チョキ 2:パー] : 1 あなたの出した手は、チョキです。 コンピュータの出した手は、パーです。 あなたの勝ちです。 $ java janken じゃんけん : [0:グー 1:チョキ 2:パー] : 1 あなたの出した手は、チョキです。 コンピュータの出した手は、グーです。 あなたの負けです。 $ java janken じゃんけん : [0:グー 1:チョキ 2:パー] : 1 あなたの出した手は、チョキです。 コンピュータの出した手は、チョキです。 引き分けです。 |
無事にコンピュータ側の3パターンを確認することができました。
ただ、分岐関数を作っている時に以下のようなエラーが出たので、何やら文字列比較の関数でエラーが出ているようでした。
1 2 3 4 5 6 7 8 |
$ java janken じゃんけん : [0:グー 1:チョキ 2:パー] : 1 Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:864) at java.util.Scanner.next(Scanner.java:1485) at java.util.Scanner.nextInt(Scanner.java:2117) at java.util.Scanner.nextInt(Scanner.java:2076) at janken.main(janken.java:11) |
import命令で書きを追加することで回避することができました。
1 |
import java.util.InputMismatchException; |
でも、これって、文字入力の箇所のエラーのように見えますよね?
なんでこのエラーなんだろう?
まあ、わからないけど、エラーに対しての解消で今のところはOKにしておきましょう。
ベストエフォート!