CH 01課題の内容
Point
画面の左端に自分の拠点、右端に敵の拠点が立ち、それぞれ HP バーを持つ。プレイヤーはユニットを召喚して敵拠点へ進軍させ、敵拠点の HP をゼロにすれば勝ち。逆に自分の拠点が落とされたら負けになる。
| 要素 | 内容 |
|---|---|
| 拠点 HP | 自陣・敵陣それぞれに HP バー。ゼロになった側が敗北 |
| ユニット召喚 | 画面下のボタンからユニットを選んで出撃させる |
| 進軍と戦闘 | 召喚したユニットは自動で前進し、敵とぶつかると戦闘 |
| START / RESTART | ボタン 1 つで開始・やり直しができる |
| ランキング | プレイ結果をゲーム画面の下にランキングとして表示 |
実際にブラウザで動かした様子。ユニットが自動で進軍し、拠点を挟んで押し合いになる流れが見える。
SQLなし版のプレイの様子(YouTube)
YouTube で開く役割分担は第三回で学んだ Flask の構図そのまま。Flask はページを配信する係で、ゲームの動きはブラウザ側の JavaScript が受け持つ。
Flask がゲーム画面(HTML / CSS / JS)をブラウザへ返す。
JS が一定間隔で全ユニットの位置を更新し、画面を描き直す。
ユニット同士・ユニットと拠点の衝突を判定して HP を減らす。
プレイ結果は SQL を使わず、サーバー側の変数(リスト)に貯めてランキング表示する。
ゲームとしては遊べる。しかし「ランキングを変数に貯めているだけ」の構成は、動かしてみるとすぐに壁が見えてくる。
サーバーを再起動すると、ランキングがまるごと消えてしまう。
ログインがないので、どのスコアが誰のものか分からない。
記録が増えるほど変数管理は破綻し、検索も集計もできない。