問題タブ [reversi]

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 に答える
5963 参照

java - Java リバーシ ゲーム タイルの反転

Javaでリバーシ(オセロ)ゲームを作っています。以下に含まれるのは、タイルを選択したピースの左、右、下、または上に反転する必要がある場合の私の関数です。何らかの理由で、垂直反転が開始されるたびに、常に正しく機能します。ただし、水平方向の反転が開始されると、(何かを行う必要があるときに) 何もしないか、反転するはずのない空白のタイルが反転することがあります。ゲームボードは、BlankPiece と呼ばれる拡張 JButton を使用した 8 x 8 のマトリックスです。関数に加えて投稿します。このゲームをバグなしで実行するためのより効率的/より良い方法を提案できる人はいますか? どんな助けでも大歓迎です!説明が必要な場合は、質問してください。

以上が私の 4 つの機能です (西、東、北、南に 1 つ)。BlankPiece は以下のとおりです。

問題は、checkflip が呼び出されないことではなく (それらはすべて同じ正しいパラメーターで呼び出されます)、checkFlipRight または CheckFlipLeft 関数の何かです...

編集: リクエストによる完全な作業例。

2 つのファイルを含むフォルダーを作成する

1 つは Reversi.java と呼ばれ、もう 1 つは BlankPiece.java です。

リバーシ.JAVA:

BLANKPIECE.JAVA

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

android - MiniMax リバーシの実装

私はリバーシ/オセロ ゲームで MiniMax アルゴリズムを実装しようとしています。私が書いた関数は完全に正常に見えるので、かなり行き詰っています。最適な動きを見つける関数は次のとおりです。

各移動の後、アクティブなプレーヤーが変更されます。GameView の onTouchEvent メソッドでは、まずプレーヤーが動き、次にプレーヤーが AI である WHITE に変更されて動きます。ツリー内で最適な動きを検索してから、1 つの動きを実行する必要があります。代わりに、いくつかの奇妙な動きを実行します。ブランチごとにボードの新しいコピーを作成する理由がわからないので、メインのゲームボードが変更される理由がわかりません。

何か案は?

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

java - オセロ/リバーシ ミニマックス アルゴリズムの不具合

私は最近、Java で Android 上の標準 8x8 オセロ (リバーシ) ゲームの MiniMax アルゴリズムに取り組んでいます。すべてのログはすべてのノードに対して正しい値を示しているように見えますが、アルゴリズムは最適な動きを選択していません (私は動作を他の誰かのアプリケーションと比較しましたが、ある時点でそれらは異なります)。

飲み込むコードがかなりありますが、残念ながら、これはできると思います。

まず、私の Algorithm クラス (そのクラスから MiniMax アルゴリズムを継承します) :

もちろん、findBestMove 関数は子 MiniMax クラスでオーバーライドされます。

アルゴリズムは、現在の Game インスタンスでインスタンス化されます。

私は本当に研究努力をしましたが、問題をグーグルで検索するだけで、再帰関数を追跡してエラーを発生させるのは簡単ではないことを認めなければなりません。そのため、さらなる最適化 (アルファ/ベータなど) でかなり行き詰まっており、本当に、本当にスピードアップする必要があります。

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

android - リバーシゲームのアルファベータ

リバーシ ゲームで AI 用の MiniMax アルゴリズムを実装しており、Alpha-Beta 剪定方法を追加しようとしています。私が正しく理解すれば、AI は通常の MiniMax とまったく同じ動きを選択するはずですが、枝を切り落とすことで、短時間で済みます。しかし、AI は非常に愚かな方法でプレイし、すべてのブランチを調べようとしましたが、その理由を見つけることができません。記録のために、アルファベータなしの実装は正常に動作します。関数は次のとおりです。

コード全体は非常に膨大なので、ここには貼り付けません。見るべきだと思ういくつかの関数/クラスについて尋ねるだけで、すぐに貼り付けられます。それに関するヒントをいただければ幸いです。

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

java - Java のリバーシでゲーム ピースを反転する

ゲームでタイルを正しく裏返すことができません。私はこれに数え切れないほどの時間を費やしてきましたが、これを理解できないようです. 他のリバーシ コード例を確認しましたが、残念ながらサイコロはまだありません。GUI で占有されている BoardPiece をクリックしても、プログラムはそれが占有されていることを認識しないことに気付きました。どんな批判や助けも歓迎します! 前もって感謝します。

クラス インデックス {

}

クラス GameBoard は JPanel を拡張します {

}

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

javascript - javascriptを使用してリバーシボードの空き場所を検出する

私はリバーシ (オセロ) ゲームを開発していましたが、ボード上の空の場所を検出するシナリオに直面しました。と書きましたが正確ではありません。

デモ: http://jsfiddle.net/huL3qoa3

ボード上の任意の場所をクリックすると、その位置が空かどうかを示すアラートが表示されます。うまくいかないのですが、何が問題なのですか?

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

python - ゲームをテストする Python スクリプト

私は reversi.py というタイトルのゲームを作成しました。テストを支援するスクリプトを作成したいと考えています。ゲームはAIベースで、実行にはかなりの時間がかかります。ゲームを実行してその結果をファイルに出力するスクリプトを書きたいと思っていたので、他のことをして戻ってくる間にゲームを x 回実行できるようになりました。スクリプト ファイルからゲームを呼び出そうとしています。これが私がこれまでに持っているものです:

前もって感謝します!