9月17日,2018 世界人工智能大会在上海拉开帷幕.在 SAIL 榜单入围项目中,我看到了小爱同学.小马智行.微软小冰.腾讯觅影等等,这不仅让我大开了眼界,也不禁让我感慨 AI 的发展神速.犹记得去年在中国乌镇围棋峰会上,AlphaGo 与排名世界第一的世界围棋冠军柯洁对战,以 3 比 0 的总比分获胜,那时候只感觉这条“狗”真牛. 这也让我回想起了更年少打“人机”的时光——“人机”模式总是很简单,电脑很弱,给玩家的体验并不好.我也曾给设计师出过加强电脑实力的主意——这些主意听起来不错,但不足…
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6589025 学习Android系统开发之余,编写了一个小游戏--交互式人机对战五子棋,自娱自乐.之所以称之为交互式人机对战五子棋,一是因为在进入人机对战模式这前,你可以任意设置好开局,同时,在对战过程中,你可以看到机器的思考过程,还可以标识出每一个落子点的优劣势:二是因为可以为机器增加游戏经验,使得机器越来越聪明.希望喜欢五子棋的同学能够喜欢,…
五子棋工作文档 1说明: 这个程序在创建初期的时候是有一个写的比较乱的文档的,但是很可惜回学校的时候没有带回来……所以现在赶紧整理一下,不然再过一段时间就忘干净了. 最初这个程序是受老同学所托做的,一开始的时候要求要人人对战和人机对战,但是大家都很明白,所谓的人人对战就是简单那的GDI绘图罢了,那些基础函数用好了自然没问题.而人机对战则需要一定的棋盘分析能力,做起来还是很复杂的.当时受时间限制,第一个版本是我用了两天时间做的一个人人对战,直接就给她发过去了,用来应付她的实习,因为我当时也不确定人…
本文代码基于 python3.6 和 pygame1.9.4. 五子棋比起我之前写的几款游戏来说,难度提高了不少.如果是人与人对战,那么,电脑只需要判断是否赢了就可以.如果是人机对战,那你还得让电脑知道怎么下. 我们先从简单的问题来看. 开端 画棋盘 首先肯定是要画出棋盘来,用 pygame 画出一个 19 × 19 或 15 × 15 的棋盘并不是什么难事,这在之前的文章中已经多次用到,就不赘述了. 画棋子 需要说一下的是画棋子,因为没找到什么合适的棋子图片,所以只要自己来画棋子.我们用 py…
要想实现人机对战,就必须让电脑自动下棋,而且要知道自动去查找对方的棋子,看看有没有可以挑一对的,有没有可以夹一个的,这样下起来才有意思. 当电脑用户下完棋后,电脑应立即搜索用户的棋子,然后如果没有被吃的,就再随机走一个棋子(要想让电脑成为下棋高手就不能随机下棋,要考虑下棋后会不会再被对方吃掉等等,这里只简单做随机下子了). 完整<五子飞>游戏人机对战:http://www.lyout.com/projects/fiveflychess/FiveflyChess8.htm // 查找是否有可挑的…
indexhtml <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>五子棋</title> <meta name="viewport" content="width=device-width"> <!-- 适应移动屏幕 --> <lin…
1 """五子棋之人机对战""" 2 3 import random 4 import sys 5 6 import pygame 7 import pygame.gfxdraw 8 from pygame.locals import * 9 10 from checkerboard import Checkerboard, BLACK_CHESSMAN, WHITE_CHESSMAN, offset, Point 11 12 SIZE = 30…
Visual Studio 2012太强大了,居然能自己会去提取Ext JS的类的属性和方法,从而实现只能提示.下面就来介绍一下实现这个功能. 在Visual Studio 2012中随便创建一个Web项目,我创建了一个空的Web项目,目录结构如下图所示: 关键就是Scripts中的_references.js文件,文件的内容如下: /// <reference path="ext-all-dev.js" /> 这个和VS2010中实现只能提示的原理一样.需要注意的是ext…
最近做了五子棋,记录下自己完成五子棋的人机对战的思路. 首先,思路是这样的:每当人手动下一颗棋子(黑子)的时候,应当遍历它周围棋子的情况,并赋予周围棋子一定的权值,当在机器要下棋子(白子)守护之前,会遍历整个棋盘的权值情况(棋盘的权值存在一个二维数组中),从中找出权值最大的点坐标,并下子(白子). 这样的话,问题就集中在两个方面了,一个是:如何遍历黑子周围的棋子情况? 另一个是:如何设定权值? 首先,是设定权值.这个没有固定的设定方案,可以先试着设定,然后,尝试效果后(主要是白子的攻防情况是否合…
std::hash实现太简单分布不匀(金庆的专栏 2017.5)#include <iostream>#include <functional>using namespace std;int main(){    std::hash<int> hasher;    cout << hasher(2) << endl;    cout << hasher(3) << endl;    cout << hasher…
python3 井字棋 GUI - 人机对战.机器对战 功能 GUI界面 人机对战(可选择机器先走) 机器对战(50局) 流程图 内核 棋盘 [0][1][2] [3][4][5] [6][7][8] 最佳下棋顺序: best_way = [4,0,2,6,8,1,3,5,7] 估价函数(以X为对象) 可以赢的行数 +1 可以赢的行数上有自己的棋子 +2 可导致自己赢 +2 可导致对手赢 -2 判断赢局 win_chess = [[0,4,8],[2,4,6],[0,1,2],[3,4,5],[…
GitHub地址: https://github.com/daleyzou/wobuku 这是自己大一学完c++后,在课程实践中写过的一个程序,实现象棋人机对战的算法还是有点难的, 自己当时差不多也是写了两个月左右吧!当时看书又有很多问题得不到解决,所以就在网上找了一个视频跟着写. 当然,这其中有很多功能都是自己扩展的. 我把视频分享出来,希望能对新手有帮助吧! 视频地址:链接:https://pan.baidu.com/s/1pIp6UMJ6LXsuJ3GT80NGfw 密码:9k8y 注意:…
原文:抛砖引玉 [镜像控件] WPF实现毛玻璃控件不要太简单 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Vblegend_2013/article/details/83447420 源码已封装成 MirrorGrid类 可以直接在XAML里添加 根据需要可以把Grid 改为  button border等控件 注意 Target必须为当前控件下层的控件对象   加个BlurEffect就是毛玻璃效果 <!--玻璃层控件--> <lo…
悟空 种树比较好的时间是十年前,其次是现在. 自主开发了Java学习平台.PMP刷题小程序.目前主修Java.多线程.SpringBoot.SpringCloud.k8s. 本公众号不限于分享技术,也会分享工具的使用.人生感悟.读书总结. 夜黑风高的晚上,一名苦逼程序员正在疯狂敲着键盘,突然他老婆带着一副睡眼朦胧的眼神瞟了下电脑桌面.于是有了如下对话: 老婆:这画的图是啥意思,怎么还有三角形,四边形? 我:我在画CAS的原理,要不我跟你讲一遍? 老婆:好呀! 案例:甲看见一个三角形积木,觉得不好…
大家有没有这样的感受,一涉及XML文档操作就得百度一遍.是不是非!常!烦!.各种类型,各种方法,更别提为了找到一个节点多费劲.本来想写个XML操作的工具方法,写了两行一想既然XML文档是有规律的,如果抽象成一个树形结构的类,查找节点是不是就可以用lambda了,创建修改都是操作类,那不是好用得飞起!说干就干,经过两天打磨,终于是大功告成.系统默认的XML文件相关操作我就不吐槽了,来看看怎么飞起的吧. 设计思路: 写着好多啊,简单来说就是把XML标签分为两类:XmlChildTag子标签和XmlB…
我是波浪,我有起伏,我有大波与小波(坏笑中...) 最近改版网站,一般也不会去写动画,但是有些网站还是需要的,故拿出一个较简单的动画出来分享,很简单很简单. 原理简单阐述 其实很简单,使用一张美工做好了的2400px宽度的3个不同起伏的波浪,然后自己合成为一张[精灵图片](有助于一起加速加载和同时加载) 有了素材就好办了,使用一个容器把3个div背景的波浪堆在一起,然后使用css3的偏移进行移动,当然左右和上下都要,然后慢慢调整为一个适合的时间和延迟. 废话不多说,先上演示地址:http://s…
对于客户端同学开发来说,写一段代码想在真机上看看,是非常容易的. 那么在这么一个大前端的环境下,客户端开发想写点html和js代码,又想在手机上看看效果,怎么办呢? 需要以下几个步骤: 大体流程:1. 安装webstorm,并设置webstorm,2,安装Charles,并设置charles.3. 设置手机代理. 1. 电脑端安装webstorm或者其他前端开发工具(webstorm的工程运行起来,是以localhost:开头的,帮你建好一个localhost(即127.0.0.1.:63342…
1.下载tomcat https://tomcat.apache.org/download-80.cgi 选择tar.gz.下载完大概9495kb大小的压缩包 2.将文件从Windows复制到CentOS虚拟机上 学习许久之后回来更改正确方法: 解压tar -zxvf tomcat压缩包 -C 路径 然后更改配置文件,这样就不会出现下面的权限问题,第一次用Linux没有经验,用win-SCP现在看起来太沙雕了 使用WinSCP软件 1.用winscp在CentOS根目录创建文件夹wocloud,…
如今,一些iPhone和iPad机型拥有Face ID功能,此功能作用允许用户通过面部识别来解锁设备.该功能还不能在Mac上使用,但是国外媒体于7月27日报道称,在公测第三版的macOS Big Sur上找到了TrueDeph相机的引用,这表明苹果可能将面部识别技术引入其电脑中. 图1:MacBook Pro 其实,三年前苹果就已经计划将Face ID加入到Mac系列产品中.在2017年苹果递交地专利中提到如何通过Mac的相机来实现人脸识别.该专利显示,苹果会在Power Nap中新增一项功能,…
"Dlib 是一个现代化的 C ++ 工具包,包含用于创建复杂软件的机器学习算法和工具 " .它使您能够直接在 Python 中运行许多任务,其中一个例子就是人脸检测. 安装 dlib 并不像只做一个 "pip install dlib" 那么简单,因为要正确配置和编译 dlib ,您首先需要安装其他系统依赖项.如果你按照这里描述的步骤,它应该很容易让 dlib 启动并运行.(在本文中,我将介绍如何在 Mac 上安装 dlib ,但如果您使用的是 Ubuntu ,请…
自由WiFi市场热点,自然不用多说.支付宝钱包计划实现全民免费WiFi,360.百度.金山.小米都在着手WiFi产品. 只是.这些免费WiFi或者实现WiFi的硬件或软件.都是争夺新的市场入口,推广产品或者是产生链的环节之中的一个. 与此相比而言.免费WiFi软件WiFi共享精灵则相对单纯些. 下载软件没有捆绑,软件界面没有广告,最重要的是还没有沦为电商的广告"发射器".也可能是,太年轻,想法太少,总是显得那么单纯.能够说,他们仅仅是个钻研做技术的团队. 做每一个产品从用户需求和体验出…
翻阅去年的笔记,老师曾经教的random模块下的三种用法,其中之一是randint用法,今天上传,留作笔记参考.人生苦短,我用python! # -*- coding: UTF-8 -*- import random # 游戏玩法 两人输入两个数,是否比电脑随机生成的数大 people1 = int (input("请输入您要选择的数:1-1000范围的数")) people2 = int (input("请输入您要选择的数:1-1000范围的数")) # 做一个循…
以低代码和高代码(原生JS代码)混编的方式引入了AI算法,学习如何使用表达式调用原生代码的.整个过程在众触低代码应用平台进行,适合高阶学员. AI智能级别演示 AI算法分三个等级,体现出来的智能水平不同. 切换皮肤 切换棋阵 各棋子的走法规则 先动手玩一玩:https://chinese-chess.zc-app.cn/z 详尽的的教学请移步哔哩哔哩视频:https://www.bilibili.com/video/BV1e44y1j7Ab 初始数据 onReady里: $v.设置 = {AI搜…
题面来源:geeksforgeeks/1993 题解:geeksforgeeks 题目简述:给一个m*n的矩阵,计算从(1,1)到(m,n)的所有不回退路径中,经过k次转向后的路径有多少条 输入T个样例,每个样例三个数据,依次是m,n,k. 输出路径条数. 给个题解中的图解: 测试数据: Sample Input 3 2 2 3 2 3 1 4 4 4 Sample Output 2 2 18 已经贴了题面来源就暂时不贴全部的题目了,偶然发现了这道DP,貌似是FB的面试题,是道非常好的题目. 测…
在安装 Ubuntu 的时候建立的帐户 sai,想把密码改成两个字母aa,方便输入. 运行终端 sai@xmomx:~$ passwd sai更改 sai 的密码.(当前)UNIX 密码: xx输入新的 UNIX 密码: aa重新输入新的 UNIX 密码:aa必须选择更长的密码输入新的 UNIX 密码: 1234567重新输入新的 UNIX 密码: 1234567Bad: new password is too simple输入新的 UNIX 密码: 绿色为手动输入.怎么办?加上su权限执行即可…
随着科技的发展,TFT液晶显示屏在我们日常中可以随处可见. 工业设备上的显示也逐渐由段式显示.黑白显示转向彩色的TFT液晶显示屏. 普通的TFT液晶显示屏由于开发起来比较麻烦, 需要嵌入式工程时写程序去驱动液晶屏显示. 对于设备的主板硬件要求比较好,性能较低单片机是驱动不了高点阵的TFT液晶的. 若选用了性能高的单片机又无形中增加了成本!! 若是主板硬件不用更改能直接用上TFT液晶屏就完美了?? 幸好市场上出现了一类 智能TFT液晶模块(串口屏)能解决这个问题. 智能TFT液晶模块 使用步骤:…
package com.ecnu.Main; /** * 主函数触发游戏 */public class MainApplication { public static void main(String[] args){ TicTacToeGame ticTacToeGame = new TicTacToeGame(); ticTacToeGame.start(); }} //TicTacToeGame 方法类 import java.util.Scanner; public class TicT…
//模板{if false} 1 {else/} //====>可以使用 效果同 {else /} 2 {/if} {if condition="(1 eq 1) and false"} //可用 同 {if (1==1) AND (false)}1{else /}2{/if} Tp5.1手册上并没有介绍model中如何使用事务回滚 public function sendReply($id,$where) { $this->startTrans(); $result =…
热身运动: 1. 启动MongoDB shell => mongo.exe or ./mongo(先确保有一个mongod的实例): 2. 切换到一个用于练手的namespace => use xxxxxxx: 增: db.[table].insert({[field]: [value]}) 查: db.[table].find() 改: db.[table].update({[key]: [value]}, {$set: {[field]: [value]}} 删: db.[table].r…
打开靶机 打开后看到登录界面 利用万能密码,以admin身份登录 登录成功后看到如下界面 在Blank Page界面内发现注入点,抓包 保存在sqlmap目录下test.txt文件夹,使用sqlmap查看数据库信息 查看数据表信息 查看表内字段 发现flag,查看其中信息 成功拿到flag…