お勉強の副産物

艦これの2-5式索敵スコアと制空値を計算するアプリが出来ました。

DB接続調べるのが面倒だったのでデータは全部CSVで持ってます。

ship.csv
名前,艦種,スロット数,搭載数1,搭載数2,搭載数3,搭載数4

equip.csv
名前,索敵値,索敵スコア係数,対空値

equipXX.csv (艦種ごと)
装備可能な装備品の名前


素索敵や司令部レベルをselectでやってるのは、マウスUIで完結させるためです。
決して入力チェックが面倒だったとか、そういうことではありません。

データベースのお勉強2

昨日のやつちょろちょろ反応貰って嬉しい限りです。

紹介されたやつぴよぴよ読んでたら、三つ目のやつがそのものですね。「どっかにこんな感じの車輪ない?」って気持ちで書いてたので一安心です。
タグ機能」とあるように、ブックマークとタグと言う流動性の高いデータを扱う場合なので、装備可否みたいな静的なデータを扱うなら最初に書いた装備テーブルに可否を持ってしまうのが良いような気がしてきました。(もう一人反応してくれた人もこちら推し)

それにしても一つ目のやつは目から鱗ですね。その発想はなかったです。無駄な綺麗さは投げ捨てていけ。


ということで引き続き。
発端としては索敵値計算を自動化してやろうってのがあるので、それ用の列をぶっこんでいきます。

テーブル名:装備
{ID、名前、索敵値、索敵計算種、
戦艦装備可、
高速戦艦装備可、
航空戦艦装備可、
重巡洋艦装備可、
航空巡洋艦装備可、
重雷装巡洋艦装備可、
軽巡洋艦装備可、
駆逐艦装備可、
正規空母装備可、
軽空母装備可、
水上機母艦装備可、
潜水艦装備可、
潜水空母装備可、
工作艦装備可、
揚陸艦装備可、
潜水母艦装備可}

テーブル名:艦種
{ID、名前}

テーブル名:索敵計算種
{ID、係数}

テーブル名:艦娘
{ID、名前、艦種ID、スロット数}

こう並べてみると、装備可能リストを生成するのが厄介に見えてくるけど、艦種なんてそうそう追加されないし、良いってことだよな。
艦種からどの装備可を取って来るかで思いつくのはこんなところ。
1.SELECTCASEでごりごり。
2.艦種IDで艦種の名前引っ張ってきて、そこから列名を生成。
3.艦種IDと装備可の列名の対応を持つテーブルを作ってそこから引っ張って来る。

速度的にSELECTCASEでがりごりやった方が良さそうですね。それか2.のアプローチで艦種IDではなく艦種名を持つようにして、艦種テーブルのIDを廃止して名前を主キーにする。
うむ、SELECTCASEで愚直に行きましょう。

データベースのお勉強

艦種:戦艦 駆逐艦
装備:35砲 四連酸素魚雷 ダメコン
戦艦は35砲とダメコンを装備できる
駆逐艦は四連酸素魚雷とダメコンを装備できる

これをデータベースに保存することを考える。
艦種よりは装備の方が数が増えやすいので、装備に装備可能艦種を持つことにする。
以下のようにテーブルを定義する。

テーブル名:装備
{名前、戦艦装備可、駆逐艦装備可}

テーブル名:艦種
{名前}

実際のテーブルは以下となる。

テーブル名:装備
{35砲、可、不可}
{四連酸素魚雷、不可、可}
{ダメコン、可、可}

テーブル名:艦種
{戦艦}
駆逐艦

装備可能かの判定は艦種を取得して、ロジックなりストアドなりCASE文なりでごりごり。

ってのがありがちな感じな気がするけど、「艦種が増える」と言う一つのことで二か所をいじるのはあまり美しくない。
とは言え、艦種に装備可能情報持たせたら余計に地獄なので、もうどうしようもないのでは。
いや、なんかあるでしょ。

テーブル名:艦種
{名前}

テーブル名:装備
{名前}

テーブル名:装備可
{艦種、装備}

実際のテーブルはこんな感じ。

テーブル名:艦種
{戦艦}
駆逐艦

テーブル名:装備
{35砲}
{四連酸素魚雷
{ダメコン

テーブル名:装備可
{戦艦、35砲}
{戦艦、ダメコン
駆逐艦、四連酸素魚雷
駆逐艦、ダメコン

判定はスマートな方法がちょっと調べてよく分からないけど、こんなんで良いのかな。

SELECT COUNT(*) FROM 装備可 WHERE 艦種 = '戦艦' AND 装備 = '35砲'

欲を言えば見つかったらすぐ帰ってほしいんだけど、どうやれば良いんだろう。

装備可能なリストを持ってくるのは、簡単なSQLの結果をそのまま並べれば良いので楽。

SELECT 装備 FROM 装備可 WHERE 艦種 = '戦艦'

でも、ソートをしようと思うと結合で頑張れってなるので、なんか結局手間そんなに変わらない気がして来たな!

テーブル名:艦種
{名前、ID}

テーブル名:装備
{名前、ID}

SELECT 装備可.装備 FROM 装備可 WHERE 艦種 = '戦艦' INNER JOIN 装備 ON 装備可.装備 = 装備.名前 ORDER BY 装備.ID

こうなって来ると、装備可テーブルはIDで持った方が良い気がしてきますよね。

定義
テーブル名:艦種
{ID、名前}

テーブル名:装備
{ID、名前}

テーブル名:装備可
{艦種ID、装備ID}

実際
テーブル名:艦種
{1、戦艦}
{2、駆逐艦

テーブル名:装備
{1、35砲}
{2、四連酸素魚雷
{3、ダメコン

テーブル名:装備可
{1、1}
{1、3}
{2、2}
{2、3}

SELECT COUNT(*) FROM 装備可 WHERE 艦種ID = 1 AND 装備 = 1
SELECT 装備.名前 FROM 装備可 WHERE 艦種ID = 1 INNER JOIN 装備 ON 装備可.装備ID = 装備.ID ORDER BY 装備.ID


SQLが怖いのは、ブラックボックスの中身覗かないと速度差がヤバいって辺りですよね。

【速報】マレフィセント百合厨大勝利

と言うことで初日の朝にマレフィセント見てきました。
百合でした。

書く事これだけで良い気もしますけど、まあ百合でした。
呪いで眠りに就いたオーロラを目覚めさせたのは、通りすがりのプリンスのキスではなく、16年間オーロラを見守り続けたマレフィセントのキスでした。

ええ、そうなんですよ。額とは言えキスで目覚めるんですよ。昏睡させて運んできた「プリンス」のキスが不発した後に、「あなたの笑顔を毎日思い出す」と誓ったキスで目覚めるんですよ。で、目覚めた第一声が「こんにちは、醜い子」ですよ。なんだこのツンデレ。そもそも16年間世話焼き続けとか、どんだけオーロラ好きなんだよ、このフェアリーゴッドマザー。オーロラにバレてて何驚いてるんだよ、抱っこせがまれてバッチリ抱き上げてるじゃねーか。そりゃ覚えてる。自分と妖精おばさん三人しか居ない世界にそんなやつ居たら絶対に覚えてるわ。

とまあそんな感じで、アナと雪の女王よりもずっと分かりやすく百合でした。
“分かりやすく”ってのがポイントです。
アナと雪の女王はクリストフが結構活躍したりして、私でも本当に百合なのか疑念が湧き出たりもしたんですけど、マレフィセントは完膚無きまでに百合です。
前半はそこらに転がってそうな異種族愛のテンプレートで、決別した後も「こいつらいつよりを戻す気だ」と戦々恐々してたんですが、オーロラが隠遁生活始めた辺りからマレフィセントがオーロラにべたべたで、そのままEDまで百合で突っ走ります。
ムーアで一緒に暮らしたいと言ってきたオーロラの呪いを解こうとして、「誰にも変える事は出来ない」と言う16年前の自分の声に阻まれるシーンはとても美味しかったです。
そこだけ見ると「結局良い奴でしたって話なの」って声も出てきそうですが、ストーリーを俯瞰してみると、とんでもない悪人がエゴのままに行動して、その結果跳ね返ってきた自業自得の状況に自ら立ち向かって結果として英雄にもなる、と言うどこにも正義のないストーリーです。

形式上のマレフィセントのプリンスであるステファンとの関係も清々しいまでの悪vs悪。ステファンは分かりやすく悪の暴君ですが、マレフィセントも恐怖でムーアのトップに君臨する姿はまさしく悪でしょう。
作中、いくらでもヒロインとプリンスの関係に戻れたのに、お互いにフラグを折りまくっていくのは、まざーみrまさに圧巻でした。
マレフィセントを戦いから遠ざけるために翼を切り取って持ち帰るまでは良いのに、ちゃっかり王様になってしまうから愛が伝わらないし、マレフィセントの方も悪意に任せて本人ではなく娘に災厄を向かわせてしまうので、ステファンも引っ込みがつかなくなってしまいました。ホントいいきm残念なやつらです。
最後だって、マレフィセントがトドメを差さないので、もしかしたらやり直せるかと思った瞬間に後ろから掴み掛かって、揉み合いの末に遙か下の地面に落ちていきますからね。どうしようも無いです。ヴィランズ(悪役)に「プリンス」なんて柄じゃないってことですかね!
ヴィランズが主人公の時点でもうどうにでもなれ感はあるんですけど、ここまで「プリンス」を否定するのは胸がすk思い切ったことをするもんだと思います。
上のような惨状のステファンですらまだ「プリンス」してる方だからヤバイです。
オーロラの「プリンス」なんか、登場2シーン目でマレフィセントに拉致されますからね。そして昏睡状態で城まで運ばれて、昏睡状態のままオーロラが眠っている部屋の前に放り出されて、それ真っ当な「プリンス」なら自分の力でやることなんですけど、恥ずかしくないんですか????
これで呪い解けたらまだ格好付くんですけど、華麗に「しかし なにもおこらなかった」で三妖精に部屋から追い出されて、次の登場はEDです。ヤバイでしょ。
EDで登場すると言っても、一瞬顔出してオーロラから微笑み返されてるだけなので、注意してないと見落とすレベルです。っていうか、どの面下げてEDに出てきたんだ。

ただ従来型の「プリンス」は居なくとも、ヴィランズの「プリンス」かもしれないキャラは居ました。カラスのディアバルくんです。
立ち位置はクリストフに近いですが、マレフィセント本人の戦闘能力が高いので、前に出て活躍すると言うよりはサポート役で、主従に近い関係です。
マレフィセントの魔法で様々に姿を変えますが、人間の姿でないとしゃべれないので、煽ってるとカラスに戻されて黙らされて和みます。
ラストのステファン戦では一世一代の見せ場、鉄の鎖で動きを封じされたマレフィセントに代わって、「ドラゴンになれ」で巨大なドラゴンとなり、群がる兵士を蹴散らし、隙を見てマレフィセントから鎖を取り払う大活躍を見せましたが、無勢に多勢で1/1の兵士クリーチャーにもみくちゃにされて鎖でタップされている場面は涙と笑いを禁じ得ませんでした。
最終的にステファンを下すのは翼を取り戻したマレフィセントでしたし、力関係は従来型の「プリンス」からは完全に逆転して、付き従う存在になっています。
翼を取り戻した後に、以前と同じようにムーアの原生林を抜けて、雲を突き抜けていくシーンがあるんですけど、その終わりの雲海の上を飛ぶマレフィセントの傍を一緒に飛んでいるのが本当に絵になるんですよ。オーロラに対するものとはまた違った絆を感じます。二回目に流れたときは「使い回しかよ」って思ったんですけど、実に意味のある使い回しでした。

余談ですが、マレフィセントは属性的には黒緑なんですけど、雲を突き抜けた後の決めポーズは紛う事なき白の天使でしたね。マレフィセントたんマジ天使。
5/5ぐらいの天使のイラストにそのまま使いたい感じでした。
あと、余談に余談を重ねるんですが、マレフィセントは絶対に緑が入るんですけど、飛ぶんですよね。MtG的には緑入ってるとあんまり飛ばないのでちょっと困ります。黒入ってるともう少しは飛ぶんですけど、黒の飛行もそこまで強い要素じゃないので、黒緑で飛行です言われると「んん?」ってなります。まあ、フェアリーって考えれば飛行もアリなんですけど、緑のフェアリー飛んでないやつ多くて。
さらに余談の余談の余談で、ムーアが黒緑で、人間側が赤白だよね、青どこだろう。って話もあるんですが、この辺にしておきましょう。

マレフィセント、良い百合でした。オススメです。

悪いのはメディアの煽り方なんですけど

おそろしい国に向かっている。

そもそも、前回の選挙の時に、こんな「秘密保護法案」を作るということが明らかにされていましたか?その上で国民が選挙権を行使しましたか?

いつから選挙って政策を選ぶ投票になったんでしょうね。マニフェスト言い出した辺りからでしょうか。

落ち着いて国会議員の任期を思い出しましょう。

衆議院議員:4年
参議院議員:6年

これだけの年数分の政策を選挙の時に用意してそれ以外の政策は実行しないなんて、人間のスキルでやったら不味いことしか起こらないでしょう。
新しい政策を持ち上げるときには信を問い直せという話もありますけど、何回選挙する気なんですか。どんだけ金使う気ですか。っていうかそれもう議員を選ぶ理由ないよね。直接民主制で良いよね。

とは言え、今の日本で間接民主主義の「忙しい国民を代表して政策のことだけを考える議員を用意する」という機能がちゃんと働いているかっていうと疑問はあります。選挙に金掛かるのが良くないね。

で、再度引用しますが

そもそも、前回の選挙の時に、こんな「秘密保護法案」を作るということが明らかにされていましたか?その上で国民が選挙権を行使しましたか?

自民党に入れたんだよね????

忘年会でビンゴやったンですよ

ビンゴゲームに用いられるカードには、5×5のマトリックスの中心を除く24マスに、一定の規則の範囲内でランダムに数字が印刷されている。
左から見て
1列目には、1〜15の数字から重複せずにランダムに5個印刷されている。
2列目には、16〜30の数字から重複せずにランダムに5個印刷されている。
3列目には、31〜45の数字から重複せずにランダムに4個印刷されている。
4列目には、46〜60の数字から重複せずにランダムに5個印刷されている。
5列目には、61〜75の数字から重複せずにランダムに5個印刷されている。

(1)各列について、何種類の素数が出現するか。
(2)各列について、素数が1つ以上出現する確率を求めよ。
(3)ビンゴカード全体について、出現する素数の個数の期待値を求めよ。
(4)1〜75までの素数を全て読み上げたとき、ビンゴする確率を求めよ。

解答は用意していないので、読者の宿題とします。

余談ですが、リーチは6個出来ました。

8まではやりました

ドラクエとソーシャルゲームの違いがわからない

選択肢が一つしかないのと、複数の選択肢が収束して一つになるのでは、最終的に採る選択肢は一つだから同じじゃないですかヤダー! ってお話ですね。

分からなくもないですけど、そういうバランスって結構難しいと思います。
上や下に飽和させてどの選択肢でも同じだぜってバランスはわりと簡単な道ですが、今度は「個性」っていう問題が出てきます。ばくだんベビーがLV99まで上がったとして、そいつってギガンテスと区別付くんでしょうか。装備タイプは違うので区別は出来そうです、すみません。

ちょっとテクニカルな話になりますが、「上限レベル」というワードを強調するのは本質を見誤るので良くないです。
というのも上限レベルが低くても終盤まで連れ歩ける仲間モンスターは結構います。
オークキング 上限30
キラーマシン 上限30
ホークブリザード 上限23
ライオネック 上限23
スライムベホマズン 上限20
はぐれメタル 上限8
ギガンテス 上限7
この辺は終盤まで余裕で使えます。

逆にLV99まで上がろうが、どうしようも無い連中ってのはいまして。
例えば、ドラキーってLV99まで上がるんですけど、LV99まで上げても力190なんですよ。255どころか200すらいかないんですよ。経験値800万注ぎ込んで力190なんですよ。どうすんだよ、力190って言ったら、グレイトドラゴンならLV30、ゴーレムでLV24、キラーマシンでLV16、ギガンテスに至ってはLV6で通過する場所ですよ。

そういう訳で、上限レベルではなく、上限能力とでも言った方が良かったような気がします。キャラの天井とか。
これがかなりフラットなゲームだと、FF12とかありますが「キャラの個性がない」って叩かれますね。

どちらにしても共通してるのが、終着点しか見てないんですよね。でもゲームの評価をするなら、クリアするまでの過程も評価に含めるべきだと思います。
過程まで含めれば、DQ5も中盤まではピエール無双で、終盤にはそこにゴーレムと勇者が加わり……ってダメじゃないですか!

仕切り直しまして、ピエールことスライムナイトがド鉄板なんですけど、ニセたいこう倒すぐらいまでなら、その位置にチェーンクロス持ったドラキーとかばくだんベビーとかイエティとかダンスニードルが居ても結構戦えると思いますし、ヘンリーが抜けると、もう1枠をピエール以外で埋めるので、ここは結構色々選択肢があると思います。抜けた直後ぐらいなら、ばくだんベビーもチェーンクロス振り回して現役でしょうし、ブーメラン投げながら補助魔法振りまくスライムもなかなか便利。複数攻撃のチェーンクロスが優秀なので、チェーンクロスさえ装備出来れば結構色んな仲間が息できます。
ドラゴンキッズは火炎の息を覚えるのがLV10だったらもうちょっと戦えた気がします。クックルーも残念なキャラで、補助の才能がもの凄いのに、どうしてお前はLV20で成長が止まってしまうんだ! ああ、それぐらいでビアンカやフローラが仲間になるよな!!
キラーパンサーが仲間になると、心情的に使いたくなるのはあるので、主人公ピエールゲレゲレっていう面子が多くなりますけど、キメラ、キングスライム、ドラゴンマッド、メッサーラと、デモンズタワーまで随所で逸材が起き上がる可能性があります。
デモンズタワー越すと、息子娘が加入する上に、ゴーレムって言うメイン盾が速攻で起き上がるので、一般モンスターの出る幕があんまり無くなってきますけど、ケンタラウスやアンクルホーンもやり手です。
闇の世界まで進みますと、ホークブリザードグレイトドラゴンギガンテス、キラーマシン。どいつも起き上がれば即戦力です。
クリア後には隠しダンジョンで、ライオネックヘルバトラーが加わり全ての仲間モンスターが揃い、最後の敵のエスタークが待っています。

とこんな感じに、スライムナイトとゴーレムが居ればだいたい安定ですが、色々と使う余地はあるように思います。
安定択のスライムナイトとゴーレムで保険を掛けて、偶然起き上がったモンスターで冒険してみるのが推奨されているスタイルなのでは無いでしょうか。

FF12に関しても色々と書きたいのですが、かなり長くなっているので省略しまして、テクニカルな指摘を続けます。

どんなに戦術を工夫したところで、「どうのつるぎ」では「天空の剣」に勝てないのだ。

でも、「チェーンクロス」なら「はがねのつるぎ」に勝てる場面があるんですよねー。
っていう重箱の隅はさておいて、買える最強武器に取り替えていくだけじゃないか、って主張ですけど、よくそんなプレイでG足りますね。ホントにDQ5やったんですか。終盤の武器屋で一個買ったら所持金吹き飛ぶとか余裕ですよ。
バカみたいに敵倒してG稼いで全部買う頭使わないプレイも出来ますけど、限られたGを入れ替えで浮く装備も考慮して、最適に配分していく頭を使うプレイも出来るんですよ。

他にもDQ5に対する見識に欠く部分はありまして

最大効率を目指そうと思ったら、スライムナイトヘルバトラーしか選択肢は無いのだ。

ヘルバトラーがいるって事は、最大効率を考えるならエスタークになりまして、そうなると輝く息とイオナズンを完全封殺して吹雪の剣が装備出来るキラーマシンが選択肢に登らないはずはないんですよ。
雑魚戦を考えても、素早さが高いギガンテスが挙がらないのはおかしいです。
仲間モンスター全体から見ると狭い選択肢ですが、スライムナイトヘルバトラーよりはずっと広い選択肢があります。途中で止めたんなら分からなくても仕方ないとは思いますが、そんなに懐は狭くないと思います。そこがソシャゲとの違いではないでしょうか。単に思い出補正かもしれませんけど。

テクニカルな指摘はこの辺りにして、本質的な所に行きましょう。

でも、なんでそこまで、極限まで、自由度を削ろうとするんだよ。

僕は日本型RPGのそういうところが大嫌いだった。

開発初期のDQはもっと自由度あったんですよ。ゲームのルールも分からないままフィールドを歩き回って敵に惨殺されて「なんだこりゃー?」でゲーム毎放り投げる「自由」があるゲームでした。
でもそれではRPGのゲームの面白さが分からないまま終わってしまう。だから有害な躓きに繋がる「自由」は削ぎ落とし、初めてゲームをやる人にも楽しめるレベルまでシェイプアップして出来上がったのがDQ1です。その流れを汲むDQ5も当然不要な「自由」は持ち合わせていないわけです。
ここがDQが国民的RPGと呼ばれる由縁であり、この記事のような人から嫌われる要因です。
DQは端っからこういう人を相手してないんですよね。FC版ポートピアで、コマンド入力方式と一緒に、堀井雄二が切り捨てたのがこういう人たちです。こういう人たちにDQは必要無いんですよ。面白く無くて当たり前なんです。DQが教えてくれるゲームの面白さはもう知ってるのですから。


さて、余談ですが、こうして並べてみると楽しいですね。

僕はもっと自由にのびのびと遊びたかったんだよ。

最大効率を目指そうと思ったら、スライムナイトヘルバトラーしか選択肢は無いのだ。