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

2020年6月16日

Java テクノロジー プログラミング 特集

自宅で有酸素運動できるように買った「フットステップ」が、超お気に入りの、下駄です。 でも、1ヶ月たたないのに、足を乗せる部品のヒンジ部分がポッキリ折れてしまいました。 1年補償と書いてあるので、返品しましたが、品質保証って大事だと考えさせられましたね。

本日のIT謎掛け

「コンパイル言語」と、かけまして・・・ 「ポケットをたたくビスケット」と、ときます。 そのココロは・・・ バイナリ(Binaryと倍なり)

javaでじゃんけんゲーム

最初に、javaのコンパイル環境を作っていない人は、前回の「九九表示」を参考に構築してください。 [お題にTRY] 九九の表示 #Java 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 "引き分けです。"; } }

実行と解説

コンパイルして実行します。 # コンパイル $ javac janken.java # 実行 $ java janken じゃんけん : [0:グー 1:チョキ 2:パー] : 1 あなたの出した手は、チョキです。 コンピュータの出した手は、パーです。 あなたの勝ちです。 $ java janken じゃんけん : [0:グー 1:チョキ 2:パー] : 1 あなたの出した手は、チョキです。 コンピュータの出した手は、グーです。 あなたの負けです。 $ java janken じゃんけん : [0:グー 1:チョキ 2:パー] : 1 あなたの出した手は、チョキです。 コンピュータの出した手は、チョキです。 引き分けです。 無事にコンピュータ側の3パターンを確認することができました。 ただ、分岐関数を作っている時に以下のようなエラーが出たので、何やら文字列比較の関数でエラーが出ているようでした。 $ 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命令で書きを追加することで回避することができました。 import java.util.InputMismatchException; でも、これって、文字入力の箇所のエラーのように見えますよね? なんでこのエラーなんだろう? まあ、わからないけど、エラーに対しての解消で今のところはOKにしておきましょう。 ベストエフォート!

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。