chess 相关问题

这个标签用于国际象棋游戏和让计算机玩它的问题。

尝试绘画时非法争论

我试图在我创建的棋盘上画一个棋子,但不断收到错误,似乎找不到我的图片。 线程“main”中的异常 java.lang.IllegalArgumentException:输入...

回答 1 投票 0

需要一些关于 zugzwang 情况下的空移动修剪的解释

在此位置,zugzwang 位置为白色。他尝试使用 INF 的 beta 值进行空移动修剪,因为这是第一步。 在空移动之后调用函数将类似于...

回答 1 投票 0

如何使用 React 应用修复 PGN 文件/游戏导入

我正在尝试导入 pgn 文件并引发错误,但是如果我将文件重命名为 txt 它可以工作,但我更喜欢它像 pgn 而不是重命名它。 // React 使用 Vite 创建应用程序:npm create vite@lates...

回答 1 投票 0

n 个皇后的快速启发式算法 (n > 1000)

我写了两个程序: 将棋盘上的 n 个皇后放在一起,不会受到回溯算法的任何威胁。但这对于大 n 来说非常沉重。最后你可以运行 100 个皇后。 放在一起...

回答 2 投票 0

使用棋盘的2个输入坐标,识别它们是否交叉了彼此的路径(使用国际象棋游戏的皇后走法)

班级板 { 公共静态无效主(字符串参数[]) { 整数 i,j; int x1 = 0,y1 = 0; int x2 = 0,y2 = 0; int[][] 板 = 新 int[8][8]; x1 = 整数...

回答 2 投票 0

有什么方法可以加快模型的预测速度吗?

我们目前正在使用 keras 和张量流构建神经网络来评估国际象棋位置。我们遇到了单个样本预测速度的问题,它用于......

回答 1 投票 0

取消在单独线程(国际象棋引擎)中运行的搜索

我目前正在使用 C#、Unity 开发我的国际象棋引擎。我的引擎在单独的线程中运行搜索,因此 Unity 主线程在计算时工作正常。为了阻止我的引擎计算得太低...

回答 1 投票 0

Stockfish 与 Symfony Process 一起使用时仅返回一招

我有这段代码,它使用 Stockfish 引擎返回最佳动作。我为它提供了引擎的技能水平和位置的分弦,它应该返回最佳的移动。 我有这段代码,它使用 Stockfish 引擎返回最佳动作。我为它提供了引擎的技能水平和位置的分弦,它应该返回最佳动作。 <?php namespace App; use Symfony\Component\Process\Process; class StockfishService { public function getBestMove(int $skillLevel, string $fen): string { $output = $this->runCommand("uci\nucinewgame\nposition startpos moves 10000\nsetoption name Skill Level value $skillLevel\nposition fen $fen\ngo movetime 10000\n"); $bestMove = $this->extractBestMove($output); return $bestMove; } private function runCommand(string $command): string { $process = new Process(['stockfish']); $process->setInput($command); $process->start(); $process->wait(); if (!$process->isSuccessful()) { throw new \RuntimeException($process->getErrorOutput()); } return $process->getIncrementalOutput(); } private function extractBestMove(string $output): string { $lines = explode("\n", $output); foreach ($lines as $line) { if (strpos($line, 'bestmove') !== false) { $parts = explode(' ', $line); return $parts[1]; // Assuming bestmove is the second part } } throw new \RuntimeException('Best move not found in engine output'); } } 但是每当执行此代码时,无论技能水平如何,它基本上都会返回该位置中最糟糕的动作之一。例如,对于 fen 位置 rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQqk e3 1 1(White pawn to e3),它返回 a7a6,这是一个糟糕的举动。我发现问题是进程结束得太快,所以我在 go 命令后添加了 movetime 10000,但这并没有解决任何问题。关于如何解决这个问题有什么想法吗? 我唯一尝试的就是使用 $process->start() 和 $process->wait() 而不是 $process->run() 这是对我有用的解决方案,希望对某人有所帮助: <?php namespace App; use Symfony\Component\Process\InputStream; use Symfony\Component\Process\Process; class StockfishService { public function getBestMove(int $skillLevel, string $fen): string { $commands = [ "ucinewgame", "setoption name Skill Level value $skillLevel", "position fen $fen", "go movetime 5000" ]; $output = $this->runCommand($commands); $bestMove = $this->extractBestMove($output); return $bestMove; } private function runCommand(array $commands): string { $process = new Process(['stockfish']); $input = new InputStream(); $process->setInput($input); $process->start(); foreach ($commands as $command) { $input->write($command . "\n"); } // Wait for the final output from the 'go' command while ($process->isRunning()) { if (strpos($process->getOutput(), 'bestmove') !== false) { break; } } $input->close(); $process->wait(); if (!$process->isSuccessful()) { throw new \RuntimeException($process->getErrorOutput()); } return $process->getOutput(); } private function extractBestMove(string $output): string { $lines = explode("\n", $output); foreach ($lines as $line) { if (strpos($line, 'bestmove') !== false) { $parts = explode(' ', $line); return $parts[1]; // Assuming bestmove is the second part } } throw new \RuntimeException('Best move not found in engine output'); } }

回答 1 投票 0

命令提示符中不显示国际象棋符号

我正在尝试用 C 语言制作一款可以在终端中简单运行的 2 人国际象棋游戏。我在字体方面遇到了很多问题,所以我只是找到了一种好看的(最重要的是等宽的)字体并且只是广告......

回答 2 投票 0

使用 Java 中的递归将国际象棋骑士的移动模式放入二维数组中

公共课ChessComplete { 私有 int 大小; 私有 int[][] 板; 私有长callNum; public ChessComplete(int size)//以2D数组大小为参数的构造函数 {...

回答 1 投票 0

为父 Unity 提供变换时未创建游戏对象

我正在unity2D中下棋,并尝试将棋子设置为方块的子代,如下面的函数所示,但是它并没有创建新的游戏对象,并且没有错误输出。 私人...

回答 1 投票 0

国际象棋位板走法生成

我正在编写一个国际象棋引擎,并且我正在了解国际象棋引擎如何存储游戏位置(在 64 位位板中)以及如何从它们生成移动。当你得到最终的棋步板时,你会如何...

回答 3 投票 0

chess.js 存在问题,重新加载正在进行的游戏后,不会通过 socket.io 显示有效的动作

我正在使用 chess.js、react-chessboard、socket.io 和 React 编写一个多人国际象棋应用程序,它应该允许用户互相下棋并存储游戏历史记录。我已经拿到了...

回答 1 投票 0

在c中:我的特殊免费功能拒绝工作

一个函数,返回指向网格上每个可能的骑士运动的指针的二维列表。 除了我的空间自由函数在随机位置崩溃之外,一切正常:

回答 1 投票 0

在 Galaxy S23 Ultra 上使用 chess.com 移动应用在线玩游戏时无法屏幕录制我的游戏

当我在 chess.com 移动应用程序上在线玩游戏时尝试屏幕录制游戏时,它不会录制屏幕。 当我检查录音时,它只显示黑屏。 我正在使用 Galaxy S23 Ultr...

回答 1 投票 0

在c中:我的特殊自由函数拒绝工作

一个函数,返回指向网格上每个可能的骑士运动的指针的二维列表。 除了我的空间自由函数在随机位置崩溃之外,一切正常:

回答 1 投票 0

Unity 的 c# 比 console c# 慢很多吗?

我正在开发一些必须要快的东西。(国际象棋引擎)Unity 的 c# 比控制台 c# 慢很多吗? 尽管我实施了一些优化技术,但我的引擎却出奇地慢。它的速度...

回答 1 投票 0

为长时间运行的任务创建一个单独的线程

我正在用 C# 开发我的小国际象棋引擎,我想让我的搜索功能在后台运行。 (这样用户界面仍然可以交互)我检查了一些其他的 stackoverflow 解决方案......

回答 1 投票 0

(竞赛题)计算没有被象攻击的方格数量

我的解决方案如下。 国际象棋中的象是一个棋子,它攻击同一条对角线上(两条对角线上)的所有方格。 Shakhriyar 将 m 个主教放在一个大小为 n * n 的棋盘上。现在他想要

回答 2 投票 0

如何在 C++ 中运行两个可执行文件并分别与它们通信?

所以我正在用 C++ 编写一个国际象棋引擎。该引擎使用通用国际象棋接口(UCI)。这意味着我可以通过控制台与它通信。我在控制台中输入一些命令,它会响应...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.