テキストアドベンチャーゲームを作る 4
<キーボードから数字を入力>
Scannerを使う準備が整ったので、次は「キーボードで1~3の数字が入力された後の処理」を書く必要がありました。
全部を書くとこのようになりました。
-------------------------------------------------------------------------------------------------------------------
public class Raindia
{
public static void main(String[]args)
{
Raindia game = new Raindia();
game.townGate();
}
public void townGate()
{
System.out.println("長い旅の果てに、あなたは小さな町の門にたどり着いた。");
System.out.println("門の前には衛兵が1人立っている。");
System.out.println("どうしますか?");
System.out.println("1:あたりを見回す");
System.out.println("2:衛兵に話しかける");
System.out.println("3:衛兵を攻撃する");
Scanner input = new Scanner(System.in);
String number = input.next();
if(number.equals("1"))
{
System.out.println("衛兵があなたを見ている。");
}
if(number.equals("2"))
{
System.out.println("衛兵: 旅人か? 見慣れない顔だな。");
}
if(number.equals("3"))
{
System.out.println("衛兵: なんだお前は!");
System.out.println(" ");
System.out.println("…あなたは懸命に戦った。");
System.out.println("しかし空腹のあなたに勝ち目はなかった。");
System.out.println("あなたは衛兵に殺されてしまった。");
System.out.println("GAME OVER");
}
}
}
-------------------------------------------------------------------------------------------------------------------
一気にいろいろ増えましたが…今回新しく追加されたのは「String number = input.next();」以下の文です。
まず追加された1行目「String number = input.next();」ですが、これは
「Scannerが読み取るキーボードからの入力情報を、numberと名づけた器に格納する」
といった意味のようです。
「String(ストリング)」というのは「テキスト情報を格納する器」のようなもので、「number」というのはその器に僕が今回任意につけた名前です。
ここではキーボードで押された「1~3」の数字を格納するためにこうした名前にしましたが、好きな名前をつけられるので、
String sentakushi = input.next(); でも、
String choice = input.next(); でも、なんでも大丈夫です。
いずれにせよこうした器をまず用意し、そこにScannerで読み取った入力情報を格納します。その読み取り指令が「=」の右側の「input.next();」になります。
「input」というのは前回作成したScannerの名前です。基本的に一旦名前をつけて宣言した以降は「Scanner」とは書かず、自分がつけた名前を使うようです。
そして「input.next()」は「Scannerが読み取るキーボードからの入力情報」といった意味となります。
たとえばキーボードで「1」と入力した場合、「number」という器の中に「1」という情報が格納されます。
こうして格納された数字をもとに、どの分岐に進むのかを選択することになります。そしてそれがその後に書かれている
if(number.equals("1"))
if(number.equals("2"))
if(number.equals("3"))という3種類の文につながっています。
if(number.equals("1"))というのは、
「もしnumberに格納された情報が1だった場合」という意味です。
なのでもしキーボードで「1」と入力した場合は、その下にある
「衛兵があなたを見ている。」
というテキストが画面に出力されます。
「2」を入力したした場合は、
「衛兵: 旅人か? 見慣れない顔だな。」
というテキストが画面に出力されます。
「3」を入力した場合は、ゲームオーバーです。
プログラムを実際に実行してみると、まずこのような画面が表示されます。
キーボードで「1」を入力すると、
「2」を入力すると、
「3」を入力すると、
このようになります。
このような形でとりあえず僕はストーリーを分岐させることができました。