様々なゲームのプログラムを C++ & Siv3D で書いていくプロジェクトです。ほとんどの行にコメントが付いていて、学習の参考にしやすいコードになっています。
- コードのライセンスはパブリックドメインで、自由に再利用できます
- 派生 / 改造プログラムを作ったら、ぜひ Zenn や Qiita に投稿してみてください
- その際に、このリポジトリにリンクしてもらえるとありがたいです
- ゲームの番号 (001A など) は一意 & 将来にわたって固定です
- バグや改善案の提案、リクエストなどはこのリポジトリの Issue をご利用ください
番号 | ゲーム | 難易度 | キーワード |
---|---|---|---|
001A | ブロックくずし | ★2 | 図形クラスを活用しよう |
001B | 再挑戦可能なブロックくずし | ★2 | 初期状態を作る関数を再利用しよう |
002A | タイピングゲーム | ★1 | TextInput::Update() を活用しよう |
003A | 神経衰弱 | ★3 | トランプの描画は PlayingCard |
004A | ハノイの塔 | ★2 | 配列を使ってコードを短くしよう |
005A | 2D 物理演算による破壊ゲーム (Angry Birds など) | ★3 | P2Body::setVelocity() で発射速度を設定 |
005B | 2D 物理演算による破壊ゲーム - 予測軌道を表示 | ★3 | 物理演算機能に頼らない方法もある |
006A | Wheel of Fortune (ルーレット) | ★3 | 結果につじつまを合わせよう |
007A | 2D RPG のマップと移動の基本 | ★3 | マップの情報は外部ファイルに用意しよう |
008A | マインスイーパーの盤面 | ★2 | 二次元配列での表現方法を工夫しよう |
008B | マインスイーパーの島構造の構築 | ★4 | 盤面上の接続関係を DisjointSet で調べよう |
008C | マインスイーパーのマスを開く | ★4 | 仕事を複数の関数に分割しよう |
008D | マインスイーパー | ★4 | ゲームオーバーとゲームクリアの状態を持とう |
番号 | 部品 | 説明 |
---|---|---|
W001A | 結果をツイートするボタン | ゲームの結果をハッシュタグや URL 付きでツイートできるようにし、SNS 上でプレイヤーを可視化・ゲームを拡散しやすくします |
001B |
002A |
003A |
004A |
005B |
006A |
007A |
008D |
W001A |