狠狠撸
Submit Search
Veri2048
?
Download as PPTX, PDF
?
0 likes
?
488 views
ga sin
Follow
痴别谤颈濒辞驳で2048を実装した
Read less
Read more
1 of 13
Download now
Download to read offline
More Related Content
Veri2048
1.
veri2048
2.
veri2048?? ? Verilog +
2048 ? 2048??数年前にブームとなった(?)単 純なパズルゲーム ←2048本家のスクショ
3.
主に実装したこと ? マスのデザインを書く(easy) ? マスの移動、マージ(medium) ?
マスの移動のアニメーション(hard) ? 飛行機(medium) ? Other ? マスのランダム出現、終了判定、…
4.
マスのデザインを書く ? 数字を表示するのが大変。 ? けどやっぱり手書き感のある文字がいい ?
方針 ?ペイントで文字を手書きする ?Pythonで読み込んでその文字を表示するVerilog コードを生成する ?大量のif文が生成される
5.
マスの移動、マージ ? 二つの方針 ?複数クロックを使って比較的スマートに書く ?1クロックでできるだけ全部処理する ? 後者を選択 ?クロックずらすのが直感的じゃない ?1クロックのほうが高速だしカッコイイ ?後で後悔
6.
マスの移動、マージ ? 1クロックで全部やるとは ?一時変数は使えない ?勿論for文的な処理もできない ?全列挙 ? 盤面の状態を全て列挙して移動後の状態を求める ?列、行は独立であることなどを利用して工夫す る ?手書き+コピペで全て書いた(暴挙)
7.
マス移動のアニメーション ? 本家を見ると動かした方向に実際にマスが動いて いる ?実装したくなる ? 難しい点 ?移動する数字の描画 ?移動する距離によって速度が違う ?各マスの移動方向?距離が必要 ?マスのマージ時にしかわからない ?マージの書き直し(絶望)
8.
飛行機 ? オプション ? ただのギミック ?
気の向くままに書いたもの ? 2048本体よりも好き
9.
苦労話 ? マスの移動を実装したけどボタンを押したときの 挙動が変 ? Debug(二日目午後から三日目午前) ?
TAの方々に物理的な問題かもとアドバイスをもら う ? 与えられたコードではチャタリング除去部が切り 離されていた(なぜ…) ?本体にチャタリング除去を加える ?直った!
10.
苦労話 ? 作業が遅れている ?家でコードを書こう! ?家にはコンパイル環境すらない ?GitHubでなけなしのバージョン管理 ? マス移動のシミュレーション ?全部家で書いた(数千行の追加、削除) ?次の日大学でコンパイル ?当然エラー大量発生 ?数時間かけて動くようにした
11.
ちゃたりんぐ? ? ボタンを押しているときにオンオフが切り替わっ てしまうこと ?入力を40MHzで読み取るので感度が超高い ?人間にはこんな感度必要ない ? チャタリング除去アルゴリズム 1.
ボタンが押されたらフラグを立てる 2. ボタンが一定時間離されたらフラグを降ろす ?簡単だけどとても効果的
12.
おまけ ? ソースコード量 ??
約6000行 ↑飛行機描画部(約 1000行) ↑セルのマージ処理部 (2500行)
13.
おわりに ? 計画性は大事 ? もうちょっと頭のいいことをするべきだった ?他の人はモジュールとかクロックをうまく使っ ていた ?僕は一つのモジュールに大量にifを詰め込んだ ?
いい経験をすることができた ? 楽しかった ? TAの方々が質問に丁寧に答えてくれて神だった
Download