アットウィキロゴ

ランダムボーナス

ボーナスポイントをランダムで決定する

  • サンプルのJARファイルはページの一番下(スポンサーリンクよりも↓)に張ってあるので自由にダウンロードしてくださぃ♪
前回のバージョンで全ての職業を表示することができましたか??忍者の↓にもう1キャラ入れておきましたっ!
さて、今回のバージョンではボーナスポイントをランダムに決定する処理を追加します。
まずは追加部分を掲載します。Charaクラスのソースになります。

//キャラの名前の入力
public void getName(){
	inputName=JOptionPane.showInputDialog(null,"名前を5文字以内で入力してください");
	//取り消しが選択された場合
	if(inputName==null){
		flag_isName=false;
		//名前の入力がない場合や最初がスペースで始まる場合
	}else if(inputName.length()==RESET || inputName.startsWith(" ") 
		|| inputName.startsWith(" ")){
		flag_isName=false;
	}else{
		//名前が5文字を超えた場合
		if(inputName.length()>FIF){
			this.inputName=inputName.substring(RESET,FIF);
		}else{
			this.inputName=inputName;
		}
		
		//ボーナスのリセット
		Param.set(SEV,defaultParam.get(SEV));
		//リストのボーナスをString型へ
		strBonus=Param.get(SEV).toString();
		//String型からint型へ
		bonusPoint=Integer.parseInt(strBonus);
		//ボーナスのランダム生成
		if(rand.nextDouble()<1.00){
			this.bonusPoint+=Math.random()*5;
		}
		//ボーナスのランダム生成
		if(rand.nextDouble()<0.15){
			this.bonusPoint+=Math.random()*20;
		}
		
		//ボーナスをリストに格納
		setBonus();
		flag_isName=true;
	}
}

気付いた人もいるかも知れませんが、名前の入力処理は前回Menuクラス側で行なってたんです。
それを今回Charaクラス側で処理するように戻しました。
理由としては、どのタイミングでボーナスにランダム付加を持たせるか?というとこですね。
ソースを見て分かる人もいるかと思いますが、CharaクラスへのアクセスはMainPanelクラスで
左or右キーが押された時か、名前入力の時しかなぃのです。
左or右キーが押された時の処理にボーナスのランダム付加を持たせると、押される度に
ランダム付加されてしまうので、今回は名前入力時にランダム付加を持たせました。
Menuクラスに名前入力処理があると、CharaクラスはMenuクラスから値を取得しなければいけないため
手間がかかりますし、分かりにくいですからね。
では処理の内容に移ります。
まずは名前の入力を行ないます。このときに名前が正常に入力された場合についでにボーナスを
ランダムで付加しています。
random()の値は0.1なので、0~5の値が確実にランダム付加されています。
それに加えて低確率で0~20のボーナスが付加されるようになっています。
注意点として、ランダムでボーナスを付加する前に現在のボーナスポイントをリセットしないと
ポイントが加算ばっかりされてすごい値になってしまいます。
それに加えて、今回のボーナス管理はArrayListで管理しているため、変更したポイントは
再びArrayListの該当番号と置き換えなければなりません。
ちょっと説明が足りないかも知れないので、質問あれば気軽に掲示板までどうぞっ!
(補足として今回はステータスのリセットまでは行なってないので、ステータスを振った場合は
その値が保持されています。ボーナスはリセットされるので初期値に戻りランダム付加されます。)

最終更新:2008年07月09日 15:17
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。
添付ファイル