High&Low ゲーム作成

Java

今回は受講生(A氏)作成のお題をコーディングしてみよう。言語はJavaだ。

ルール

最初に1枚のカードが表示される。(1~13のランダム)
次のカードが1枚目のカードより大きいか小さいかを予想する。
当てられたらwin。

実行例

1枚目のカードは3です。
さて次のカードこのカードより(High or Low) ?>>high
11
You Win!!
1枚目のカードは4です。
さて次のカードこのカードより(High or Low) ?>>High
4
You Lose...

仕様

○1が最小、13が最大と考えて良い
○同じ番号が出た場合は無条件でLose

解答作成

それでは処理を作成していこう。デスクトップにでもHighLow.javaを作成し、以下のように記述する

import java.util.*;
public class HighLow{
	public static void main(String[] args){
	}
}

java.utilパッケージのRandomもScannerも使うので上部でimportをしておくと記述が楽になる。
1枚目のカードをランダムに生成し、それを表示しよう。

import java.util.*;
public class HighLow{
	public static void main(String[] args){
		int card1 = new Random().nextInt(13)+1;
		System.out.println("1枚目のカードは"+card1+"です。");
	}
}

new Random().nextInt(13)とすることで0~12の値がランダムに一つ選ばれる。それに1を足すことで1~13というランダムな値を作成している。

次にユーザーの予想を受け取ろう。以下のように追記する

import java.util.*;
public class HighLow{
	public static void main(String[] args){
		int card1 = new Random().nextInt(13)+1;
		System.out.println("1枚目のカードは"+card1+"です。");
		System.out.print("さて次のカードこのカードより(High or Low) ?>>");
		String ans = new Scanner(System.in).next();
		int card2 = new Random().nextInt(13)+1;
		System.out.println(card2);
	}
}

String ans=new Scanner(System.in).next()
とすることで入力待ち状態で処理が止まり、ユーザーが入力した単語を受け取ることができる。今回ここではそれをansという変数に代入した。
その後に2枚目のカードをランダムに作成し、表示している。

続いて判定の部分を作成し、完成させよう。

import java.util.*;
public class HighLow{
	public static void main(String[] args){
		int card1 = new Random().nextInt(13)+1;
		System.out.println("1枚目のカードは"+card1+"です。");
		System.out.print("さて次のカードこのカードより(High or Low) ?>>");
		String ans = new Scanner(System.in).next();
		int card2 = new Random().nextInt(13)+1;
		System.out.println(card2);
		if(ans.equalsIgnoreCase("High") && card1 < card2 || ans.equalsIgnoreCase("Low") && card1 > card2){
			System.out.println("You Win!!");
		}else{
			System.out.println("You Lose...");
		}
	}
}

if文を使って勝敗判定を行っている。
○文字列.equalsIgnoreCaseを使うと大文字、小文字の区別なく判定できる。今回でいうとHigh,high,HIGHなどがHighと等しいと判定する。
○&& と || を使うと複雑な条件式を作成することができる。
答えがHighかつ2枚目の方が大きい,または 答えがLowかつ2枚目の方が小さい
&&に部分を[かつ],||の部分を[または]と解釈するとわかりやすい。

Java
スポンサーリンク
シェアする
mjpurinをフォローする
ジョイタスネット

コメント

タイトルとURLをコピーしました