問題タブ [minesweeper]

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 投票する
2 に答える
560 参照

vb.net - 数値を生成する VB.NET

私は掃海艇ゲームを開発していて、地雷を割り当てましたが、それらの周りの数字を生成する必要があります。私はすでにコードを開発しましたが、機能していないようです。私が DataGridView を使用していることを言及することは重要です。

私のコードは次のようになります。

私の変数を宣言する:

鉱山の初期化:

鉱山周辺の数値の生成:

DataGridView tablw のマトリックス番号に正しい画像を割り当てます。

異なる数の可能性:

私のエラーは、数値を生成する場所のどこかにあると思います。よろしく、ジョアオ。

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

artificial-intelligence - AI マインスイーパ プロジェクト

マインスイーパ ソルバーを実装する必要があります。ルールベースのエージェントの実装を開始しました。特定のルールを実装しました。処理されている現在のセル (周囲のセルに関する情報を含む) に最適なルールを選択するためのヒューリスティック関数があります。したがって、選択された各セルに対して、周囲の 8 つのセルに対して、それらを開くか、マークするか、何もしないかを決定できます。つまり。現時点では、エージェントは明らかにされたセルを入力として取得し、周囲のセルをどうするかを決定します (現時点では、エージェントはどのセルを処理するかを決定する方法を知りません)。

私の質問は、どの細胞を処理するかを決定するために実装するアルゴリズムは何ですか?

最初の移動で、エージェントがコーナー セル (または、最初の移動のルールに従って他のセル) を明らかにするとします。その後どうする?

ある種の検索を実装する必要があることを理解しています。私は多くの検索アルゴリズム (BFS、DFS、A-STAR など) を知っていますが、それは問題ではありません。ここでこれらの検索を使用する方法がわかりません。

人工知能の原則である最新のアプローチでそれを実装する必要があります。

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

java - setIcon() を右クリックして爆弾をマーク - マインスイーパ

私はプログラミングが初めてで、マインスイーパ GUI を作成しようとしています。JToggleButton を右クリックすると、ゲームは完全に機能し、ボタンに爆弾の「B」が表示されましたが、マウスリスナーで setText() を setIcon() に置き換えると、左クリックと右クリックの両方が発生したときにアイコンが表示されます。setText() のとき、この問題はありませんでした。

アクションリスナーに btn[y][x].setIcon(null) を追加しました。これにより、左クリックしたときにフラグアイコンが短時間だけ表示されますが、まったく表示されないようにしたいです。

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

java - マインスイーパ ゲームで空のセルを見つけると、再帰スタック オーバーフロー エラーが発生する

編集:解決しました!「else if」の下に空白を返す「else」ステートメントを含めるのを忘れただけです

私は Java を使用しており、マインスイーパ ゲームを作成しています。

空のセルをクリックすると、隣接するすべての空のセルを開こうとしています。このサイトで同様の質問を見ましたが、どこが間違っているのかわかりません。私はstackOverflowを取得しています。

どんな助けでも大歓迎です。

以下では、'buttons' 配列はボタンの 2D 配列であり、'cells' 配列はセル オブジェクトの 2D 配列です (そのセルの状態を決定するために使用されます)。明らかに、各セルはボタンに対応しています。

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

java - 押された Jbutton にテキストを設定する

私は Java (およびほぼすべての言語) の新人です。課題でマインスイーパ ゲームを作ろうとしていますが、まだベータ段階です。ただし、ボタンを押すと地雷を「0」として表示する方法に行き詰まっています。2D 配列を使用して Jbuttons を作成しましたが、必要な特定のボタンに「0」を付けることができないようです。

これが私のコードです(醜さ/おそらく非効率性を許してください)GUIに関しては、私は本当に無知です。

0 投票する
3 に答える
1572 参照

objective-c - Objective-C の可変配列。配列要素を変更/操作する方法は?

400 個の整数の配列を作成しようとしています (20 x 20 行列のコンテキストで処理されます)。すべての要素が 0 に初期化され、40 個のランダム スポットが整数 9 を持つように選択されます (掃海艇のコンテキストで地雷として指定されます)。何らかの理由で、私のプログラムは次の行でハングします。

[map replaceObjectAtIndex: mine_placement withObject:[NSNumber numberWithInt:9]];

これに続いて、各要素ごとに地雷の近接度を蓄積するルーチンがあり、最後のビットはコンソール (ログ) に送信する文字列オブジェクトを作成します。Objective-C の専門家から、私が間違っている点と、これが正しく出力されない理由について聞きたいです。それはうまくビルドされますが、出力はありません。スレッドが開始されているというメッセージが表示されます。私は Obj-C を初めて使用するので、この問題についての考えは素晴らしいでしょう。

メインの内容は次のとおりです。

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

algorithm - マインスイーパ ソルバーの構築に適したメタヒューリスティックはどれですか?

マインスイーパ ソルバーを作成する必要がありますが、どこから始めればよいかわかりません。問題は、アリのコロニー最適化、シミュレートされたアニーリング、遺伝的プログラミングなどのメタヒューリスティック アルゴリズムを利用する必要があることです。インターネットで関連資料を見つけましたが、どれが役に立ち、どれが役に立たないかはよくわかりません。 、「完璧にフィットする」ものは何もないからです。以前にやった人が書いた記事に従わずに、メタヒューリスティックアルゴリズムを自分で調整する必要があるようです。だからこそ、始める前に知っておくべきことをすべて知りたいのです。

  1. 問題をメタヒューリスティックを使用して解決するのに適したものにするために、問題を定式化するにはどうすればよいですか? 基本的にCSP(制約充足問題)であることは知っていますが、その知識を使用してそれを解決するための適切なアルゴリズムを見つける方法がわかりません。
  2. 問題を解決するのに適したメタヒューリスティック (およびその理由) はどれですか?
  3. 私の問題に固有の注意事項はありますか?
0 投票する
2 に答える
3635 参照

python - Improving my Minesweeper solving algorithm

I have implemented in Python an algorithm for solving the game 'Minesweeper'. The program works as follows:

Say that the solver clicks a square named 'a'. For sake of example let the number thus revealed equal 2. The neighbours of the square which are as yet unclicked are (again by way of example) named 'b' and 'c'. The program then associates the square with the expression [2, {'b', 'c'}], and strips 'a' from all other expressions. The deduction of which squares are mines and which are not proceeds by pairwise simplification of such expressions under two circumstances.

  • If the squares in one expression are a subset of the squares of the other expression:

    /li>
  • If all the squares in one expression are established to be mines:

    /li>

Then, for some expression X, if X[0] == 0, we are free to click all squares named in X[1], and if X[0] == len(X[1]), then we can flag them.

I am, however, struggling to identify which pairs of expressions to attempt to simplify. My current approach is to maintain a stack of squares; whenever a square is clicked, or has its expression successfully simplified, it is added to the stack (if it is not already there). When a square is popped from the stack, simplification is attempted between its expression (X), and any other expressions Y such that X[1] & Y[1] != set(). The algorithm terminates when the stack is depleted. Currently however, though this works quite well, it is not capable of correctly solving all unambiguous configurations, and how well it performs on a given board changes significantly if I replace the stack with a queue, or use some algorithm to determine which square to pop!

I would be very much appreciative for any examples of precedent to my approach, or avenues of potential exploration.

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

c# - マインスイーパ アルゴリズムの改善 c#

マインスイーパ ゲームを作成していますが、これまでのところ完全にプレイ可能で、ゲームを終了できます。しかし、私の解決アルゴリズムは最悪です。それはかなり厄介で、おそらくループを使用して、よりクリーンな方法を探していますが、何も考えられません。

これが私が現在使用しているものです:

4 つのグローバル リストがあります。

これは、リストを利用してゲームを解決する方法です。

メソッド全体: http://pastebin.com/7J2Fc8yw

最も重要な部分:

基本的に、これは私が助けを必要としている部分です。動作しますが、面倒です。ループなどを使用する必要があることはわかっていますが、これをループしてクリーンにする方法がわかりません。基本的には、押したタイルの周囲にある 8 つの隣接するタイルをすべて見つけます。何か案は?ありがとう :)