16×16ドットマトリックスLEDでテトリス

昔は、「C++」なんてのクチでしたが、ここ数年は、C++ を改めて勉強するようになり、ようやくやりたい事が表現出来るようになってきました。

C++ は非常に難しい言語なので独学では難しい側面もあり、習得には時間がかかりますが、複雑な処理を安全で判り易く記述する事が可能だと思います。
※自分は、友人のおかげでスマートに学習する事が出来ました。

C++ の場合、記述方法として「かなり強く従わせる」ような風潮があります、しかしこれには「意味」があります、多くの人はそれが自分のスタイルに合わないとか、馴染まないとか言って、避けてしまい、本当の価値を見失っている事が多々あり、誤解されている事を多くみかけます。
又、不合理で自分勝手な方法論で実装された、クズ同然のコードも多くみられます、非常に残念ですが、良い「先生」を見つける事は難しいのです。

今まで、AVRではメモリーが少ないとか、組み込みマイコンでとか、やった事無いとかなどの理由で「C」言語での開発でしたが、WinAVR で、C++ も使える事が判り、C++ に移行しています。
WinAVR では、STL は標準ではサポートしていないようですが、boost も一部使う事が出来ます、一番の問題は、メモリーが少ない点で、それさえ設計の段階で考えておけばコード効率も優れているようです。
普段のプログラムを C++ で創るのが日常的になると、C ではもはや満足出来ないところまできています(精神的)しかし良い時代です、512 バイトの RAM と 8 キロバイトの ROM を持った 8 ビットの RISC でも C++ で実装出来るのですから。

今回、ATMega88 でドットマトリックス LED を制御するに辺り、スイッチを付けたので、何か、ゲームでも作ってみたくなり、「テトリス」を作ってみました。
※バグが色々ありますがww

ATMega88 LED DotMatrix 16x16
ATMega88 LED DotMatrix 16x16

Dot Matrix LED TETRIS

ソースコード一式