問題タブ [tetris]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - プレイフィールドに 2D Array を使用した Tetris ゲームの Naive Gravity
私は Tetris クローンを作成しており、C# でプロトタイピングを行っています。最終的なコードは組み込みシステム (8 ビット CPU と非常に小さな RAM を使用) で実行することになっているため、単純なアルゴリズムを使用してライン クリアを実行しようとしています。
現在、私のプレイフィールドは 2D 配列です。
(ここTetrominoType
で、None またはブロックの色付けに使用される 7 つのタイプのいずれかを示す列挙型)
行がクリアされたら、この配列をその場で変更したいのですが、これが私の問題です。次の例を見てください。
ライン 5、7、および 8 を削除する必要があるため、他のラインを削除する必要があると既に判断しており、右側の状態が残ります。
私の素朴な方法は、基本的に、逆方向に反復して、クリアされた行の上の行をコピーすることです。
ここでの問題は、上の行もクリアされる可能性があり (たとえば、iy == 8
7 行目ではなく 6 行目をコピーしたい場合)、コピーした行をクリアする必要があること ( iy-1
)、またはその上の行をコピーする必要があることです。それは今度は上向きにトリクルする必要があります。
すでにスキップした行数を数えてみましたが、それは新しい配列を作成してから交換した場合にのみ機能しますが、プレイフィールド配列のインプレース変更の数学作業を取得できません。
おそらく非常に単純ですが、アルゴリズムがわかりません。どうすればこれを行うことができるか、誰かが洞察を持っていますか?
java - Area または Shape を拡張するクラスとして Java で Tetris シェイプを作成する
私は Java を使用して Tetris ゲームを自分で作成することに取り組んでいます。コードを自分で分解して、どこまでできるかを確認したいので、既にコードが含まれているチュートリアルは使用していません。
これまでのところ、あまり良くありません。私はシェイプの創造に出くわしました。私の考えは次のいずれかです: 1. の引数として使用できるように、Area または Shape を拡張または実装する個別のクラスとして、各基本形状 (L、立方体、ボートなど) を用意しg2.fill(LShape)
ます。2. 各クラスには、回転位置を表すある種の状態変数がありますが、次の課題は、回転を理解することです..
したがって、ステップ 1 として、これまでに LShape クラスの次のドラフトを作成しました。
草案 a):
メイン クラスでは、paint() メソッドで呼び出しています。
g2.fill(lShape); // where lShape is a LShape object;
問題は、例外がスローされることです。getPathIterator()
またはドラフトb):
この場合、 を呼び出してg2.fill(lShape)
も例外はなく、Shape が描画されますが、それを移動する方法がわかりません。Area の一部は Rectangles である Brick オブジェクトであるためsetLocation
、Area 内の各 Brick のメソッドにアクセスしようとすることができましたが、アクセス方法がわかりません。
したがって、Tetris Shape の Shape 実装が例外をスローしないようにする方法、つまり、必要なすべてのメソッドを実装し、実際に JPanel に表示する方法を理解するために助けが必要だと思います..そして、回転について心配します. または、Tetris Shape の Area 拡張を移動する方法を見つけます。
ありがとう、
java - Tetris プログラムの GUI が誤動作しています
私はテトリスプログラムに取り組んでいます。完全に機能するTronプログラムを再利用して作成しています。Tron プログラムでは、GUI は完全に機能しましたが、Tetris プログラムでは、GUI ウィンドウを表示できず、グリッドも表示されません。また、設定されたコントロールを伝えるためにポップアップする別のウィンドウも必要です。試したらどうもありがとう。以下に、両方のプログラム セットを提供します。
テトリス
トロン
}
} }
javascript - JavaScript テトリスで新しいテトロミノを描く
JavaScript でテトロミノを描画しようとしていますが、問題が発生しています。私が持っているコード this.blocks = i.blocks[b][c] は間違っていると思いますが、それ以上かもしれません。目が痛くなり始めたので、助けを求めることにしました。this.blocks = i.blocks[b][c] は機能しませんか? this.blocks は配列を格納できないためですか? それとも別の問題がありますか。ご協力ありがとうございました。
jsfiddle のリンクは次のとおりです: http://jsfiddle.net/8aS9E/
コードは次のとおりです。
ありがとうございました!
c - C のテトリス ブロック
で空の部分を表す動的に割り当てられたボードを使用して、大学がテトリスを作成するプロジェクトがあります.
。私はブロックをそれぞれのピースで個別に作成したかったのです。
Tetris のブロックは、次のように動的に割り当てられた 2D マトリックスで記述されます。
だから私の質問は:
それは効率的ですか?
ブロックを作成し、それらをボード マトリックス内で簡単に移動する別の方法はありますか?
私のブロックの解決策では、テトリスを描くようなもので、それらを全体のように落とす方法を見つけるのに少し苦労しています。
さらに、テトリスがボード上のいくつかのブロックまたはブロック パーツで始まるハード モードを含めるように言われましたが、これは私のソリューションでは困難です。
初めて投稿するので、私の問題についてさらに情報が必要な場合は教えてください。お時間をいただきありがとうございます。
java - GridWorld の Tetris がコンパイルされない
GridWorld を使用して Tetris を作成する AP コンピューター サイエンスの課題があります。TetrisBug
、 、TetrisGame
、 の4 つのクラスを作成する必要がTetrisBlock
ありTetrisBlockO
ます。
コードは次の順序で表示されます。
TetrisBug.java
TetrisGame.java
TetrisBlock.java
TetrisBlockO.java
私が抱えている最初の問題はTetrisGame
. 正確には、最後の方法です。grid.length
ステートメントはコンパイルを拒否しています。ステートメントを追加するとGrid grid = new Grid();
、それは抽象メソッドであり、インスタンス化できませんでした。それらのいずれかをコンパイルすると、コンパイラの警告が表示されます。
2 番目の問題は、 のrotate
メソッドにありTetrisBlock
ます。TetrisGame
コンパイルされないので、動作するかどうかはわかりません。私はそれをテストすることはできませんが、私の友人は、彼を信じるかどうかIDKにもかかわらず、それは間違っていると私に言い続けています. いくつかの検証はいいでしょう。
とにかく、これにはリアルタイムの制限はありませんが、本当にやり遂げたいと思っています。ありがとう。
〜キーレン
更新: user3580294 のおかげで、グリッドの問題を解決しました。しかし、別のGRID DOESNT HAVE A LENGTH METHODを見つけました...何をしようとしていたかはわかっていますが、無効なgrid.length以外にそれを行う方法が見つかりません。誰かが完成した行を正常に削除する方法を教えてもらえますか? 私は本当にここで立ち往生しています...そして、次のプロジェクトに移りたいです...