2014年01月13日
JavaEEの前に復習をしてみる その5 ランダムとif文を覚えてプログラマー気取り
そして、さっそくちょっとぶっ飛びますので、みなぶっとびカードを1枚使いますw(桃鉄)
ランダム関数を使うと、それとないことが色々できるようになります。
たとえば、乱数を利用しておみくじ作り、乱数を利用してスゴロク。
今までの変数の代入と、乱数さえ利用すれば、Javaっぽさは、まだまだ使えませんが
プログラムとしては、それなりのものになると思います。
以降、インデントの補正はしません。
ちょっと見づらいかもしれませんが、脳内でインデント入れてくださいw
実際は入れています。
そしてEclipseを使ってTabキーを押せば、良い感じのインデントを勝手に考えて入れてくれます。
細かい説明はしませんが(ちょっと本気で忘れてる)、
ランダム関数を使うには、new java.util.Random().nextInt(値)を使います。
下記では、hitPointという変数に0~50の値がランダムで入ります。
package test;
/* Rensyu 練習用クラス
開発者 shade 作成日 1/1 */
public class Rensyu {
public static void main (String [] args){
int hitPoint = new java.util.Random().nextInt(51);
String name = "Shade" ;
System. out.println("名前:" +name);
System. out.println("HP:" +hitPoint);
}
}
上記の結果は、
名前:Shade
HP:46
となり、HPは、0になることもあれば、50になることもあります。
これにif文を加えてみます。
if文は条件分岐に使います。
上記の例を応用し、HPが10以下になった時は、名前の前に瀕死とつけます。
statusというステータス用の変数を用意します。今は中に瀕死の文字列はありません。
String status= "" ;
if文を用意します。
もし、hitPointが10以下ならば、statusに瀕死 という文字列を代入。
そうでなければ、何も処理はされません。
if (hitPoint <= 10){
status = "瀕死 " ;
}
そして、nameの前にstatusを追記します。
System. out .println("名前:" +status+name);
プログラムは、下記。
package test;
/* Rensyu 練習用クラス
開発者 shade 作成日 1/1 */
public class Rensyu {
public static void main (String [] args){
int hitPoint = new java.util.Random().nextInt(51);
String name = "Shade" ;
String status= "";
if(hitPoint <= 10){
status = "瀕死 ";
}
System. out.println("名前:" +status+name);
System. out.println("HP:" +hitPoint);
}
}
結果は、hitPointが10以下であれば、
名前:瀕死 Shade
HP:10
といった結果が返ってきます。
11以上であれば、
名前:Shade
HP:11
このように表示がされます。
ランダムとifを使うだけで、プログラムに動きが見えてきます。
ちょっとプログラムをかける気になるから不思議ですね。
ランダム関数を使うと、それとないことが色々できるようになります。
たとえば、乱数を利用しておみくじ作り、乱数を利用してスゴロク。
今までの変数の代入と、乱数さえ利用すれば、Javaっぽさは、まだまだ使えませんが
プログラムとしては、それなりのものになると思います。
以降、インデントの補正はしません。
ちょっと見づらいかもしれませんが、脳内でインデント入れてくださいw
実際は入れています。
そしてEclipseを使ってTabキーを押せば、良い感じのインデントを勝手に考えて入れてくれます。
細かい説明はしませんが(ちょっと本気で忘れてる)、
ランダム関数を使うには、new java.util.Random().nextInt(値)を使います。
下記では、hitPointという変数に0~50の値がランダムで入ります。
package test;
/* Rensyu 練習用クラス
開発者 shade 作成日 1/1 */
public class Rensyu {
public static void main (String [] args){
int hitPoint = new java.util.Random().nextInt(51);
String name = "Shade" ;
System. out.println("名前:" +name);
System. out.println("HP:" +hitPoint);
}
}
上記の結果は、
名前:Shade
HP:46
となり、HPは、0になることもあれば、50になることもあります。
これにif文を加えてみます。
if文は条件分岐に使います。
上記の例を応用し、HPが10以下になった時は、名前の前に瀕死とつけます。
statusというステータス用の変数を用意します。今は中に瀕死の文字列はありません。
String status= "" ;
if文を用意します。
もし、hitPointが10以下ならば、statusに瀕死 という文字列を代入。
そうでなければ、何も処理はされません。
if (hitPoint <= 10){
status = "瀕死 " ;
}
そして、nameの前にstatusを追記します。
System. out .println("名前:" +status+name);
プログラムは、下記。
package test;
/* Rensyu 練習用クラス
開発者 shade 作成日 1/1 */
public class Rensyu {
public static void main (String [] args){
int hitPoint = new java.util.Random().nextInt(51);
String name = "Shade" ;
String status= "";
if(hitPoint <= 10){
status = "瀕死 ";
}
System. out.println("名前:" +status+name);
System. out.println("HP:" +hitPoint);
}
}
結果は、hitPointが10以下であれば、
名前:瀕死 Shade
HP:10
といった結果が返ってきます。
11以上であれば、
名前:Shade
HP:11
このように表示がされます。
ランダムとifを使うだけで、プログラムに動きが見えてきます。
ちょっとプログラムをかける気になるから不思議ですね。
【Javaの最新記事】
この記事へのコメント
そうです。プロのグラマーです。
しかし、私は、アマチュアなスレンダーがタイプです(?)
なるほど。Wizardryは、私はやったことはないですが、
キャラメイクにボーナス値をふれるゲームはたくさんありますね。
わかります。私もよくやりました。
たいてい、大きい数字は出ないから、2連射とかしてしまって、
そういう時に限って、貴重な数値が出て、
「あ!あ、あぁ・・・」というような声を出しちゃうんですよねw
もう、私も若者じゃないですので、昔ばなしばかりですw
最新記事の欄で
「グラマー気取り 」となっ!?
っと釣られてきた Habitat ですっ
記事はランダムとif 文でしたが・・・あとゲーム
ランダムは記事でおっしゃるとおり扱い一つで不確定要素をプログラムに仕込むことができるので、
とても処理の充実が図れると思います
たとえば、今回のはゲームのHPの話だったんで・・・
コアな話になるかもしれませんが、その昔 Wizardry というゲームがあって(初代ね)
自分でパーティーを組むキャラクターを作るんですよね
で、各職業ベースとなる種族を選んだ時点で各ステータス値のベースが取り決められているんですが、
それプラス、ランダムでボーナスポイントなるものが用意されます
このポイントを自由にキャラクターのステータスに割り振ることができるので、
このボーナスポイントが高ければ最初からすごいスペックのキャラクターが作れたんです
ですが、そんなに簡単なものではなく
たいていは8〜12,13ぐらいのものです
がっ! ごくごくたまーーに 18,19なものがでることが
あるので、私はこれを得るために延々と作り直しをして
なかなか始められなかった記憶がありますww
で、盛大に話がそれましたが、何が言いたいかと言うと、
ランダムで出す数値に偏り(重さ)を持たせることができれば、
より、処理の充実化を図ることができるかもねっ>これだけ
うわぁ 昔のゲームの話したら長くなっちゃった・・
昔話する時点でおっさんなのかなぁ・・・