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