BIT-TenLinesOfCodes2025:北理工「十行代码」ロシア方塊(テトリス)出品

Other

概要

本リポジトリは、北京理工大学の学生イベント「十行代码2025」ロシア方塊(テトリス)部門への出展作品です。作者は C++ と教育用グラフィックライブラリ EasyX を用いて、クラシックな落ちものパズルを再現しています。ゲームは Windows 用の実行ファイル(「北理工的恶龙:经典俄罗斯方块.exe」)が提供され、左側にプレイフィールド、右側に次のブロックプレビューやスコア、レベル等のステータスが表示されます。キー操作は移動・回転・一発落下・高速落下など標準的で、F1 を押すと開発者モード(直線ブロックのみ生成)が有効になる点が特徴です。提出時点で実装は軽量にまとめられており、学習用途やコンペティションの短期制作物として参考になります。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 2
  • フォーク数: 0
  • ウォッチャー数: 2
  • コミット数: 4
  • ファイル数: 2
  • メインの言語: C++

主な特徴

  • C++ と教育用グラフィックライブラリ EasyX によるシンプル実装
  • Windows 実行ファイル同梱で手軽にプレイ可能
  • 標準的な操作体系(左右移動、回転、落下、一発落下)を網羅
  • F1 で切替可能な開発者モード(直線ブロック限定)

技術的なポイント

この作品は「短いコードで動く実用的なゲーム」を目的に設計されており、教育目的や短時間開発の好例です。描画は EasyX を介した即時描画(画面クリア→盤面再描画のループ)で実装されている可能性が高く、ゲームループは入力取得・状態更新・衝突判定・ライン消去・レンダリングの基本サイクルを採用しています。テトロミノ(ブロック)の表現は、一般に 4x4 ビットマップや配列で定義し、回転は 90°単位でのインデックス変換、あるいは複数の回転状態を事前定義する方式をとっていると推測されます。衝突判定は落下先の各セルが盤面外や既存ブロックと重なるかをチェックする単純なグリッド判定で実現され、ラインが埋まった行の削除とスコア加算、レベルアップ判定に基づく落下速度の増加が組み合わされています。開発者モード(F1)では生成ブロックを制限することで挙動検証を容易にし、デバッグや高得点戦略の研究にも使える実装です。さらに、スペースキーによる「一発落下」(ハードドロップ)や高速落下の処理は、現在のブロックを最下端まで即移動させる最短探索と即時固定を行うことで実現されています。実行バイナリが含まれている点から Windows(EasyX)依存があるため、非 Windows 環境ではソースのビルドやライブラリ置換が必要になります。コードベースは小規模で学習しやすく、テトリスの基本アルゴリズムを学ぶ教材として有用です。(約700字)

プロジェクトの構成

主要なファイルとディレクトリ:

  • README.md: file(説明と操作方法を記載)
  • source code: dir(実装ソース、実行ファイルを含む可能性あり)

実行とビルドについて(補足):

  • 実行ファイル名: 「北理工的恶龙:经典俄罗斯方块.exe」が提供されている旨の記載あり。
  • ライブラリ: EasyX(教育用途の簡易グラフィックライブラリ)。Windows 環境での実行を前提。
  • ビルド: ソースは C++ で書かれているため、Visual Studio 等の Windows 向け開発環境が適当です。EasyX を導入してコンパイルする必要があります。

操作説明(README より抜粋の要約):

  • 空白キー: ゲーム開始 / 結果画面で再開 / ハードドロップ(現在のブロックを一番下へ)
  • 矢印キー / WASD 相当: 左右移動、回転(時計回り・反時計回り)
  • ESC: 強制終了
  • F1: 開発者モードの ON/OFF(開発者モードでは生成されるブロックが直線のみ)

まとめ

短時間制作に適した、C++/EasyX で作られた学習向けテトリス実装です。(約50字)

リポジトリ情報:

READMEの抜粋:

BIT-TenLinesOfCodes2025-Tetris-CompetitionEntryByRyaho

北京理工大学 十行代码2025 俄罗斯方块赛道 参赛作品

本ゲーム采用c++和其支持的一个教学用简易图形库”easyx”实现,编写时间为2025年3月底

游戏操作说明

打开”北理工的恶龙:经典俄罗斯方块.exe”后,进入主界面;

在主界面按下[ESC]强制退出游戏,按[空格]键开始游戏,进入游戏界面;

左侧为游戏区域,右侧为状态栏,从上至下依次显示下一个方块的预览、当前得分、已经放置的方块、当前难度、距离难度升级还差的方块数、历史最高分. 按键说明: 将当前下落的方块尝试向左移动 将当前下落的方块尝试向右移动 尝试将当前下落的方块逆时针旋转 尝试将当前下落的方块顺时针旋转 [空格] 将当前下落的方块直接移动到目前位置能下落到的最下方(快速下落) [F1] 进入/离开开发者模式;开发者模式生成的方块都只会是直线的形状. [ESC]强制退出游戏

游戏结束后进入结算界面;

在结算界面按下[ESC]强制退出游戏,按[空格]键重新开始游戏,回到开始界面. …