自由型象棋分析程序

news/2025/10/7 16:58:35/文章来源:https://www.cnblogs.com/funwithwords/p/19128625
Screenshot_20251007_164231

可以键盘操作。比如鼠标移到某个位置,按r出来个黑车。空格删掉棋子。还可以自己吃自己,空白吃自己等,我感觉摆残局最方便。

程序很乱。鄙人之前所发贴的拼凑版。再贴部分代码:

httpd.py

# !/usr/bin/python3
from ee import *
from http.server import *
from threading import *
from urllib.parse import unquote
from random import randintclass HTTPReqHandler (SimpleHTTPRequestHandler):def __init__ (m, r, c, s): super().__init__(r, c, s, directory='www')def do_GET (m):def _200 ():m.send_response(200)m.send_header('Content-type', 'text/plain')m.end_headers()path = m.requestline.split(' ')[1]if path.startswith('/ucci?'):ee.send(unquote(path[6:]))_200()m.wfile.write(ee.recv().encode())elif path.startswith('/rpu'):n = randint(0, 6812)f = open('pu.txt', 'rb')for i in range(n): f.readline()_200()m.wfile.write(f.readline())f.close()else: super().do_GET()def do_HEAD (m): super().do_HEAD()def do_POST (m): super().do_POST()def end_headers (m): # callbackm.send_header('Cache-Control', 'no-store')super().end_headers()def httpd_thread ():port = 8000svr_addr = ('', port)httpd = ThreadingHTTPServer(svr_addr, HTTPReqHandler)print('Listening at', port)httpd.serve_forever()Thread(daemon=1, target=httpd_thread).start()try:while True: input()
except BaseException: pass
View Code

JS

function ajax(req, param, cb){let ax = window.XMLHttpRequest ?  new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP')ax.onreadystatechange = function(){if(ax.readyState != 4 || ax.status != 200) returncb(ax.responseText)}ax.open('GET', req + encodeURIComponent(param), true); ax.send()
}function move (who, mv) {ucciout.innerText = 'busy'ajax('/ucci?', 'position fen ' + _brd2fen() + ' ' + who + '\ngo 999', (s)=>{ucciout.innerText = slet i = s.indexOf('\nbestmove')if(i === -1) return// 'b' - 'a'=NaN; '9' - '0'=9let a = 'a'.charCodeAt(0)fx = s.charCodeAt(i+10) - atx = s.charCodeAt(i+12) - afy = '9' - s.charAt(i+11)ty = '9' - s.charAt(i+13)//console.log(fx, fy, tx, ty)if (mv) { // 走棋而不是仅分析
      recMove(fx, fy, tx, ty)_brd[ty][tx] = _brd[fy][fx]; _brd[fy][fx] = ' '; draw_all()}})
}function rpu () {ajax('/rpu', '', (s)=>{pad.value = sloadUBB()})
}let dic = JSON.parse(`{"r":"车", "n":"马", "c":"炮", "b":"象", "B":"相",
"a":"士", "A":"仕", "k":"将", "K":"帅", "p":"卒", "P":"兵"}`)
dic['R'] = dic['r']; dic['N'] = dic['n']; dic['C'] = dic['c']function recMove(fx, fy, tx, ty) {let c = _brd[fy][fx]if (c === ' ') returnlet isRed = c < 'a'let d = fy - tyif (d < 0) d = -ds = dic[c]if (isRed) {let x = "九八七六五四三二一"s += x[fx]if (fy === ty)s += "平" + x[tx]else {s += (fy > ty) ? "进" : "退"if ("RCPK".includes(c))s += "零一二三四五六七八九"[d]elses += x[tx]}}else {let x = "123456789"s += x[fx]if (fy === ty)s += "平" + x[tx]else {s += (fy < ty) ? "进" : "退"if ("rcpk".includes(c))s += "0123456789"[d]elses += x[tx]}}if (!moves.value.length) mc = 0moves.value += s + ' '
}
View Code

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/930623.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站建设数据石家庄建站公司

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了Icon这种Widget&#xff0c;本章回中将介绍 如何使用字体图标。闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 本章回中介绍的字体图标是指Icon中使用特殊的字体来充当图标&#xff0c;字体图标可以看作…

luogu P1648 看守

题目大意 给定 \(d\) 维坐标的 \(n\) 个点,每个点表示为 \(d\) 个数值,求两点间最大距离 \(d\) 维两点间距离为 \(|x_1-y_1|+|x_2-y_2|+...+|x_d-y_d|\) Sol 我们随便找两个点 \(A\),\(B\) 作为演示: \[dis_{A,B}=|…

题解:P11219 【MX-S4-T3】「yyOI R2」youyou 的序列 II

引理 先手获胜当且仅当先手可以在忽略后手的情况下操作完整个区间,且后手可操作的部分的长度小于等于 \(c1\)。 注:后手可操作的部分指后手能操作的最靠左的点到后手能操作的最靠右的点的距离。 证明 充分性: 在满足…

旧宫网站建设wordpress特效-页面加载动画圆圈

什么是掩膜&#xff1f; 在OpenCV中&#xff0c;掩模&#xff08;mask&#xff09;是一个与图像具有相同大小的二进制图像&#xff0c;用于指定哪些像素需要进行操作或被考虑。掩模通常用于选择特定区域或进行像素级别的过滤操作。 OpenCV 中的很多函数都会指定一个掩模&…

前端HTML contenteditable 属性使用指南 - 教程

前端HTML contenteditable 属性使用指南 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

太原建站模板企业网站建设的几种形式

前言 好久都没有写博客了&#xff0c;由于博主之前一直都在上班处于加班的阶段&#xff0c;所以根本就没有时间去学习。现在请假回到学校写论文&#xff0c;有时间来学习了。 所以会不断的进行博客的更新&#xff0c;以及分享我在公司学到的一些新的技术&#xff0c;希望大家多…

Seismic Unix 基础使用

目录基本语法结构数据格式线性编辑命令与非线性编辑命令 基本语法结构su_command [input] [parameter] [output]su_command是处理地震数据的核心命令。 [input]是输入参数,可以是SU格式的数据文件,也可以是其他命令的…

2025实验室净化厂家/实验室装修厂家/实验室建设厂家权威推荐榜:专业设计与洁净技术实力之选

在现代科研与产业升级的双重驱动下,实验室净化环境的质量直接关系到研发成果的准确性与生产安全。随着生物医药、精密制造等领域的快速发展,企业对洁净空间的技术要求日益严格,不仅需要符合国际标准的设计方案,更追…

做网站费用怎么核算关键词与网站标题

人工智能(AI)每天在以惊人的速度发展。这项技术在2018年已经取得了巨大的成功&#xff0c;简化医疗保健业的工作流程&#xff0c;降低制造业的间接费用&#xff0c;并减少教育业的行政工作量。现在是2019年&#xff0c;每天似乎都有一家新的AI初创公司冒出来&#xff0c;致力于…

网站内容建设总结网站反向绑定域名

目录 认识 Spring MVC什么是 Spring MVCMVC 的定义 Spring MVC 注解的运用1. Spring MVC 的连接RequestMapping 注解 2. 获取参数获取单个参数获取多个参数传递对象表单传参后端参数重命名RequestBody 接收 JSON 对象PathVariable 获取 URL 中的参数上传文件 RequestPart获取 C…

贵阳网站定制电话做装修网站

1 第2.1节&#xff1a;AWK脚本结构 1.1 第1个awk脚本 假设有如下的数据待处理&#xff0c;需要将第2列提取出来&#xff1a; #, 名称, 大小, 类型, 修改, 属性 1, COMMIT_EDITMSG, 331 bytes, 文件, 24/09/16 08:42:19, -a----- 2, config, …

有公司可以做网站升级ipv6wordpress 商城主题 汉

本文将为您描述layui表格字段表格显示不全(自适应),具体操作方法:好记性不如烂笔头。本来就是没什么好记得东西&#xff0c;下次再用时已经想不起来了。问题如下&#x1f41f;使用layui表格&#xff0c;表格字段显示不全&#xff0c;如果超出分配的位置&#xff0c;就会显示省略…

网站主机建设方案三合一网站cms

目录 NLP自然语言处理 的RNN、Seq2Seq与attention注意力机制 RNN循环神经网络 前馈网络入门 前馈网络 循环网络 多层感知器架构示例 循环神经网络的运作原理 展开 RNN seq2seq模型 Attention&#xff08;注意力机制&#xff09; 总结 引用 NLP自然语言处理 的RNN、…

简单搭建Ajax基础应用

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

修改注册表,实现电脑小键盘开机自启(NumLock灯常亮)

每次开机,小键盘(NumLock键)都需要手动开启才能使用。现分享一套只需通过修改注册表,就能让小键盘开机自启的方案。无需调整BIOS,快来看看吧。 1、打开注册表 首先 Win + R 同时按,打开运行,接着输入 regedit …

网站建设开票税收分类奇缦科技珠海网站建设优化

作者:CSDN @ _养乐多_ 本文详细记录了从Excel读取用于训练机器学习模型的数据,包括独立变量和因变量数据,以供用于机器学习模型的训练。这些机器学习模型包括但不限于随机森林回归模型(RF)和支持向量机回归模型(SVM)。随后,我们将测试数据集应用于这些模型,进行预测和…

06627网页制作和网站建设淘宝 网站开发 退货

工业以太网由于其固有的可靠性、高性能和互操作性&#xff0c;已经渗透到工厂车间&#xff0c;成为自动化和控制系统的首选通信协议。近年&#xff0c;工业以太网的市场份额已经超过了传统的现场总线协议&#xff0c;总线协议通常需要多个独立和专有的布线设施。为了满足工业环…

旅游包车网站最新模板东莞常平医院网站建设

目录 观察者模式&#xff08;Observer Pattern&#xff09; 实际应用 股票价格监控系统 发布-订阅系统 总结 观察者模式&#xff08;Observer Pattern&#xff09; 观察者模式是一种行为型设计模式&#xff0c;它定义了对象间的一对多依赖关系。当一个对象的状态发生改变…

多Agent协作入门:基于A2A协议的Agent通信

本文介绍了A2A的基本概念以及和MCP的关系,然后通过一个Hello World案例介绍了如何快速开始一个A2A Demo,相信我们可以有一个快速的感性认识。大家好,我是Edison。 之前我们学习了Semantic Kernel中的一些常见的编排…

完整教程:nav2笔记-250603

完整教程:nav2笔记-250603pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", …