V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hayeah
V2EX  ›  程序员

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

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

坦克大决战 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
   2014-12-03 23:30:59 +08:00
@hayeah 是替换那个 issues 链接么?
Livid
    99
Livid  
MOD
   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   ·   实用小工具   ·   4752 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 49ms · UTC 10:01 · PVG 18:01 · LAX 02:01 · JFK 05:01
Developed with CodeLauncher
♥ Do have faith in what you're doing.