剪刀、石头、布机器人比赛

  • 两名选手是都是软件(机器人),玩剪刀石头布比赛,连续比赛100次(即一局),看谁赢得多。
  • 规则与小时候玩的剪刀、石头、布一样,只不过规定100次中的第1次每位选手都必须出石头,这是为了避免随机现象。
  • 程序会告诉你上一次对手出的是什么,但不会也不应该告诉你本次对手出什么。
  • 要编一个打败某选手的并不难,难的是如何打败尽可能多的选手。
  • 为了较客观的评价每位选手,平台设计了循环赛。
  • 100位选手的主人可能会有100种设计思路,这听起来很有趣,到底谁的作品更具威力呢?

只要从Player类继承(引用RowshanBow.dll),重载GetNext方法,就可以实现你的设计,充分发挥你的想象力。

把你的dll放入players文件夹,就可以参战了。

好了,接下来说说技术,挑2点说一下:

1.动态装载,即是使用.net的反射技术,动态装载dll,然后查找特定的Type,当要比赛时实例出该Type的一个对象进行100次比赛。(主要看LoadPlayers方法和BuildPlayer方法)

2.循环赛制。内核是RoundPair类,它能产生一对对比赛的选手对,尽可能地模拟人类的单循环出赛顺序。外部的RoundRobin是对RoundPair的进一步封装,使用泛型,能操控不能类型的“选手”。根据RoundPair产生的序号,选中选手引发事件,并通过参数把两位选手传送过去进行具体的比赛,把结果传回由RoundRobin进行分数计算。

大概就是这个样子了,其它的都没太多的技术含量,相信不难读得懂的。有什么问题可以回复交流。

这是一个参与很容易,做好很难的游戏。开源下载,希望各位喜欢。

下载:RowShanBow_v2_2.zip

转载于:https://www.cnblogs.com/BillySir/archive/2010/02/07/1665586.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值