問題タブ [gomoku]
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.
php - PHPセッションがJQueryAjaxで機能しませんか?
更新、解決済み: この後、更新ajaxで古いバージョンのコードを呼び出していることがわかりました。'boardUpdate.php'の代わりに'boardControl.php'これらはプログラミングを楽しくする種類の間違いです。
ブラウザ五目並べゲーム を書いています。プレイヤーが曲を演奏できるようにするajaxステートメントがあります。
値=ボードの正方形の場所の
入札=ボードID
プレーヤーを識別するためのユーザーログインを作成する前に、サーバー側のphpには一時的な解決策がありました。正方形を作成するプレーヤーを知る代わりに、クリックすると正方形のピースの状態が回転します。
ログイン情報を作成した後、プレーヤーのIDにセッション変数を設定しました。私はajaxリクエスト中にphpからセッションIDを読み取り、そこからどのプレーヤーであるかを把握したいと思っていました。
..。
何らかの理由で、完全なWebアプリを実行すると、コードを削除して循環させた後でも、断片は循環します。さらに、ログイン後、ブラウザにphpページを手動でロードすると、データベースが正しく変更され(そのプレーヤーに属するピースのみが再生されます)、正しい結果が出力されます。
Ajaxで使用すると、セッションが引き継がれないように見えます。それでも、Googleの検索によると、セッションはAjaxで機能します。
更新:私はより多くの情報を提供しようとしています。
ログインは正しく機能します。IDが認識され、ボードの横に印刷して、正しく取得されていることを確認しました。
ajaxリクエストはボードを更新します。渡された値は正しく、firebugのコンソールで確認されています。ただし、ピースをプレーヤー専用に配置するのではなく、それらが属するプレーヤーは、ピースの状態(0,1,2)を循環します。
boardUpdate.phpを手動で参照し、Ajaxから送信された同じ値を入力すると、エコーされた応答に表示される結果は、対応するピースが意図したとおりに毎回再生されることを示しています。
Firefoxを新たにロードした後、ラップトップで同じ結果が得られました。
事前にログインせずにboardUpdate.phpを手動で参照すると、ボードは変更されません(セッションにユーザーが見つからない場合に意図されます)。
session_start()がphpファイルにあることを再確認し、セッションID変数を再確認しました。
この追加情報がお役に立てば幸いです。私はあなたに何を伝えるべきかについてのアイデアが不足しています。完全なコードをロードする必要がありますか?
アップデート2:
ファイアバグでAjaxの応答を確認した後、「play」リクエストは結果を取得せず、ボードは次の「update」まで更新されないことに気付きました。私はまだこれを調べていますが、皆さんのためにここに投稿します。
boardUpdate.php 注目すべき場所は次のとおりです。RefreshBoard(line6)Place Piece(line20)function boardUpdate($ turnCount)(line63)
助けてください、私は必要に応じてより多くの情報を提供させていただきます。よろしくお願いします=)
algorithm - 五目並べ配列ベースの AI アルゴリズム?
はるか昔 (20 年以上前と考えてください)、私は雑誌で五目並べゲームのソース コードに出会い、それを自分のコンピューターに打ち込み、大いに楽しんでいました。
ゲームに勝つのは困難でしたが、コンピューター AI のコア アルゴリズムは非常にシンプルで、多くのコードを必要としませんでした。誰かがこのアルゴリズムを知っていて、それに関する情報源や理論へのリンクを持っているのだろうか.
私が覚えているのは、基本的にボード全体をカバーする配列を割り当てたことです。次に、私またはそれが駒を配置するたびに、駒が影響を与える可能性のあるボード上のすべての場所にいくつかの重みを追加します.
たとえば(覚えていないので、重みは間違いなく間違っていることに注意してください):
次に、配列をスキャンして、最小値または最大値の開いている場所を探しました。
私が曖昧なこと:
- おそらく、私用とそれ自体用の2つの配列があり、最小/最大の重み付けがありましたか?
- アルゴリズムにはもっと多くのことがあったかもしれませんが、その核心は基本的に配列と重み付けされた数値でした
これは誰とでもベルを鳴らしますか?誰かが助けになるものを手に入れましたか?
java - 五目並べの良いミニマックス表現?
五目並べ(5列)ゲームをJavaで個別のプロジェクトとしてコーディングしようとしています。AIの場合、アルファベータプルーニングでミニマックス関数を使用することがこれに取り組む良い方法であることを理解しています。ただし、これがどのように機能するかを想像するのに少し問題があります。
私の質問はこれです:ミニマックスツリーのノードの良い表現は何ですか?
私の評価関数は、ボード上のすべての空きスペースを「重み付け」すると思います。次に、そのボードから最小値決定木のノードとして最良の値を取得します。私は正しい方向にいますか?
そして、他のヒントも大歓迎です!前もって感謝します!
minimax - ミニマックス/アルファベータアルゴリズム-五目並べでAIの動きを見つける
ミニマックス決定木は、ボードゲームにAIを実装するための優れたアプローチであることを理解しています。現在、五目並べというゲームを実装しようとしています。しかし、私が混乱していることが1つあります。
私は周りを見回しましたが、ほとんどすべてのMinimax/AlphaBetaアルゴリズムが整数を返すようです。特に私にとっては、eval(bestGomokuBoard)の戻り値です。優勝ボードの座標をどのように見つけるのですか?
これまでに行ったことは次のとおりです。空のスペース(0)、コンピューター(1)、およびプレーヤー(2)を表す整数の20x20配列があります。オーバーヘッドを削減するために、ミニマックスツリーの各ノードは、より大きな配列(より小さな参照フレーム)の9x9配列表現です。私のeval関数はintを返し、minimax/alphabetaアルゴリズムはintを返します。AIの動きの座標を見つけるにはどうすればよいですか?
そして、よろしくお願いします!
artificial-intelligence - 五目並べをプレイするための良いAI戦略は何でしょうか?
五目並べの変種であるゲームを書いています。基本的に、巨大なボード上の三目並べ。
誰かがゲームの優れたAI戦略を知っているかどうか疑問に思います。私の現在の実装は非常に愚かで、長い時間がかかります(O(n ^ 3)、移動するのに約1〜2秒):
java - クリックするとJButtonに楕円を描画します
私は自分のJavaクラスのプロジェクトに取り組み始めました-LAN五目並べ/5連続。ゲームボードは、ボタン(JButton)で満たされた2次元配列で表されます。イベントハンドラー(クラスclickHandler)を使用して、クリックしたボタン(clickHandlerオブジェクトのパラメーター)に楕円を描画します。私の次のコードはうまくいきませんでした(変数gのnull値を取り除く方法がわかりません)...アドバイスをいただければ幸いです。大いに感謝する。
(GUIを作成するクラス-ボタンでいっぱいのゲームボード-各ボタンに新しいアクションリスナー-clickHandlerのインスタンスを割り当てます)このように:
android - Android ゲームでのピンチ ズーム/ダブルタップ ジェスチャ
私は現在、ユーザーが 15x15 の正方形のグリッドに自分の動きを入力する必要があるゲーム (五目並べ) を作成しています。私は GUI の経験があまりないので、プレーヤーが移動したときに背景画像を空白から X または O に変更する、個々の正方形に対応する多数の ImageView を作成するのが良い方法だと考えました。
ただし、これは場合によっては非常に難しい場合があります (指が大きすぎる、または画面が小さすぎる) ため、ピンチしてズームするか、ダブルタップしてズームする機能を実装したいと考えています。
私の質問は: そのような機能を ViewGroup に実装して、その中のすべてのビューを拡大することは可能ですか? はいの場合、このゲームに GUI を実装する別の方法はありますか?
android - Android の内部にデータを保存すると、データが台無しになります
私は現在、AI の転置テーブルを作成する必要があるゲームに取り組んでいます。Hashtable への が検討中の状態であり、それに対応することが最適な次の手にHashtable
なるように実装しました。key
value
しかし、Hashtable を Android の内部ストレージに保存して、次に復元すると、データが保存されているように見えますが、 (つまり、ゲームの状態) は、以前のインスタンスで保存したものとkeys
は異なります。keys
データを保存して復元する方法は次のとおりです。
hashCode()
同じ状態に対して同じ値を何度も返し続けるため、実装に問題はありません。
転置テーブルを保存/復元すると、データが台無しになると思われます。これは、2 つのランタイムをログに記録し、最初のランタイムでhashCode()
、テーブルに追加される 2 つの状態に対して 3964 と 3029 を返さなければならなかったためです。ただし、ファイルからテーブルを読み取るときに、hashCode()
9119 が 2 回返されました。
データの保存・復元に問題はありませんか?