今回は、if文と配列を使って、
TRPGのプレイヤーが目星を振るプログラムを書いてみました。
学習サイトは、今回も一番かんたんなJava入門さんです。
プレイヤーが目星を振るときのプログラム
[codebox title=”完成品”]
public class Player{
public static void main(String[] args){
int[] marks = new int[]{50,80,25};
int[] dicevalues = new int[3];
dicevalues[0] = new java.util.Random().nextInt(100);
dicevalues[1] = new java.util.Random().nextInt(100);
dicevalues[2] = new java.util.Random().nextInt(100);
if(dicevalues[0] <= marks[0]){
System.out.println("プレイヤー1の目星は"
+ marks[0] + " : " + dicevalues[0] + "で成功");
}else{
System.out.println("プレイヤー1の目星は"
+ marks[0] + " : " + dicevalues[0] + "で失敗");
}
if(dicevalues[1] <= marks[1]){
System.out.println("プレイヤー2の目星は"
+ marks[1] + " : " + dicevalues[1] + "で成功");
}else{
System.out.println("プレイヤー2の目星は"
+ marks[1] + " : " + dicevalues[1] + "で失敗");
}
if(dicevalues[2] <= marks[2]){
System.out.println("プレイヤー3の目星は"
+ marks[2] + " : " + dicevalues[2] + "で成功");
}else{
System.out.println("プレイヤー3の目星は"
+ marks[2] + " : " + dicevalues[2] + "で失敗");
}
}
}
[/codebox]
前回よりも、だいぶ長めなプログラムになりました。
一つ一つ見ていきましょう。
配列の宣言とランダムな数値の代入
まずは、配列の宣言とその中に値を入れます。
int[] marks = new int[]{50,80,25};
この、左オペランドのint[]がint型の配列を作りますよっていう宣言で、
marksをその配列の変数名に指定しています。
右オペランドでは、marksに入れたい数値を3つ入れてみました。
次に、dicevaluesという配列変数を作ります。
今回はプレイヤー3人を想定しているので、
new int[3];
で箱を3つ作り、
さらに各配列にランダムに数値が入るようにしています。
int[] dicevalues = new int[3];
dicevalues[0] = new java.util.Random().nextInt(100);
dicevalues[1] = new java.util.Random().nextInt(100);
dicevalues[2] = new java.util.Random().nextInt(100);
条件分岐(if文)
最後に、if文を使って結果によって出力させる言葉を分岐させます。
if(dicevalues[0] <= marks[0]){
System.out.println("プレイヤー1の目星は"
+ marks[0] + " : " + dicevalues[0] + "で成功");
}else{
System.out.println("プレイヤー1の目星は"
+ marks[0] + " : " + dicevalues[0] + "で失敗");
}
if文の書き方は、
if ( 条件式 ){
条件式が正しい場合に実行する内容を記述(TURE)
}else{
条件式が間違っている場合に実行する内容を記述(FALSE)
}
なので、
最初に条件式として、dicevalues[0] <= marks[0]
を設定してみました。
この条件は、目星の値よりもダイスの値が小さければTUREのブロックが実行されるようになっています。
要するに、目星が成功したらTURE、失敗したらFALSEのブロックが実行されるif文ってことです。
この条件式を3人分作って今回のプログラムは完成となります。
まとめ
今回は、プレイヤー側が目星を振って判定するというところまでを自動化してみました。
学習した内容は、配列と条件分岐です。
学べば学ぶほど、使えるスキルが増えていくのは楽しいですね(´ε` )
ただ、今回作ったプログラムは、
プレイヤー全員が目星を振るという前提があってのプログラムなので、
学び進めて各自で振れるようなプログラムにできていけたらなと思います。