自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

九日王朝

君子以独立不惧,遯世无闷

  • 博客(270)
  • 资源 (8)
  • 收藏
  • 关注

原创 斗地主AI算法——第十一章の被动出牌(5)

本章是被动出牌的最后一章,截止目前,我们已经解决了大部分牌型。只剩下飞机和炸弹了。飞机无疑是最复杂的类型,他等于顺子和三带的结合体,但又增加了很多难度。根据上一章的算法,我们可以大概想到,若是带出去一张我就加一个循环,若是带出去两张我就加俩循环,但是这个飞机长度不一致,带出去的牌个数也就不一致,这TM怎么加啊!!我一开始的想法是外置一个全排列函数,给定count个数,然后列举所有的方案去改

2017-04-27 15:12:33 7207 2

原创 斗地主AI算法——第十章の被动出牌(4)

上一章已经说明了单顺的实现方法,双顺、三不带顺牌型实现方法与单牌基本类似。改动的地方除了上一章说的枚举牌类型,出牌时value_nPutCardList的处理,回溯时value_aHandCardList和nHandCardCount的变化等几个方面,还有length设置的变化,因为双顺的length是count的1/2,三顺是1/3。下面给出完整代码://对连类型 else if (c

2017-04-27 14:41:33 5026 5

原创 斗地主AI算法——第九章の被动出牌(3)

上一章已经说明了被动出牌算法基本的出牌思路,且以单牌为例给出了具体的代码。对牌、三不带牌型实现方法与单牌基本类似。改动的地方主要是枚举牌类型,出牌时value_nPutCardList的处理,回溯时value_aHandCardList和nHandCardCount的变化等几个方面。下面给出完整代码:/对牌类型 else if (clsGameSituation.uctNowCardGr

2017-04-27 14:11:07 5454 1

原创 斗地主AI算法——第八章の被动出牌(2)

上一章我们已经搭好了被动出牌的基本架子,本章我们主要解决面对不同牌型分支的出牌策略问题。在这里我把出牌逻辑分为四个阶段,也就是策略的优先级。分别是:【直接打光手牌】→【同类型牌压制】→【炸弹王炸压制】→【不出】第一阶段【直接打光手牌】就是说如果我们可以一次性把手牌打出,那就不用考虑接下来价值之类的问题了,因为已经赢了。这种情况可能是对方打出的牌型和你一样且你比他大,或者你剩的牌是炸

2017-04-27 11:13:09 7796

原创 斗地主AI算法——第七章の被动出牌(1)

哎,之前扯了那么多蛋,重要讲出牌了!本章开始讲被动出牌的逻辑算法。首先我们先把架子搭起来,被动出牌我们肯定是要知道场上目前打出的是什么牌型。在第二章数据结构里我们定义过,游戏全局类里面有一个存放当前牌型结构的成员,即 //当前打出牌的类型数据,被动出牌时玩家根据这里做出筛选 CardGroupData uctNowCardGroup;我们即将通过他进行类型的筛选,所以整个

2017-04-26 20:53:05 9397 1

原创 斗地主AI算法——第六章の牌型判断

本章实现了上一章提到的检查当前是否只是一手牌函数ins_SurCardsType/*检查剩余的牌是否只是一手牌是: 返回手牌类型数据不是:返回错误类型(cgERROR)*/CardGroupData ins_SurCardsType(int arr[]);输入很简单,就是一个状态数组。输出是手牌类型结构//牌型组合数据结构struct CardGr

2017-04-26 20:20:45 9293 7

原创 斗地主AI算法——第五章の总值计算

本章算是比较重点的一章,前一章已经对各个牌型做出了价值定义,本章主要实现计算手牌总价值模块函数。根据之前的思路,我们设定一下输入输出:输入:手牌数据类(主要用手牌个数nHandCardCount以及手牌状态数组clsHandCardData.value_aHandCardList)输出:手牌价值结构 HandCardValue先处理剪枝部分,如果剩下的手牌是一手牌,我们即直

2017-04-26 19:48:01 11060 9

原创 斗地主AI算法——第四章の权值定义

第一章业务逻辑结尾部分我提到了权值的计算方法:①每个单牌都有一个基础价值②组合牌型的整体价值与这个基础价值有关,但显然计算规则不完全一样。③整手牌可以分成若干个组合牌,但分法不唯一。当时,我说了①和②可以直接定义,③需要迭代计算。所以本章的主要内容就是确定基础价值&组合牌型的价值定义对于牌型权值的定义看似简单,实际却需要大量的推敲。这就跟游戏里不同英雄属性、技能反复修改一样

2017-04-26 18:04:38 14135 6

原创 斗地主AI算法——第三章の数据处理

上一章我们定义了基本的数据结构,相信大家看到手牌类里面那么多出牌序列时一定会比较愤慨。。。其实一开始写的时候我也是觉得很脑残,不过后续开发证明了这样的结构还是可以的,因为只要我封装了一层数据转换,接下来所有的算法策略都只用到2个成员变量,状态数据及手牌数量。特别便于调试、管理。那么接下来就写出类成员函数的实现方法//手牌数据类class HandCardData{public:

2017-04-26 16:53:29 12858

原创 斗地主AI算法——第二章の数据结构

上一章我们已经确立了进本的业务逻辑处理流程。从本章开始,我们便进入开发阶段。首先就是明确我们都需要哪些数据,且它们以怎样的形式存储。首先从上一章反复提到的手牌权值结构说起,也就是F()的返回值,他包含了两个成员,①手牌总价值②需要打几手牌。//手牌权值结构struct HandCardValue{ int SumValue; //手牌总价值 int Nee

2017-04-26 16:00:34 20789 1

原创 斗地主AI算法——第一章の业务逻辑

转眼间快到了五月,帝都的天气也变的非常梦幻。 时而酷暑炎热,时而狂风席卷。而不管外面如何,我们也只能在办公室里茕茕无依的撸着代码,无可奈何的负着韶华。世界是寂寞的,寂寞到不只是寂寞,而是死一般的寂寞。或许AI就是因此而生吧,因为到了最后,能一直陪伴我们走下去的,或许也就只有程序了。好吧不装逼了,近期在研究skynet服务器框架,里面有斗地主的demo,于是想

2017-04-26 15:27:24 42564 9

原创 protobuf——VC&pb开发(另附vs2017完整工程及vs可编译pb源码)

由于近期研发的项目框架是通过protobuf进行网络通信的,在此之前从未听说过protobuf,上网搜了一下才知道这个东西竟然还蛮火热的原来自己这么孤陋寡闻。。场面一度十分尴尬。。。首先介绍一下protobuf,protobuf是google提供的一个开源序列化框架  ,其最大的特点是基于二进制,因此比传统的XML表示高效短小得多。虽然是二进制数据格式,但并没有因此变得

2017-04-11 12:04:18 5920 9

原创 lua——C/C++lua嵌入式开发

首先介绍一下Lua语言,Lua 是一个小巧的脚本语言,该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。一:lua定位——C/C++嵌入式脚本语言lua本身就是C写的,所以Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数lua语法、解释器、执行原理都与python相似唯一差距就是lua没有强大的类库作为支撑,Lua

2017-04-01 18:17:10 14462 3

原创 VS2017——50G超豪华IDE套餐酸爽体验!

遥想当年,VS出2015的时候,那年的九日哥还没有自己的电脑。为了知识,为了技术,九日哥给好几个同学的笔记本都装了VS2015~然后他们就都重装系统了而如今,时光荏苒,微软已经推出了Visual Studio2017,作为一个有情怀的菜逼程序员。九日哥自然要体验一番的。https://www.visualstudio.com/zh-hans/   下载地址

2017-03-31 15:31:48 31953 12

原创 node.js——麻将算法(二)赖子玩法

上篇博客传送门http://blog.csdn.net/sm9sun/article/details/65448140上文中已经实现了基本胡法的算法,本章加入“癞子玩法”的判胡逻辑对于癞子的处理方式无非就两种:一,以枚举的方式使癞子转换为其他牌型进行进一步判断二,在计算判胡时出现位置空缺时使用癞子进行补位前者的优势是准确度相对容易把控,并且逻辑清

2017-03-24 17:11:12 6830 4

原创 node.js——麻将算法(一)基本判胡

大家好,失踪已久的九日哥回来了   由于前段时间一直专注于开发鉴黄,所以身心都有些不适,故也给了自己很长的放松时间~然而回来了之后,九日哥毅然决然的选择了棋牌(dubo)事业~看来我这辈子也就离不开黄赌毒了。这就是我的职业生涯规划,恩,看起来没什么不对。首先带来的就是麻将胡牌、听牌的算法,不过大家都知道,麻将各个地方的规则都不同,所以相关算法也需要作出一定的

2017-03-23 20:41:39 14301 10

原创 视频跟踪——meanshift算法

部分内容转载于:http://blog.csdn.net/google19890102/article/details/51030884http://www.cnblogs.com/liqizhou/archive/2012/05/12/2497220.htmlmeanShift,均值漂移,在聚类、图像平滑、分割、跟踪等方面有着广泛的应用。meanShift这个概念最早

2017-01-12 14:57:19 1350

原创 视频跟踪——TLD算法

部分内容转载于http://blog.sina.com.cn/s/blog_4a03c0100101dbcr.htmlhttp://blog.csdn.net/carson2005/article/details/7647500TLD(Tracking Learning Detector),包括tracking、modeling、detection,其中tracki

2017-01-12 14:32:26 2858

原创 视频跟踪——CMT算法

*部分内容转载于http://blog.csdn.net/songrotek/article/details/47662617CMT,全称是Clustering of Static-Adaptive Correspondences for Deformable Object Tracking主要应用功能为对于物体的视觉跟踪。视频跟踪常见的方法思路可以分为三大类:第一

2017-01-12 14:16:03 2229

原创 C++ win32控制台显示月历

事情的起因是前端同事一时性♂起想自己写一个日历控件然后研究了一下逻辑思路我们参考一下win10系统的显示格式从日期数据来说,这是一个6X7的矩阵除了当月的天数以外,头尾还要补齐上月末与下月初的日期。首先,需要确定本月显示的天数,那么第一件事,得判断当前月共有多少天,包括闰年的处理int getdays(int year

2017-01-04 17:45:38 1308

原创 BrainFuck——C实现BrainFuck解释器

首先介绍一下吊炸天的语言——BrainFuckBrainfuck是一种极小化的计算机语言,它是由Urban Müller在1993年创建的。由于fuck在英语中是脏话,这种语言有时被称为brainf*ck或brainf**k,甚至被简称为BF这种语言基于一个简单的机器模型,除了指令,这个机器还包括:一个以字节为单位、被初始化为零的数组、一个指向该数组的指针(初始时指向数组的第一

2016-12-27 18:01:33 9646

原创 小顶堆数据结构C/C++代码实现

相比队列和栈,很多人可能对堆的概念比较陌生,下面个给出堆的本质概念一、堆也是一种数据结构,从实际应用意义来说,他是一种最优级别数据永远在第一位的队列,本文皆以最小值为例(小顶堆),即它变相是一种会永远保持最小值先出队的队列。二、堆的本质是一颗完全二叉树,树根永远为整个树的最小值,这也就是实现了①永远保持最小值先出队的队列这样的功能。三、为了便于实现②树根为整个树的最小值,堆中某个节点的

2016-12-23 12:11:42 5910

原创 python——Tkinter图形化界面及threading多线程

Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中Tkinter包含了若干模块. Tk接口被封装在一个名为 _tkinter 二进制模块里( tkinter 的早期版本). 这个模块包

2016-12-19 16:56:45 44423 3

原创 马拉车(manacher)算法——最长回文(hdu3068)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068题目描述:Problem Description给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.回文就是正反读都是一样的字符串,如aba, abba等Input输入有多组case,不超过120组,每组输入为一行小写英文字

2016-12-16 13:53:39 762

原创 python——web后台开发实现网址生成二维码

需要的模块:web   用于web业务处理qrcode 用于二维码相关处理PIL.Image 用于图片处理time   用于根据时间命名文件web模块实现网站的后台逻辑处理方法:我们先创建一个页面的处理类class Index:    #页面处理类    def GET(self):        return render.inde

2016-12-09 15:08:06 4704

原创 论算法的实际应用——泡妞论

我们都知道,算法,即解决问题的方法,我们衡量一个算法的优劣,可以用空间复杂度与时间复杂度来衡量。换做我们实际生活中,就是物质成本开销与时间成本开销。不同算法进行泡妞这一业务进行其物质成本开销与时间成本开销自然也不同。所以我们要根据自身情况,选取一个适合于自己的算法。当前也要适用于你的输入,也就是你的对象(强行面向对象思想)具体类型。一、博弈算法博弈的核心思想并不复杂,实

2016-12-08 17:27:29 6647 6

转载 js前端——滑稽官网的亮瞎眼系列滑稽大法

*本代码源于http://lvmaojun.com/huaji/向滑稽致敬!!index.html:滑稽body { margin: 0; padding: 0; position: relative; background-image: url(images/xh.jpg); background-position: center; /*ba

2016-12-06 10:14:36 11917 2

原创 python——time模块实现指定时间触发器

其实很简单,指定某个时间让脚本处理一个事件,比如说一个get请求~任何语言都会有关于时间的各种方法,python也不例外。help(time)之后可以知道time有2种时间表示形式:1、时间戳表示法,即以整型或浮点型表示的是一个以秒为单位的时间间隔。这个时间的基础值是从1970年的1月1号零点开始算起。2、元组格式表示法,即一种python的数据结构表示。这个元组有9个整型内容。分

2016-12-05 15:01:30 5976

原创 pythonの鉴黄之路(五)——强行解析json串

*以下内容并非正规解决方案,效仿请谨慎。之前有介绍过阿里云的鉴黄API接口http://blog.csdn.net/sm9sun/article/details/53321888其支持:porn: 黄图检测,ocr:文字识别,illegal: 暴恐敏感识别三个业务其API也很人性的把其返回的json串做出了解析,我们可以直接拿到相应的返回值。而如果想对其做进一步的开发,比如

2016-12-02 15:53:43 1601

原创 python——C/C++&python合♂体开发

之前开发python一直都是用C++的system()调用脚本执行某些相关处理然而需要返回值时,却感觉到了相当的蛋疼。即使我们可以强行夺取system的返回值(py代码里sys.exit(0))来实现整型的返回值但其也不是一个长久之计。更何况如果我们需要其它类型的返回值呢?比如说最常见的字符串类型。那就只能让两者关联下面我们就来看看   如何让python和c++完美的结♂合在一起~

2016-11-29 15:56:23 1078

原创 pythonの鉴黄之路(三)——阿里云鉴黄API使用

阿里云最近推出了一些图片检测相关APIhttps://help.aliyun.com/document_detail/28432.html?spm=5176.doc28443.6.121.QFlD2y首先需要我们的bucketkaio

2016-11-25 21:30:06 5874

原创 python——socket实现简单C/S交互开发

pyhton的socket模块可以实现网络编程开发,首先我们介绍一下需要用到的方法:socket.socket():建立socker套接字,两个参数,family代表家族.type代表类型,type默认TCPsocket.bind():服务器端,接受的参数是元组,不是传递host,port两个元素,而是(host,port)socket.listen():一个参数,值为允许客户端连接服

2016-11-25 16:13:32 4394

原创 C++实现MD5加密

MD5相信绝大数人都接触过,也有无数人问过我怎么做MD5解密。当然,我们知道MD5自然没有办法解密,所以解密也不过是大量已知数据做成字典而已,MD5是不可能通过逆向计算解密的。为什么呢?因为哈希冲突。举个简单的例子:比如说我给定10个位置来存放东西,假设我的对应方法是简单的求余%。那么11%10,21%10的结果就会相同。这样就造成了冲突。MD5也是如此,我们常用的MD5位

2016-11-25 12:38:34 5455 1

原创 python——爬虫实现网页信息抓取

首先实现关于网页解析、读取等操作我们要用到以下几个模块import urllibimport urllib2import re我们可以尝试一下用readline方法读某个网站,比如说百度def test():   f=urllib.urlopen('http://www.baidu.com')   while True:      firstLine=f.rea

2016-11-24 17:32:30 6763

原创 python——文本简单可逆加密

其实很简单,就是把一段文本每个字符都通过某种方式改变(比如加1)这样就实现了文本的加密操作,解密就是其逆运算# -*-coding:utf-8 -*-import sysreload(sys)sys.setdefaultencoding('utf8')#加密def jiami(): filename=raw_input('please input file:\n'

2016-11-24 17:17:42 2926 1

原创 pythonの鉴黄之路(四)——urllib模块批量下载

好了,现在鉴黄的demo可以跑通了,就差大量的数据了(就是黄图)这可难倒了纯洁的宝宝。本宝宝表示找了好几天都找不到一张黄图后来问了一些老司机,得到了一些资♂源♂丰♂富♂的网址不过本宝宝还是不好意思打开~就只能写一个小爬虫批量下载了-.-#coding=utf-8import urllibimport redef getHtml(url):

2016-11-24 17:03:34 1608 1

原创 pythonの鉴黄之路(二)——图片转base64码

上篇博客的YCbCr鉴黄有些过于浮夸http://blog.csdn.net/sm9sun/article/details/53319959于是经过慎重决定,我们打算采取调用外部成熟的接口来完成鉴黄,这里就涉及数据传输的问题,当然不可能传图片啦~为了便于网络通信,我们采取将图片转为Base64码再进行后续的工作~先介绍一下Base64码:Base64是网络上最常见的用于传输

2016-11-24 16:23:38 1636 1

原创 pythonの鉴黄之路(一)——YCbCr简易版鉴黄脚本

先介绍一下YCbCrYCbCr或Y'CbCr有的时候会被写作:YCBCR或是Y'CBCR,是色彩空间的一种,通常会用于影片中的影像连续处理,或是数字摄影系统中。Y'为颜色的亮度(luma)成分、而CB和CR则为蓝色和红色的浓度偏移量成份。Y'和Y是不同的,而Y就是所谓的流明(luminance),表示光的浓度且为非线性,使用伽马修正(gamma correction)编码处理我们通

2016-11-24 14:47:24 4981 1

原创 C++读写表格csv——文本与表格完美桥接者

很多人在开发过程中可能都会遇到相对于表格进行读写操作,C++读写表格也有很多种方法,比如说通过ODBC数据库实现,通过解析Excel表格文件,通过OLE/COM的实现。但是终究需要引用一些文件以及过程繁琐。我们知道C语言的FILE类对于读写二进制文件非常的方便比如:string thetxt="c:\\user\\abc.txt";FILE *fr; fr=fopen(th

2016-11-24 13:15:02 9812 1

原创 用代码证明自己闲的蛋疼(四)——简易坑爹版学生管理系统

众所周知,学生管理系统一直频繁的出没在我们的毕业设计当中。当然,其大多数都是基于BS(Browser/Server)开发的~当年萌新的我还妄想用C写一个win32控制台的管理系统作为毕设蒙混过关,然而最后还是老老实实的写了个网站233333不过多年以后,看见这波c版的学生管理系统 还是蛮好玩的~#include#include#include char xm[101][50]

2016-11-24 11:40:37 750

plist组图分割demo

基于pyhton3.6开发的plist组图分割demo 配套博客地址: http://blog.csdn.net/sm9sun/article/details/77703551

2017-08-30

protobuf完整工程包

有关Visual Studio开发protobuf的完整工程,内含protobuf-3.0.0-alpha-3源码(有vs工程可编译) 以及编译好的第三方lib库及头文件 另附VS2017版protobuf完整测试样例 配套博客http://blog.csdn.net/sm9sun/article/details/70049375

2017-04-11

protobuf完整工程

protobuf完整工程

2017-04-11

BrainFuck语言解释器及一些demo

一个很小巧的BrainFuck语言解释器,内置很多小demo

2016-12-26

python后台web开发网址生成二维码

python实现web开发,网址生成二维码demo

2016-12-09

奥义前端源码

奥义前端源码

2016-12-06

VS2010工程python结合c++开发demo

VS2010工程python结合c++开发demo

2016-11-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除