単純戦闘ダイスロール
ttps://www.youtube.com/watch?v=weCHe_J5eAc
$array= array(); //最大HPの取得 $array['ply_max_hp'] = $ply['stats']['max_hp']; $array['emy_max_hp'] = $emy['stats']['max_hp']; for($i=1; $i <=10; $i++){ // 先制判定 $array['turn'.$i]['ini'] = ini_role($ply,$emy); // プレイヤーの攻撃値 $array['turn'.$i]['ply_atk'] = dice_role($ply['stats']['atk_dice'],$ply['stats']['atk_range'],$ply['stats']['atk_bonus']); // プレイヤーの防御値 $array['turn'.$i]['ply_def'] = dice_role($ply['stats']['def_dice'],$ply['stats']['def_range'],$ply['stats']['def_bonus']); // エネミーの攻撃値 $array['turn'.$i]['emy_atk'] = dice_role($emy['stats']['atk_dice'],$emy['stats']['atk_range'],$emy['stats']['atk_bonus']); // エネミーの防御値 $array['turn'.$i]['emy_def'] = dice_role($emy['stats']['def_dice'],$emy['stats']['def_range'],$emy['stats']['def_bonus']); //1ターン目以外は以前のターンの現在HPを取得 if($i==1){ $ply_now_hp = $array['ply_max_hp']; $emy_now_hp = $array['emy_max_hp']; }else{ $ply_now_hp = $array['turn'.($i-1)]['ply_now_hp']; $emy_now_hp = $array['turn'.($i-1)]['emy_now_hp']; } // ダメージ計算 //プレイヤーのダメージがエネミーの防御値を超えているかどうか if($array['turn'.$i]['ply_atk']['total'] > $array['turn'.$i]['emy_def']['total']){ //超えていた場合ダメージ判定 $emy_end_hp = $emy_now_hp - ($array['turn'.$i]['ply_atk']['total'] - $array['turn'.$i]['emy_def']['total']); $array['turn'.$i]['ply_atk_hit'] = 1; //hit }else{ //超えていない場合 $emy_end_hp = $emy_now_hp; $array['turn'.$i]['ply_atk_hit'] = 0; //miss } // エネミーターン if($array['turn'.$i]['emy_atk']['total'] > $array['turn'.$i]['ply_def']['total']){ //超えていた場合ダメージ判定 $ply_end_hp = $ply_now_hp - ($array['turn'.$i]['emy_atk']['total'] - $array['turn'.$i]['ply_def']['total']); $array['turn'.$i]['emy_atk_hit'] = 1; //hit }else{ //超えていない場合 $ply_end_hp = $ply_now_hp; $array['turn'.$i]['emy_atk_hit'] = 0; //miss } // 現在HP $array['turn'.$i]['ply_now_hp'] = $ply_end_hp; $array['turn'.$i]['emy_now_hp'] = $emy_end_hp; //戦闘終了判定 if($emy_end_hp <= 0){ $array['victory_flag'] = 1; break; }elseif($ply_end_hp<=0){ $array['victory_flag'] = 0; break; } } print_r($array);