今回は受講生(S氏)作成のお題をコーディングしてみよう。言語はJavaだ。
ルール
あっち向いてホイの掛け声と同時に上下左右いずれかの方向を向く
PCと一致しなければセーフ、一致してしまったらアウト。
ターンの交代は行わず何回連続ですり抜けられるかを競うゲーム
実行例
あっち向いてホイをしましょう
あっち向いてホイ!(上:0・下:1・右:2・左:3)>>1
pc:2
セーフ!1ポイント
あっち向いてホイ!(上:0・下:1・右:2・左:3)>>2
pc:3
セーフ!2ポイント
あっち向いてホイ!(上:0・下:1・右:2・左:3)>>3
pc:0
セーフ!3ポイント
あっち向いてホイ!(上:0・下:1・右:2・左:3)>>3
pc:0
セーフ!4ポイント
あっち向いてホイ!(上:0・下:1・右:2・左:3)>>3
pc:1
セーフ!5ポイント
あっち向いてホイ!(上:0・下:1・右:2・左:3)>>0
pc:2
セーフ!6ポイント
あっち向いてホイ!(上:0・下:1・右:2・左:3)>>0
pc:0
アウト!
6ポイントでした
仕様
○PCは0~3の値を毎回ランダムに抽選する
○入力とPCが一致しなかった場合1ポイント獲得
○一致してしまったら得点を表示して終了
○正常系のみを考慮すればよい。(ユーザーは必ず0-3を入力するものとする)
Let’s challenge!
コーディングしてみよう。
解答例
import java.util.*;
public class Hoi{
public static void main(String[] args){
System.out.println("あっち向いてホイをしましょう");
int score=0;
while(true){
System.out.print("あっち向いてホイ!(上:0・下:1・右:2・左:3)>>");
int you = new Scanner(System.in).nextInt();
int pc = new Random().nextInt(4);
System.out.println("pc:"+pc);
if(pc == you){
System.out.println("アウト!");
break;
}
score++;
System.out.println("セーフ!"+score+"ポイント");
}
System.out.println(score+"ポイントでした");
}
}
ポイント解説
while文の中でのif文、結果はセーフかアウトの2種類なのでif ~ elseで組むことをまず考えるが、breakを使う場合はこのelseが不要になることも多いのでこのパターンも知っておこう。
また、今回登場する変数はscoreとyouとpcだが変数宣言している場所に着目してもらいたい。変数のスコープ(有効範囲)はなるべく狭くすることが原則なので、youやpcはwhileブロックの中で宣言するほうがbetterだ。(youとpcが使われているのはwhileブロックの中だけ)
コメント