自己満の備忘録ですのでご容赦ください。
JavaでRPGゲームを作ってみる
Javaの勉強をしていたらRPGゲームの記事を見つけたので、自分流にアレンジして作ってみたいと思います。
構想
敵が現れる→ジャンケンする→勝ち:ダメージ大与える、あいこ:ダメージ小与える、負け:ダメージ食らう→倒す
という流れです。
まあ行き詰まったら変えていくかもしれません。笑
実践
ジャンケンゲームの作成
とりあえず最初にジャンケンゲームを作ってみます。
import java.util.Scanner;
class Janken {
public static void main(String[] args) {
System.out.println("最初はグー!じゃんけんぽん!");
String[] cpuhands = {"グー", "チョキ", "パー"};
System.out.println("出したい番号を選んでください\n[0]グー\n[1]チョキ\n[2]パー");
Integer number = new Scanner(System.in).nextInt();
System.out.println("あなたの出した手: " +cpuhands[number]);
}
}
最初はグー!じゃんけんぽん!
出したい番号を選んでください
[0]グー
[1]チョキ
[2]パー
1
あなたの出した手: チョキ
まずは自分の出したい手を選ぶという動作ができるようになりました。
ランダムについて学ぶ
class Janken2 {
public static void main(String[] args) {
double d = Math.random();
System.out.println(d);
}
}
0.1831838611927178
0.762839659494738
Math.random();で0.0〜1.0未満の乱数を生成できるとのことです。
また、小数点を扱う際はdouble型を使います。
0〜2の整数を生成できるようにする
class Janken3 {
public static void main(String[] args) {
double d = Math.random();
System.out.println(d);
int i = (int)(Math.random() * 3);
System.out.println(i);
}
}
0.3986020715932931
0
0.9918706705068715
2
0.4195932748905167
1
Math.random()の値に3をかけ、int型変換することにより、0〜2の整数が生成できました。ちなみにこの変換をキャストというとのことです。
ランダムにグー・チョキ・パーを出せるようにする
class Janken4 {
public static void main(String[] args) {
System.out.println("ジャンケンおじさんが現れた!!");
System.out.println("(^_^)v");
System.out.println("最初はグー!じゃんけんぽん!");
String[] cpuhands = {"グー", "チョキ", "パー"};
double d = Math.random();
int i = (int)(Math.random() * 3);
System.out.println("おじさんは" + cpuhands[i] + "を出してきた。");
}
}
ジャンケンおじさんが現れた!!
(^_^)v
最初はグー!じゃんけんぽん!
おじさんはグーを出してきた。
ジャンケンおじさんが現れた!!
(^_^)v
最初はグー!じゃんけんぽん!
おじさんはパーを出してきた。
ランダムでグー・チョキ・パーが出るようになりました。
勝敗がつくようにする
import java.util.Scanner;
class Janken5 {
public static void main(String[] args) {
System.out.println("ジャンケンおじさんが現れた!!");
System.out.println("(^_^)v");
System.out.println("最初はグー!じゃんけんぽん!");
String[] cpuhands = {"グー", "チョキ", "パー"};
System.out.println("出したい番号を選んでください。[0]グー、[1]チョキ、[2]パー");
Integer number = new Scanner(System.in).nextInt();
System.out.println("あなたの出した手: " +cpuhands[number]);
double d = Math.random();
int i = (int)(Math.random() * 3);
System.out.println("おじさんは[" + cpuhands[i] + "]を出してきた。");
switch (number) {
case 0:
if (i == 0) {
System.out.println("[あいこ]です");
} else if (i == 1) {
System.out.println("[勝ち]ました");
} else if (i == 2) {
System.out.println("[負け]ました");
}
break;
case 1:
if (i == 0) {
System.out.println("[負け]ました");
} else if (i == 1) {
System.out.println("[あいこ]です");
} else if (i == 2) {
System.out.println("[勝ち]ました");
}
break;
case 2:
if (i == 0) {
System.out.println("[勝ち]ました");
} else if (i == 1) {
System.out.println("[負け]ました");
} else if (i == 2) {
System.out.println("[あいこ]です");
}
break;
}
}
}
ジャンケンおじさんが現れた!!
(^_^)v
最初はグー!じゃんけんぽん!
出したい番号を選んでください。[0]グー、[1]チョキ、[2]パー
2
あなたの出した手: パー
おじさんは[チョキ]を出してきた。
[負け]ました
ジャンケンおじさんが現れた!!
(^_^)v
最初はグー!じゃんけんぽん!
出したい番号を選んでください。[0]グー、[1]チョキ、[2]パー
0
あなたの出した手: グー
おじさんは[チョキ]を出してきた。
[勝ち]ました
勝敗がつきましたね。
今回の記事はこの辺で終わらせて、また違う記事で続きを書きたいと思います。
参考記事
http://pbsb.hatenablog.com/entry/2018/10/09/151551
https://note.com/ganga_1/n/na2959e604fed
https://qiita.com/dk_masu/items/d7bb7a81cbc6e16fbb49
為になりました。ありがとうございます。