がんばった。

ttp://yaruonichijou.blog.fc2.com/blog-entry-5092.html

	'skill' => array(
		'skill_name' => 'dice_attack',
		'skill_text' => '文章',
		'skill_type' => 'attack_add_bonus', //攻撃ボーナス値に加算
		'skill_rate' => '20', //20%で発動
		'skill_damege_range' => '100', //1d100を加算
	),

	'skill' => array(
		'skill_name' => 'dice_attack',
		'skill_text' => '文章',
		'skill_type' => 'attack_multiply_total', // $array['turn'.$i]['ply_atk']['total']に乗算する
		'skill_rate' => '20', //20%で発動
		'skill_damege_range' => '150', // %
	),

	'skill' => array(
		'skill_name' => 'dice_attack',
		'skill_text' => '文章',
		'skill_type' => 'attack_add_dice', //ダイスを追加
		'skill_rate' => '20', //20%で発動
		'skill_damege_range' => '5', //ダイスを5追加
	),
$ply = array(
	'AI' => array(
		'action' => 'attack',
	),
	'skill' => array(
		'skill_name' => 'dice_attack',
		'skill_text' => '文章',
		'skill_type' => 'attack_add_bonus', //攻撃ボーナス値に加算
		'skill_rate' => '20', //20%で発動
		'skill_damege_range' => '100', //1d100を加算
	),
	'initiative' => array(
		'ini_dice' => 2,
		'ini_range' => 6,
		'ini_bonus' => 4,
	),
	'unit_type' => 'fire',
	'stats' => array(
		'atk_dice' => 2,
		'atk_range' => 6,
		'atk_bonus' => 4,
		'def_dice' => 1,
		'def_range' => 6,
		'def_bonus' => 4,
		'rec_dice' => 1,
		'rec_range' => 6,
		'rec_bonus' => 4,
		'max_hp' => 40,
	),
	'unit_name' => 'くまま',
);
$emy = array(
	'AI' => array(
		'action' => 'attack',
	),
	'skill' => array(
		'skill_name' => 'dice_attack',
		'skill_text' => '文章',
		'skill_type' => 'attack_multiply_total', // ['total']に乗算する
		'skill_rate' => '20', //20%で発動
		'skill_damege_range' => '150', // %
	),
	'initiative' => array(
		'ini_dice' => 2,
		'ini_range' => 6,
		'ini_bonus' => 4,
	),
	'unit_type' => 'water',
	'stats' => array(
		'atk_dice' => 2,
		'atk_range' => 6,
		'atk_bonus' => 4,
		'def_dice' => 1,
		'def_range' => 6,
		'def_bonus' => 4,
		'rec_dice' => 1,
		'rec_range' => 6,
		'rec_bonus' => 4,
		'max_hp' => 40,
	),
	'unit_name' => 'てげ',
);

//規定戦闘回数
$max_turn = 10;
//全体の配列を作成
$array= array();

//最大HPの取得
$array['ply_max_hp'] = $ply['stats']['max_hp'];
$array['emy_max_hp'] = $emy['stats']['max_hp'];

//属性補正基本
$ply_damege_bonus = 100;
$ply_def_bonus = 100;
$emy_damege_bonus = 100;
$emy_def_bonus = 100;
//属性判定
if($ply['unit_type']='fire'){
	switch($emy['unit_type']){
		case 'wood': $ply_damege_bonus = 125; $ply_def_bonus = 125; $emy_damege_bonus = 75; $emy_def_bonus = 75; break;
		case 'water': $ply_damege_bonus = 75; $ply_def_bonus = 75; $emy_damege_bonus = 125; $emy_def_bonus = 125; break;
	}
}elseif($ply['unit_type']='water'){
	switch($emy['unit_type']){
		case 'fire': $ply_damege_bonus = 125; $ply_def_bonus = 125; $emy_damege_bonus = 75; $emy_def_bonus = 75; break;
		case 'thunder': $ply_damege_bonus = 75; $ply_def_bonus = 75; $emy_damege_bonus = 125; $emy_def_bonus = 125; break;
	}
}elseif($ply['unit_type']='wood'){
	switch($emy['unit_type']){
		case 'thunder': $ply_damege_bonus = 125; $ply_def_bonus = 125; $emy_damege_bonus = 75; $emy_def_bonus = 75; break;
		case 'fire': $ply_damege_bonus = 75; $ply_def_bonus = 75; $emy_damege_bonus = 125; $emy_def_bonus = 125; break;
	}
}elseif($ply['unit_type']='thunder'){
	switch($emy['unit_type']){
		case 'water': $ply_damege_bonus = 125; $ply_def_bonus = 125; $emy_damege_bonus = 75; $emy_def_bonus = 75; break;
		case 'wood': $ply_damege_bonus = 75; $ply_def_bonus = 75; $emy_damege_bonus = 125; $emy_def_bonus = 125; break;
	}
}elseif($ply['unit_type']='dark'){
	switch($emy['unit_type']){
		case 'light': $ply_damege_bonus = 125; $ply_def_bonus = 125; $emy_damege_bonus = 125; $emy_def_bonus = 125; break;
	}
}elseif($ply['unit_type']='light'){
	switch($emy['unit_type']){
		case 'dark': $ply_damege_bonus = 125; $ply_def_bonus = 125; $emy_damege_bonus = 125; $emy_def_bonus = 125; break;
	}
}

//ターン
for($i=1; $i <=$max_turn; $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']){
				//超えていた場合ダメージ判定
				//発動レート
				$ply_skill_rate = mt_rand(1, 100);
				$array['turn'.$i]['ply_skill_rate']=$ply_skill_rate;
				//スキル発動判定
				if($ply['skill']['skill_rate'] >= $ply_skill_rate){
					switch($ply['skill']['skill_type']){
						case 'attack_add_bonus': //攻撃ボーナス値に加算するタイプ
							$ply_skill_damage = mt_rand(1,$ply['skill']['skill_damege_range']);
							$array['turn'.$i]['ply_atk']['skill_damage'] = $ply_skill_damage;
							$array['turn'.$i]['ply_atk']['total'] = $array['turn'.$i]['ply_atk']['total'] + $ply_skill_damage;
							break;
						case 'attack_multiply_total': //最終トータルに乗算する
							$ply_skill_damage = $ply['skill']['skill_damege_range'];
							$array['turn'.$i]['ply_atk']['skill_damage'] = $ply_skill_damage;
							$array['turn'.$i]['ply_atk']['total'] = floor($array['turn'.$i]['ply_atk']['total']*($ply_skill_damage/100));
							break;
						case 'attack_add_dice': //ダイスを追加
							$ply_skill_damage = $ply['skill']['skill_damege_range'];//追加ダイスの個数
							$ply_skill_damage_total = 0; //追加ダイスのカウント用
							for($j=1;$j<=$ply_skill_damage;$j++){
								$count = mt_rand(1,$ply['stats']['atk_range']);
								$array['turn'.$i]['ply_atk']['skill_damage'][] = $count;
								$ply_skill_damage_total = $ply_skill_damage_total + $count;
							}
							$array['turn'.$i]['ply_atk']['skill_damage_total'] = $ply_skill_damage_total;
							$array['turn'.$i]['ply_atk']['total'] = $array['turn'.$i]['ply_atk']['total']+$ply_skill_damage_total;
							break;
					}
				}
				//最終ダメージ決定
				$ply_total_damage = floor($array['turn'.$i]['ply_atk']['total']*($ply_damege_bonus/100));
				$emy_total_def = floor($array['turn'.$i]['emy_def']['total']*($emy_damege_bonus/100));
				//攻撃値が装甲値を上回った場合
				if( ($ply_total_damage - $emy_total_def)> 0){
					$emy_end_hp = $emy_now_hp - ($ply_total_damage - $emy_total_def);
				}else{
					$emy_end_hp = $emy_now_hp;
				}
				$array['turn'.$i]['ply_total_damage'] = $ply_total_damage;
				$array['turn'.$i]['emy_total_def'] = $emy_total_def;
				$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']){
				//超えていた場合ダメージ判定
				//スキル発動レート
				$emy_skill_rate = mt_rand(1, 100);
				$array['turn'.$i]['emy_skill_rate']=$emy_skill_rate;
				//スキル発動判定
				if($emy['skill']['skill_rate'] >= $emy_skill_rate){
					switch($emy['skill']['skill_type']){
						case 'attack_add_bonus': //攻撃ボーナス値に加算するタイプ
							$emy_skill_damage = mt_rand(1,$emy['skill']['skill_damege_range']);
							$array['turn'.$i]['emy_atk']['skill_damage'] = $skill_damage;
							$array['turn'.$i]['emy_atk']['total'] = $array['turn'.$i]['emy_atk']['total'] + $emy_skill_damage;
							break;
						case 'attack_multiply_total': //最終トータルに乗算する
							$emy_skill_damage = $emy['skill']['skill_damege_range'];
							$array['turn'.$i]['emy_atk']['skill_damage'] = $emy_skill_damage;
							$array['turn'.$i]['emy_atk']['total'] = floor($array['turn'.$i]['emy_atk']['total']*($emy_skill_damage/100));
							break;
						case 'attack_add_dice': //ダイスを追加
							$emy_skill_damage = $emy['skill']['skill_damege_range'];//追加ダイスの個数
							$emy_skill_damage_total = 0; //追加ダイスのカウント用
							for($j=1;$j<=$emy_skill_damage;$j++){
								$count = mt_rand(1,$emy['stats']['atk_range']);
								$array['turn'.$i]['emy_atk']['skill_damage'][] = $count;
								$emy_skill_damage_total = $emy_skill_damage_total + $count;
							}
							$array['turn'.$i]['emy_atk']['skill_damage_total'] = $emy_skill_damage_total;
							$array['turn'.$i]['emy_atk']['total'] = $array['turn'.$i]['emy_atk']['total']+$emy_skill_damage_total;
							break;
					}
				}
				//最終ダメージ決定
				$emy_total_damage = floor($array['turn'.$i]['emy_atk']['total']*($emy_damege_bonus/100));
				$ply_total_def = floor($array['turn'.$i]['ply_def']['total']*($ply_def_bonus/100));
				//攻撃値が装甲値を上回った場合
				if( ($emy_total_damage - $ply_total_def)> 0){
					$ply_end_hp = $ply_now_hp - ($emy_total_damage - $ply_total_def);
				}else{
					$ply_end_hp = $ply_now_hp;
				}
				$array['turn'.$i]['emy_total_damage'] = $emy_total_damage;
				$array['turn'.$i]['ply_total_def'] = $ply_total_def;
				$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;
		}
}
//規定回数のターンを過ぎて戦闘終了判定がない場合
//配列にvictory_flagのキーがあるかどうか
if(!array_key_exists('victory_flag',$array)){
	//タイムアップフラグ
	if($ply_end_hp>=$emy_end_hp ){
		$array['time_up_flag'] = 1;
	}else{
		$array['time_up_flag'] = 0;
	}
}else{
	// $array['last'] = 'kumaaaaa';
}

print_r($array);

単純戦闘ダイスロール

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);

さいころ振るfunction

<?php
function dice_role( $dice , $max_count ){
	$total = 0;
	$array = array();
	$array['dice_type'] = $dice.'D'.$max_count;
	for ($i = 0 ; $i < $dice ; $i++){
		$counts = mt_rand(1, $max_count);
		$array['dice'][] = $counts;
		$total = $total + $counts;
	}
	$array['total'] = $total;
	return $array;
}// end function
?>

↓ボーナス追加及びデフォルト設定

<?php
function dice_role( $dice , $max_count , $bonus = "0"){
	$total = 0;
	$array = array();
	$array['dice_type'] = $dice.'D'.$max_count;
	for ($i = 0 ; $i < $dice ; $i++){
		$counts = mt_rand(1, $max_count);
		$array['dice'][] = $counts;
		$total = $total + $counts;
	}
	$array['bonus'] = $bonus;
	$total = $total + $bonus;
	$array['total'] = $total;
	return $array;
}// end function
?>
<?php
function ini_role( $ply_ini , $emy_ini ){
	$array['ply'] = dice_role($ply_ini['initiative']['ini_dice'],$ply_ini['initiative']['ini_range'],$ply_ini['initiative']['ini_bonus']);
	$array['emy'] = dice_role($emy_ini['initiative']['ini_dice'],$emy_ini['initiative']['ini_range'],$emy_ini['initiative']['ini_bonus']);
	if($array['ply'][total] >= $array['emy'][total]){
		$array['flag'] = 1; //プレイヤー先攻
		$array['flag_text'] = '先制攻撃!';
	}else{
		$array['flag'] = 0; //プレイヤー後攻
		$array['flag_text'] = '先制を取られた!';
	}
	$array_dice = $array['ply']['dice'];
	$array_dice_text = '';
	foreach($array_dice as $dice){
		$array_dice_text .= $dice.'+';
	}
	$array_dice2 = $array['emy']['dice'];
	$array_dice_text2 = '';
	foreach($array_dice2 as $dice2){
		$array_dice_text2 .= $dice2.'+';
	}
	$array['dice_text'] = $ply_ini['unit_name'].'[ '.$array['ply']['dice_type'].':'.$array_dice_text.$array['ply']['bonus'].'= '.$array['ply']['total'].' ] || ';
	$array['dice_text'] .= $emy_ini['unit_name'].'[ '.$array['emy']['dice_type'].':'.$array_dice_text2.$array['emy']['bonus'].'= '.$array['emy']['total'].' ]';
	return $array;
}// end function
?>

配列のメモ書き

$array = array(
  'AI' => array(
    'action' => 'attack',
  ),
  'skill' => array(
    'skill_name' => 'dice_attack',
    'skill_damege_rate' => '150',
  ),
  'initiative' => array(
  'ini_dice' => 2,
  'ini_range' => 6,
  'ini_bonus' => 4,
  ),
  'unit_type' => 'fire',
  'stats' => array(
    'atk_dice' => 2,
    'atk_range' => 6,
    'atk_bonus' => 4,
    'def_dice' => 1,
    'def_range' => 6,
    'def_bonus' => 4,
    'rec_dice' => 1,
    'rec_range' => 6,
    'rec_bonus' => 4,
    'max_hp' => 80,
  ),
  'unit_name' => 'type1',

);

phpのforで

<?php
for ( $i=1; $i<10; $i++ ){
  echo $i;
  if ($i==5){
    break;
  }
}
?>

breakが使えることを今日しった。
switchで使えるんだからそういえばそうなんだ!って具合である。

break;
をbreak(1);とやるとネスト1個分抜ける形になる。
ほうほう!

Win8になって

テキストエディタのお気に入りがMi2で
そのエディタは基本的にMACしか対応していない状態。
アルファ版としてWin用というのがあって今まではそれを使っていたが
今日からしばらくAtomというGithubが作ったエディタを使ってみようと思う。

いままで行っていたようなキーバインドができるかどうか分からないがネットと回りの評判を聞く限りでは上々っぽい。

無駄遣いは控えようって・・・。

そう考えていたときなのに・・・。

http://p-bandai.jp/hobby/item-1000095833/
ペイルライダー

http://p-bandai.jp/hobby/special-1000002674/
ジムスナ2 WD 再販

ぐぬぬぬー。

特定タクソノミーの記事だけ表示されない。

コンテンツのWPのところだけどjQueryの箇所とかにぶら下がっている投稿記事がリスト上に表示されていないことは気がついていたけど
ソースを見直してみたら原因が分かったのでメモ

いらない部分は削除した状態で
●修正前

<?php foreach( $categories as $cate ):?>
<?php
$args = array(
	'post_type' => $p_type,
	'post_status'=>'publish',
	'posts_per_page'=> -1,
	'tax_query'=> array( array( 'taxonomy'=> $term, 'field'=>'id', 'terms' => $cate->term_taxonomy_id ) ),
);
$the_query = new WP_Query( $args );
$posts = $the_query->posts;
?>

●修正語

<?php foreach( $categories as $cate ):?>
<?php
$args = array(
	'post_type' => $p_type,
	'post_status'=>'publish',
	'posts_per_page'=> -1,
	'tax_query'=> array( array( 'taxonomy'=> $term, 'field'=>'id', 'terms' => $cate->term_id ) ),
);
$the_query = new WP_Query( $args );
$posts = $the_query->posts;
?>

tax_queryの中の配列の「’terms’ => $cate->term_taxonomy_id」を「’terms’ => $cate->term_id」に変更
print_rで出していたときにidと書いてあったから目についたものをいれたがこれが場所によってはterm_idと数値が異なる。
これが原因で出る記事とでない記事があった。

なんで微妙にちがうの?とおもって調べたら以下。

  • term_id は terms テーブルにあるタームの ID です。
  • taxonomy はタームが入るタクソノミーを示します。
  • term_taxonomy_id はタームとタクソノミーの組み合せのユニークな ID です。

はー、そういう事なんだ・・・。

久しぶりに

体調崩した。
風邪を引いたのかなんなのか
嘔吐して熱がでた土曜日だ。
いまはそれほどでもないけども、なかなかしんどかったな・・。
やりたいことがほとんどできてないや。

WPで英文の自動改行の仕様がよくわからない。

bbb://~~~~~~~.com
http://~~~~~~~.com
半角英数の文字で一文をいれ改行・一文をいれ改行・一文をいれ改行
それらを繰り返すと表示画面では通常では1回の改行が2回くりかえされる
ソース的には
sss://~~~~~~~.com「改行」「改行」
となる。
http://~~~~~~~.com「改行」
にしたいのにどうすればいいのか微妙に判断がつかない。
おそらくは
wpautop()の箇所の中身を見てどうなのかを確認してみよう。
sss://~~~~~~~.com
sss://~~~~~~~.com
http://~~~~~~~.com
・http://~~~~~~~.com
urlと判断されたら改行がふえるっぽい?
~~~~~~.com
https://~~~~~~~.com