自宅で有酸素運動できるように買った「フットステップ」が、超お気に入りの、下駄です。
でも、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にしておきましょう。
ベストエフォート!
0 件のコメント:
コメントを投稿