[活动] 坦克大决战 AI 线上 Hackathon - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
hayeah
V2EX    程序员

[活动] 坦克大决战 AI 线上 Hackathon

  hayeah 2014-12-02 19:24:47 +08:00 14292 次点击
这是一个创建于 4022 天前的主题,其中的信息可能已经有所发展或是发生改变。

坦克大决战 AI 线上 Hackathon

平时工作上课太 Easy,想来点 Hard 模式吗?12 月 6 日和 7 日两天我们将会举办线上 Hackathon,编写游戏 AI,和全国各路神仙一较高下。

这个线上活动由思客教学Coding.net 云端开发平台联合举办。参加活动就有机会得到 Coding 提供的精(ang)美(gui)战利品,人生赢家也许就是你!

Hackathon 活动内容如下:

  • 第一组:编写坦克大决战 AI
  • 第二组:为 CodeGame 平台开发功能 (开源项目, 基于 NodeJS)

大家可以以个人形式选择自己感兴趣的一组进行参与。

战利品有什么捏?

看着流口水了吧?

坦克大决战

Code Game 是一个使用 Javascript 代码编写 AI 脚本来和他人进行对抗的游戏平台。

Code Game 以坦克大战游戏为原型,每局比赛由两名玩家参与,每名玩家以事先编写好的 Javascript 脚本参与比赛,每名玩家控制一辆坦克。

如图:

游戏的胜利条件按优先级排列如下:

  1. 一方击中另一方坦克时即获胜
  2. 如果第 128 帧时两辆坦克均存活,游戏即结束,收集星星较多的坦克获胜
  3. 如果两辆坦克收集的星星数量相同,代码执行时间短的玩家获胜

游戏介绍: http://codegame.org/doc

api 文档: http://codegame.org/doc/api

具体活动形式

第一组 - 编写坦克 AI

12 月 6 日零点开始,选手可以在 CodeGame 平台参与杯赛。为了公平起见,杯赛期间任何玩家均不能和参与杯赛的选手对战(参与杯赛的选手之间也不可以)。大家可以在加入杯赛前即开始阅读开发文档并着手编写代码。

12 月 7 日晚 24 时,CodeGame 将对所有参赛选手进行随机分组,以当前代码为准,通过淘汰赛的形式决出获奖 AI。

活动期间鼓励大家多交流思路。

第二组 - 为 CodeGame 平台开发功能

CodeGame 在 Github 上面有些项目需求。6 号和 7 号这两天我们一起来打造 CodeGame 平台,给它添加些有趣的新功能。Luin 会为每个 Issue 依照实现难度来打分。

CodeGame 也欢迎你提交自己想做的功能。

活动期间由 Luin 负责接受 Pull Request。12 月 6 日零点到 7 日 24 时间,每个 Issue 的第一个通过的 PR 得分。

报名方法

在这个帖子里留下邮箱,我们把你加入 Slack 群里。

主办方

第 1 条附言    2014-12-03 10:22:27 +08:00
活动使用 Coding.net 来协作开发,请关注 https://coding.net/u/luin/p/CodeGame/git
121 条回复    2014-12-06 13:07:03 +08:00
1  2  
hayeah
    1
hayeah  
OP
   2014-12-02 19:52:07 +08:00
感谢 @Livid 置顶
luin
    2
luin  
   2014-12-02 20:00:32 +08:00
哈哈,欢迎大家来玩~~~
kokdemo
    3
kokdemo  
   2014-12-02 20:05:02 +08:00
kokdemo#gmail

谢谢
sennes
    4
sennes  
   2014-12-02 20:07:14 +08:00
如果能早点出新地图会比较好。
这个地图硬编码的人还是挺多的。
或者早日把"第一颗星星延迟N帧后出现"这个加上~
sennes
    5
sennes  
   2014-12-02 20:07:45 +08:00
忘了留邮箱: [email protected]
luin
    6
luin  
   2014-12-02 20:08:29 +08:00
@sennes 比赛前肯定会加上的
hayeah
    7
hayeah  
OP
   2014-12-02 20:09:06 +08:00
@sennes 比赛前我们会出新的地图
labikyo
    8
labikyo  
   2014-12-02 20:12:37 +08:00
labikyo#gmail.com
a591826944
    9
a591826944  
   2014-12-02 20:21:14 +08:00
aouwwp#gmail 求加
beenhero
    10
beenhero  
   2014-12-02 20:30:09 +08:00
赞,好玩的很,要写好还真得花点时间的。
sennes
    11
sennes  
   2014-12-02 20:37:00 +08:00
@luin 最近每天都能看到你在更新这个游戏平台!
大家去Issues反馈、讨论你都很快就有反应,点个赞

“限制炮弹使用数目”这个也要尽快加入。
因为发现打不过的对手大部分都是 硬编码或者乱发炮的 (哭)
luin
    12
luin  
   2014-12-02 20:47:25 +08:00
@sennes 多谢~比赛前会加入杯赛地图,这个地图会尽量让游戏更平衡些~其他规则我会总结整理后统一调整,尽量让大家少更新接口
sitiao
    13
sitiao  
   2014-12-02 21:08:37 +08:00
10年前见过类似的东东,那时还是java的,也叫坦克大战。
ipconfiger
    14
ipconfiger  
   2014-12-02 21:12:08 +08:00
台湾大叔的活动搞得很high啊,哈哈
hayeah
    15
hayeah  
OP
   2014-12-02 21:20:16 +08:00
@ipconfiger 你来参加啊,快!
kokdemo
    16
kokdemo  
   2014-12-02 21:38:58 +08:00
问一个弱弱的问题……slack不填team名称行么……
popo233
    17
popo233  
   2014-12-02 21:43:14 +08:00
战利品居然没有redis入门指南www
a591826944
    18
a591826944  
   2014-12-02 21:46:33 +08:00
@hayeah 喂 LZ 。。创建我的 AI 保存了以后怎么没有啊。。。。不会存储下来的吗?
hayeah
    19
hayeah  
OP
   2014-12-02 21:49:13 +08:00
@popo233 签名版的,应该要有! @luin
hayeah
    20
hayeah  
OP
   2014-12-02 21:51:00 +08:00
@kokdemo 规定一定要填吧。但你可以属于多个 team。自己注册等于是为你的 team 注册。
hayeah
    21
hayeah  
OP
   2014-12-02 21:53:14 +08:00
@a591826944 。。。貌似有问题。@luin 说回家马上看
nigelvon
    22
nigelvon  
   2014-12-02 21:54:23 +08:00 via Android
很有意思
nigelvon#gmail
谢谢
kokdemo
    23
kokdemo  
   2014-12-02 21:59:08 +08:00
@hayeah 胡乱注册了一个……
a591826944
    24
a591826944  
   2014-12-02 22:06:34 +08:00
@hayeah 刚注册了 slack 还不太会用。。加我意思下 aouwwp#gmail
luin
    25
luin  
   2014-12-02 22:06:52 +08:00
@a591826944 已经好啦~~这么隐蔽的 bug 都被发现了好害羞。。。搞混数据库了我错了 (T_T)
a591826944
    26
a591826944  
   2014-12-02 22:10:51 +08:00
排行榜挂了

/home/git/codegame.git-deploy/views/rank.jade:24 22| td #{index + 1} 23| td > 24| a(href="/#{item.User.login}") #{item.User.name} 25| td #{item.win} 26| td #{item.lost} 27| td #{Math.round(item.win / (item.win + item.lost) * 100)}% Cannot read property 'login' of null

TypeError: Cannot read property 'login' of null
at eval (eval at <anonymous> (/home/git/codegame.git-deploy/node_modules/jade/lib/jade.js:172:8), <anonymous>:399:52)
at eval (eval at <anonymous> (/home/git/codegame.git-deploy/node_modules/jade/lib/jade.js:172:8), <anonymous>:558:4)
at eval (eval at <anonymous> (/home/git/codegame.git-deploy/node_modules/jade/lib/jade.js:172:8), <anonymous>:617:22)
at res (/home/git/codegame.git-deploy/node_modules/jade/lib/jade.js:173:38)
at Object.exports.render (/home/git/codegame.git-deploy/node_modules/jade/lib/jade.js:269:10)
at Object.exports.renderFile (/home/git/codegame.git-deploy/node_modules/jade/lib/jade.js:305:18)
at View.exports.renderFile [as engine] (/home/git/codegame.git-deploy/node_modules/jade/lib/jade.js:290:21)
at View.render (/home/git/codegame.git-deploy/node_modules/express/lib/view.js:93:8)
at EventEmitter.app.render (/home/git/codegame.git-deploy/node_modules/express/lib/application.js:530:10)
at ServerResponse.res.render (/home/git/codegame.git-deploy/node_modules/express/lib/response.js:904:7)
miaoever
    27
miaoever  
   2014-12-02 22:12:49 +08:00
支持!
leo.miao.ever#gmail.com
luin
    28
luin  
   2014-12-02 22:19:26 +08:00
@a591826944 嗯嗯修上面的 bug 时数据没删掉,已经删好啦
a591826944
    29
a591826944  
   2014-12-02 22:19:40 +08:00
@luin 我问个问题。。我程序里面 有概率 随机转向 。。但是我运行的时候为什么不是随机的 而是 每次运行路线都一样
luin
    30
luin  
   2014-12-02 22:21:53 +08:00
@a591826944 可以看在 GitHub 上的讨论: https://github.com/luin/CodeGame/issues/15 总结就是为了保证比赛结果的一致性,Math.random 的随机种子是脚本本身的摘要。所以同一脚本每次运行的结果是一样的,但对单次运行而言,每次 random 都是随机的。如果有问题的话欢迎到 GitHub 上讨论~~
MingZhe
    31
MingZhe  
   2014-12-02 22:31:41 +08:00
顶老大,还有 L 神
@luin
@hayeah
wtbhk
    32
wtbhk  
   2014-12-02 22:34:37 +08:00
这个不是Zihua做的那个吗
sennes
    33
sennes  
   2014-12-02 22:36:04 +08:00
发现slack不会用。是不是要先去slack注册一下?
luin
    34
luin  
   2014-12-02 22:51:28 +08:00
@wtbhk 报告~我就是~
luin
    35
luin  
   2014-12-02 22:52:28 +08:00
@sennes 嗯注册下然后 @hayeah 会邀请你~超好用的聊天工具
fyu2012
    36
fyu2012  
   2014-12-02 23:10:24 +08:00
Javascript菜鸟来报名 [email protected]
oyxhm
    37
oyxhm  
   2014-12-02 23:36:41 +08:00
g0thic
    38
g0thic  
   2014-12-02 23:40:57 +08:00
支持 你.....
outofbound
    39
outofbound  
   2014-12-03 07:21:52 +08:00
xhacker
    40
xhacker  
   2014-12-03 08:50:24 +08:00
liu.dongyuan gmail.com
sailxjx
    41
sailxjx  
   2014-12-03 09:33:11 +08:00
搭车参观 [email protected]
hayeah
    42
hayeah  
OP
   2014-12-03 10:25:07 +08:00
@Livid 我们想把帖子里 CodeGame 的仓库链接改成: https://coding.net/u/luin/p/CodeGame/git

有办法修改吗?
Cee
    43
Cee  
   2014-12-03 10:29:03 +08:00
支持一下!
greatdk
    44
greatdk  
   2014-12-03 10:35:21 +08:00
看起来好好玩的样子
hayeah
    45
hayeah  
OP
   2014-12-03 10:41:30 +08:00
@greatdk 来参加吧!很嗨哦~
chairuosen
    46
chairuosen  
   2014-12-03 10:57:53 +08:00
报名 chairuosen[at]Gmail
nigelvon
    47
nigelvon  
   2014-12-03 10:57:54 +08:00
@hayeah 求加slack nigelvon#gmail
kokdemo
    48
kokdemo  
   2014-12-03 10:58:05 +08:00
@hayeah ……为何也不在slack上拉我……
ren2881971
    49
ren2881971  
   2014-12-03 10:58:13 +08:00
没用js 搞过这个。 直接看开发文档就能开始撸了么?
mcfog
    50
mcfog  
   2014-12-03 11:01:51 +08:00
随机地图呢(伸手) 固定地图针对性太强已累感不爱_>
hayeah
    51
hayeah  
OP
   2014-12-03 11:06:50 +08:00
@kokdemo 刚刚拉 slack 了~ 楼上参赛者应该都会受到邀请~
luin
    52
luin  
   2014-12-03 11:38:30 +08:00
@mcfog 周末比赛的地图就会是专用地图啦~~完全不用担心针对~
luin
    53
luin  
   2014-12-03 11:39:15 +08:00
@ren2881971 对的,直接看开发文档现在就可以写了。Hackathon 期间选手就不能互相对战了,现在还可以
loddit
    54
loddit  
   2014-12-03 11:44:45 +08:00
Fei
    55
Fei  
   2014-12-03 11:50:19 +08:00
支持!
vnhwd
    56
vnhwd  
   2014-12-03 11:51:20 +08:00
typcn
    57
typcn  
   2014-12-03 12:04:34 +08:00
感觉。。。还是不献丑了
hayeah
    58
hayeah  
OP
   2014-12-03 12:08:44 +08:00
@typcn 也可以帮忙写写平台代码呀~
luin
    59
luin  
   2014-12-03 12:18:25 +08:00
@typcn 没关系的,淘汰赛,写一堆 random 如果运气不错也许就进 8 强了哈哈
littlewey
    60
littlewey  
   2014-12-03 12:21:43 +08:00 via iPhone
支持!
bengol
    61
bengol  
   2014-12-03 12:26:14 +08:00
lighttao
    62
lighttao  
   2014-12-03 12:38:30 +08:00
typcn
    63
typcn  
   2014-12-03 12:46:51 +08:00
@luin Slack在下载。。今天MAS速度只有9KB/s。。。JS 初学

为什么没有调试窗口,比如 console.log ,,我得看着 Chrome 输出的对象结构才能写出来。。。。。
typcn
    64
typcn  
   2014-12-03 12:47:44 +08:00
@luin 好吧我2B了 没看API文档, admin#typcn.com
jc4myself
    65
jc4myself  
   2014-12-03 12:55:07 +08:00
a591826944
    66
a591826944  
   2014-12-03 12:56:37 +08:00
@hayeah Slack我下好了 也注册了。。怎么进群?
hayeah
    67
hayeah  
OP
   2014-12-03 12:57:59 +08:00
@a591826944 我发邀请到你邮箱了
datou552211
    68
datou552211  
   2014-12-03 12:59:14 +08:00
执行onIdle是不是也会消耗掉一帧?
a591826944
    69
a591826944  
   2014-12-03 13:00:05 +08:00
@hayeah 搜噶。。刚刚看到
hayeah
    70
hayeah  
OP
   2014-12-03 13:12:24 +08:00
@datou552211 有邮箱不?加你到 codegame slack 小组
luin
    71
luin  
   2014-12-03 13:15:31 +08:00
@datou552211 有效指令和无效指令(撞到墙还 go 或者场上有你的子弹还 fire)都会消耗帧数,但是 onIdle 本身不会消耗。当然执行 onIdle 时表示你的坦克已经没有任何指令需要执行了,如果 onIdle 函数不发出新指令,坦克该帧就不会动了,等到下一帧会继续执行 onIdle。可以加 slack 来讨论具体规则~
greatdk
    72
greatdk  
   2014-12-03 13:20:00 +08:00
[email protected] 刚弄了个一动不动,直到对方坦克跑头上才开炮的AI,虐了第一名的,哈哈哈,不过如果对方是以吃星星为主的就不行了
coolicer
    73
coolicer  
   2014-12-03 14:03:56 +08:00
@greatdk 2行代码弄死第一名。 :)
coolicer
    74
coolicer  
   2014-12-03 14:07:11 +08:00
@coolicer 原来还可以不动...
luin
    75
luin  
   2014-12-03 14:09:39 +08:00
@greatdk 不错嘛!关键难点是能赢更多的人~
datou552211
    76
datou552211  
   2014-12-03 14:10:42 +08:00
@hayeah
@luin
邮箱: [email protected]
执行onIdle的帧中,系统会等待onIdle直到它返回结果吗,如果onIdle创建了新指令,将会在该帧数内执行?
luin
    77
luin  
   2014-12-03 14:17:53 +08:00
@datou552211 不会等待的。流程是系统每帧会检查坦克有没有剩余可执行的指令,如果有则取出一个指令并执行它(每个指令都耗时一帧);如果没有则该帧坦克静止不动,然后引擎会执行 onIdle 函数并继续下一帧的循环(所以 onIdle 函数增加的指令会在下一帧执行)。
greatdk
    78
greatdk  
   2014-12-03 14:20:01 +08:00
卧槽宕机了?这个好好玩正在研究啊别死了啊
gkiwi
    79
gkiwi  
   2014-12-03 14:21:14 +08:00
bugkiwi gmail 谢谢!
blueandhack
    80
blueandhack  
   2014-12-03 14:25:18 +08:00
blueandhack gmail.com
luin
    81
luin  
   2014-12-03 14:33:36 +08:00
@greatdk 哈哈是有点,服务现在还在调试。可以加 slack 里来讨论
greatdk
    82
greatdk  
   2014-12-03 14:44:53 +08:00
怎么一点运行就结束并且说赢的原因是『代码运行时间更短』?
simapple
    83
simapple  
   2014-12-03 15:00:08 +08:00
来晚了,频繁502 和超时
luin
    84
luin  
   2014-12-03 15:14:34 +08:00
@simapple
@greatdk
在循环里用 print 现在会引起超时,正在解决。可以留邮箱加 slack~
simapple
    85
simapple  
   2014-12-03 15:16:07 +08:00
Esay
    86
Esay  
   2014-12-03 15:19:21 +08:00
如果两个人都不懂,那岂不是一直等待下去了 = =

[email protected]
Esay
    87
Esay  
   2014-12-03 15:20:32 +08:00
sorry,刚看到有最大帧数的限制
luin
    88
luin  
   2014-12-03 15:35:24 +08:00
@simapple
@greatdk
print 的性能问题找到原因了,已经初步改进了。今晚前会上线个新版本来彻底解决这个问题~
luckyboy
    89
luckyboy  
   2014-12-03 15:43:46 +08:00
咋全是gmail我来个不一样的 zhangmin6105#qq.com
justzero
    90
justzero  
   2014-12-03 16:13:13 +08:00
gb.justzero#gmail.com 求加
simonxia
    91
simonxia  
   2014-12-03 17:11:55 +08:00
子弹没有限制吧
[email protected]
lijinma
    92
lijinma  
   2014-12-03 17:23:57 +08:00
@simonxia 没有限制,但是场上最多只能存在一枚己方炮弹
anyexxx
    93
anyexxx  
   2014-12-03 18:03:42 +08:00
突然发现这周末没空
sharkli
    94
sharkli  
   2014-12-03 18:34:08 +08:00
mark
shawnhill
    95
shawnhill  
   2014-12-03 19:06:17 +08:00
zhuweiyou
    96
zhuweiyou  
   2014-12-03 20:15:50 +08:00
报名报名
[email protected]
greatdk
    97
greatdk  
   2014-12-03 20:39:48 +08:00
玩了一下午,还写了篇文章 http://www.wdk.pw/763.html
Livid
    98
Livid  
MOD
PRO
   2014-12-03 23:30:59 +08:00
@hayeah 是替换那个 issues 链接么?
Livid
    99
Livid  
MOD
PRO
   2014-12-03 23:51:39 +08:00
好的,替换了。
typcn
    100
typcn  
   2014-12-04 00:46:28 +08:00 via iPad
哈哈 上榜了
1  2  
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     911 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 37ms UTC 23:03 PVG 07:03 LAX 15:03 JFK 18:03
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86