这是华为举办的一个软件竞赛,华为提供一个德州扑克台桌的server,我们要根据牌型等因素,给出出牌的策略,类似模拟牌手的程序。从知道挑战的题目到提交最终版本的程序中间只有一个月的时间,刚看到这个题目一点头绪没有,看了论文有用蒙特卡洛模拟,决策树等,各种没听过的词汇,感觉写出这个程序会很难,和我一个教研室的小伙伴们看到这个题目的时候陆续都放弃了。
思考了半天我也放弃了,因为接下来几个星期还有实习的面试和小论文等着我完成,就这样过了2个星期,期间我把小论文与实习面试都完成了,在一天早晨无意中又点开了比赛的页面,我想试一试,最起码调通一个与sever通信的socket,说动手就动手,先选定编程语言,用的java,java我每天都会编一些小程序,所以用的比较熟练。中午就开始搭建环境,用的unbuntu的环境,以前用的都是VMware来搭建虚拟环境,这次华为指定用的是VirtualBox,很快第一个问题就来了,我用远程登陆工具登陆linux的22端口怎么也登不上去。期间上网查了各种原因,都是无用功,最后只有使用终极大招,将网络连接方式改为host only,但是这样的方式linux虚拟机就不能联网了。
接下来就要写socket部分的软件了,原以为这是最简单的部分,但就是这部分我改了不下10遍。首先华为的server是用c++写的,所以与java进行socket通信的方式只能用字节流的方式,很快利用最简单的带参数newsocket方法,就与server端建立了链接.问题1很快就来了,由于server端可能比client端启动要慢所以当clien
思考了半天我也放弃了,因为接下来几个星期还有实习的面试和小论文等着我完成,就这样过了2个星期,期间我把小论文与实习面试都完成了,在一天早晨无意中又点开了比赛的页面,我想试一试,最起码调通一个与sever通信的socket,说动手就动手,先选定编程语言,用的java,java我每天都会编一些小程序,所以用的比较熟练。中午就开始搭建环境,用的unbuntu的环境,以前用的都是VMware来搭建虚拟环境,这次华为指定用的是VirtualBox,很快第一个问题就来了,我用远程登陆工具登陆linux的22端口怎么也登不上去。期间上网查了各种原因,都是无用功,最后只有使用终极大招,将网络连接方式改为host only,但是这样的方式linux虚拟机就不能联网了。
接下来就要写socket部分的软件了,原以为这是最简单的部分,但就是这部分我改了不下10遍。首先华为的server是用c++写的,所以与java进行socket通信的方式只能用字节流的方式,很快利用最简单的带参数newsocket方法,就与server端建立了链接.问题1很快就来了,由于server端可能比client端启动要慢所以当clien