摘要: 转载请注明出处 今天我们用go来搭建一个文件服务器FileServer,并且我们简单分析一下,它究竟是如何工作的。知其然,并知其所以然! 首先搭建一个最简单的,资源就挂载在服务器的根目录下,并且路由路径为根路径:127.0.0.1:8080/ 服务器程序和资源结构如下: 打开源码,我们定位到net/ 阅读全文
posted @ 2016-09-26 14:27 Accept 阅读(7375) 评论(1) 推荐(2) 编辑
摘要: 首先编写thrift文件(rpcserver.thrift),运行thrift --gen go rpcserver.thrift,生成代码 搭建一个以二进制为传输协议的服务器如下: 查看自动生成的代码recserver.go,我们发现 NewRpcServiceProcessor函数代码如下: 也 阅读全文
posted @ 2016-09-13 13:37 Accept 阅读(1721) 评论(0) 推荐(0) 编辑
摘要: 我们以hello world来大概分析一下golang中的thrift包,并且扒一扒网络上有关thrift的一些坑 查看源码,服务器定义如下:(详见simple_server.go文件) 在go语言中,创建一个thrift服务器有三种方法:(详见simple_server.go文件) 这三个函数分别 阅读全文
posted @ 2016-09-12 16:19 Accept 阅读(8982) 评论(1) 推荐(0) 编辑
摘要: 继续之前的德州扑克话题,上次的DOS界面确实没法看,我女朋友说这是什么鬼。哈哈,估计只有自己能玩了 这两天重构了一下界面,基于web服务器和浏览器来交互。 服务器和客户端之间用websocket通信,这种全双工长连接更方便服务器及时的将整个游戏数据向客户端推送。 这篇随笔主要记录一下做前端界面的时候 阅读全文
posted @ 2016-09-12 00:09 Accept 阅读(2589) 评论(0) 推荐(0) 编辑
摘要: 参考了一下这篇文献,http://cowboyprogramming.com/2007/01/04/programming-poker-ai/ 自己用go实现了一个德州扑克AI,效果还可以。 正常和它玩耍的时候,互动性还不错。但是也有一点点问题,比如玩家乱来,把把都ALL IN(反正不是真的要钱), 阅读全文
posted @ 2016-09-08 13:40 Accept 阅读(5434) 评论(1) 推荐(0) 编辑
摘要: 哇,好久好久没写东西啦。。。 这两天实现了一个简单的游戏引擎,可以发牌,可以比较两手牌的大小 这阶段过后准备用这个引擎来实现一个简单的AI对战,现在先记录一下,实现方面我用的是GO语言 接下来我假设你已经懂游戏规则和俗语了 首先是牌的储存,2~~A,一共13张牌,我用的是一个14位的二进制区间来储存 阅读全文
posted @ 2016-09-05 13:30 Accept 阅读(808) 评论(1) 推荐(0) 编辑
摘要: X的二分之一次方怎么求?二分! 首先求整数部分,从1到X二分答案,选择最接近的那个 然后是求第一位小数部分,用高精度乘法模拟平方,看看得出的数是否比X大,或者比X小,从0到9不断二分即可 然后是第二位小数...... View Code 1 #include<iostream> 2 #include<string> 3 #include<algorithm> 4 using namespace std; 5 6 int n,nlen; 7 char str[22]; 8 int c[1000]; 9 int a[1000],b[1000],d[1000]; 阅读全文
posted @ 2012-10-17 16:07 Accept 阅读(1126) 评论(0) 推荐(0) 编辑
摘要: 关于子序列什么什么的问题,以前一直没怎么在意过,直到省赛突然考了一个赤裸裸的LCIS,这下才着急了,因为忘记怎么做了,而且模版也没有带。从第三名一直掉到第11名,而且超上来的,全都是会做这题的o(╯□╰)o。 虽然最后还是保住了一个一等奖,不过真是太不甘心了。 这里总结一个O(nm)的算法。 设题目给出a[],b[]两个序列。f[j]表示b序列到j的时候,与a[??]序列构成最长公共上升子序列的最优解。其中a[??]序列,从1到n枚举过来。 如果某一个时刻a[i]==b[j],那么显然,我们就应该在0到j-1中,找一个f值最大的来更新最优解。这和求上升子序列是思想是一样的。另外,在枚... 阅读全文
posted @ 2012-10-15 10:18 Accept 阅读(18624) 评论(2) 推荐(1) 编辑
摘要: 题意:给出一个蛋糕,蛋糕有两种颜色组成,同一种颜色的可以切矩形,红蓝相间的可以切正方形。问你切出的蛋糕的最大周长对于同一种颜色,很显然就是最大子矩形了。用悬线法搞定对于红蓝相间的正方形,可以用DP解决。定义dp[i][j]表示,以i,j为正方形右下角点的时候的最大边长。显然dp[i][j]=min(dp[i-1][j],dp[i][j-1])+1,但是有一个前提,那就是map[i][j]!=map[i-1][j] && map[i][j]!=map[i][j-1]另外还需要注意一点就是,对角线上的元素必须是相同的。比如BBBR 如果不注意判断对角线的元素,那么正方形会得出2*2 阅读全文
posted @ 2012-10-11 10:51 Accept 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 给出平面上的一些点,求覆盖这些点的最小圆。具体问题可以见hdu 2215。具体解法是,先求凸包,然后枚举凸包上任意3个点,若枚举的三个点构成钝角三角形,则最大半径为最长边的一半否则,半径r=a*b*c/(4*s)其中s是面积,具体面积可以用叉乘求得,s=(向量a叉乘向量b)的绝对值的一半。View Code 1 #include<iostream> 2 #include<string> 3 #include<cmath> 4 #include<algorithm> 5 using namespace std; 6 7 struct node 8 阅读全文
posted @ 2012-10-09 19:30 Accept 阅读(592) 评论(0) 推荐(0) 编辑