华为软件精英挑战赛【德州扑克】心得体会

本文讲述了作者参加华为软件精英挑战赛的经历,参赛项目是编写德州扑克策略程序。在时间紧张的情况下,作者从零开始学习,克服了Socket通信、粘包问题,构建了出牌策略模型,并通过不断调试与优化,成功进入复赛。虽然最终未能晋级,但收获了宝贵的编程经验。
摘要由CSDN通过智能技术生成
       这是华为举办的一个软件竞赛,华为提供一个德州扑克台桌的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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值