seigot/tetris

ホールド機能の検討

Opened this issue · 7 comments

ホールド機能があったほう競争要素になるかどうか検討する
https://www.youtube.com/watch?v=0p-QmK0DCwI

ホールド機能の参考
https://lets-csharp.com/tetris-cpp-hold/

テトリスのガイドラインではホールドに関する記述があります。これによると

テトリミノを1個保持できる。
使うと現在のミノがホールドに入り、ホールドにあったミノが降ってくる
ホールドされているミノは存在しない場合は現在のミノがホールドに入りネクストにあるミノが降る。
1回使うと設置するまで使えない。

それからホールドするためのキーは「C」を使います。左回転ならZ、右回転ならX、ホールドはさらに右側にあるCです。

ホールド機能の概要

  • テトリミノを1個保持できる。
  • 使うと現在のミノがホールドに入り、ホールドにあったミノが降ってくる
  • ホールドされているミノは存在しない場合は現在のミノがホールドに入りネクストにあるミノが降る。
  • 1回使うと設置するまで使えない。

実装案
入力
- keyboard入力の場合:"c"を押すとホールド機能が発動する
- 自動の場合:"option.hold= y(default)"にするとホールド機能が発動する
ホールド機能発動時の処理
- 使うと現在のミノがホールド欄に入る
- ホールドがない場合は次のブロックが落ちてくる
- ホールドがある場合はホールドにあったミノを操作する
(一応何回でも使える)
表示
- ホールド中のミノは空き欄に表示(右下など)

ホールドのイメージ

スクリーンショット 2022-12-29 1 10 22

プルリクエスト
#66

▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 30%
Thinking about how to code...