問題タブ [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.

0 投票する
1 に答える
314 参照

c# - 別のユーザー コントロール内でのユーザー コントロールの移動

私はテトリスのクローンを作成しようとしています。いくつかの調査を行った後、小さなユーザー コントロールを使用してブロックを形成し、グリッドを含む大きなユーザー コントロールを使用する例に出くわしました。

私がすでに書いたものはすべて問題なく動作しているようです (ブロックが生成され、グリッドに配置されています。コードを変更すれば、ブロックを別の場所に配置することもできます)。プログラムが実行されています。control.left私が使用する例では、各ブロックのプロパティを変更することでこれを行います。これを試してデバッグしましたが、プロパティが変更されている間、ブロックは移動しません。

4時間ほど探し回りました。私は初心者のプログラマーなので、おそらくばかげていることはわかっていますが、それが何であるかを見つけることができません。

私が書いたメソッドは次のとおりです。

Shape は、実際には 4 つのブロックのみを含む配列リストです。Block.cs は、ユーザー コントロールの背後にある小さな四角形のコードであるため、部分クラスです。Shape.cs はブロックから形状を作成し、tetrisgame は単なるゲームロジックです。

キープレス イベント:

0 投票する
2 に答える
2241 参照

c# - テトリスのクローンを作成するために C# で形状を描画するにはどうすればよいですか?

最初に、この小さなプロジェクトでは XNA や LINQ を使用していないことに注意してください。基本的には、C# Windows アプリケーションを使用して Tetris のクローンを作成したいと考えています。私はすでにグリッドを描画しており、ピクチャボックスのサイズは 250x500 で、各正方形ブロックを 25 ピクセル x 25 ピクセルにしています。

現在、形を描くのは素人です。グリッド上に線と長方形、円、楕円、および多角形を描画し、それらを色で塗りつぶすことができます。それだけです。私は絵を描くこと以外に多くのことをすることができません。言い換えれば、テトリスの「T」形状などのポリゴンを描画するために作成したポイントを使用して、基本的な形状です。

私の質問は、テトリス シェイプを作成するときに、C# の Drawing メソッドを使用して描画する必要があるか、テトリス シェイプのビットマップ画像を作成してインポートし、それらを使用してテトリス クローンを作成する必要があるかということです。

形の描き方が分かれば、あとは自分で考えます。また、ゲーム グリッドで作業を行う場合、GameGrid というクラスから Picturebox プロパティを継承する必要がありますか?

0 投票する
2 に答える
3809 参照

java - 2D 配列全体 (テトリス ボード) をテトリスのピースで埋め、スペースを残さない (Java)

2D int 配列があるとしましょう..

0 は駒がないことを意味します。駒は 1 ~ 7 で表されます。

1 - Z 形状

2 - S字

3 - 線の形

4 - T形

5 - ボックス形状

6 - L型

7 - 後方 L 型

配列全体をランダムな形状で埋め、スペースを残さない最良の方法は何ですか?

注: ゲームは動作しています。テトリスのゲームプレイを使用しながら、別のゲームに適応させようとしています。

0 投票する
0 に答える
1008 参照

java - マルチスレッド環境でのjava.awt.Robotの使用

私は(仮想)競争力のある自動テトリスプレーヤーに取り組んでいます。

ゲームは競争が激しいので、当然、テトリスプレイヤーにはできるだけ多くのキーを同時に押してもらいたいと思います。私が思いついた解決策は、各種類のキー押下にスレッドを割り当てることです(つまり、同じキーが2つ送信された場合、同じスレッド上にあるため、遅延が発生します。ただし、2つの別々のキーが送信された場合、それらのスレッドも別々に実行されるため、両方のキーが同時に押されます)。

しかし、マルチスレッドのために、java.awt.Robotがスレッドセーフではないことを心配しています(そして、googles / SO検索では主題に関する情報が得られません)。使用しているRobotオブジェクトにロックを作成しないようにしたい-そうすると、システム全体が無意味になります(同時に複数のキーが押されることはないため、それぞれが次々に表示されます) 。

1つの可能性は、複数のロボットを同時に使用することです(スレッドごとに1つ)が、それらが単に互いに競合しないかどうかはわかりません。

では、マルチスレッド環境でRobotオブジェクトを処理して、複数のアクションを同時に実行できるようにするにはどうすればよいでしょうか。

0 投票する
1 に答える
749 参照

java - JButton の色付けによる Tetris GUI。レンダリングの問題

私は Tetris ゲームを作成しています。私の GUI では、テトリス ボードとして使用する JButton に色を付けることにしました。JButton のグリッドをセットアップしました。から返される Tetris グリッドをループする予定です。

各グリッド要素の整数に基づいて各 JButton に色を付けます。返される Tetris グリッドは整数の配列で、各数値は色を表します。今のところ、ユーザーとのやり取りはありません。ブロックがまっすぐ下に落ちる基本的な GUI を作ろうとしています。

そして、ここに Game クラスのコードがあります

game.print_Game(); グリッドをコンソール ウィンドウに出力して、何が起こっているかをテキストで確認できるようにします。しかし、 card3.revalidate(); 印刷が開始されると GUI が停止するため、動作していないようです。while ループの前に再検証を移動し、while ループをコメント アウトすると、GUI は次のように出力します。

ここに画像の説明を入力

それが私が欲しいものです。しかし、ボタンを特定の色にするには、グリッドが変化するときに while ループで再検証を行う必要があります。

助言がありますか?

0 投票する
1 に答える
1178 参照

java - Java Tetris - 転置を使用してピースを回転させる

私は楽しいサイド プロジェクトとして Java で Tetris を構築しており、現在はローテーションに取り組んでいます。

私は元々、各ローテーションをハードコーディングしていましたが、これは非常に面倒でした。

そうは言っても、線形代数を使用して行列回転を試みるつもりでしたが、Mathematics.SEの誰かが転置を試すことを勧めました。彼の説明を受けて、私はそれを描いてみました。図面は正しく作成されましたか?

ここに画像の説明を入力

そのため、転置をコーディングしようとしているわけではありませんが、今ではコードで完全に失われています。

これは一見正しい転置グラフを出力しますか?

B:

B`:

だから私の質問は:

1) 上の私の絵は彼の説明の正しい解釈ですか?

2) 転置グラフを正しく生成していますか?

grid[row][col]3) もしそうなら、回転したブロックをどのようにペイントすればよいtranspose()ですか?

ありがとう!

0 投票する
1 に答える
683 参照

c - テトリス関数はCで右に移動します

現在、私は左に移動する機能を持っています

}

正しい動きは単純な変更になると思いましたが、そうであると確信していますが、それほどうまくいっているとは思いません。したがって、明らかに、ピースが左ではなく右にあるかどうかを確認する必要があります。

左が ++ 右なので、右に移動するには -- だと思いますか?

あちこちでいくつかの変更を試みましたが、あまりうまくいかなかったので、コードを完全に理解していないと思い始めています。

誰かがコードが何をしているのかをもっと深く説明できますか (もっと詳細な説明が欲しかったコメントを読むことができます)。

EDIT左または右に移動するための適切なチェックがあります。たとえば、ピースがあるかどうかを確認する