• 请不要在回答技术问题时复制粘贴 AI 生成的内容
hayeah
V2EX  ›  程序员

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

  hayeah · Dec 2, 2014 · 16166 views
This topic created in 4355 days ago, the information mentioned may be changed or developed.

坦克大决战 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 群里。

主办方

Supplement 1  ·  Dec 3, 2014
活动使用 Coding.net 来协作开发,请关注 https://coding.net/u/luin/p/CodeGame/git
121 replies  •  2014-12-06 13:07:03 +08:00
1  2  
❮ ❯
hayeah
hayeah
OP
Dec 2, 2014
1
感谢 @Livid 置顶
luin
luin
Dec 2, 2014
2
哈哈,欢迎大家来玩~~~
kokdemo
kokdemo
Dec 2, 2014
3
kokdemo#gmail

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

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

/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
miaoever
Dec 2, 2014
27
支持!
leo.miao.ever#gmail.com
luin
luin
Dec 2, 2014
28
@a591826944 嗯嗯修上面的 bug 时数据没删掉,已经删好啦
a591826944
a591826944
Dec 2, 2014
29
@luin 我问个问题。。我程序里面 有概率 随机转向 。。但是我运行的时候为什么不是随机的 而是 每次运行路线都一样
luin
luin
Dec 2, 2014
30
@a591826944 可以看在 GitHub 上的讨论: https://github.com/luin/CodeGame/issues/15 总结就是为了保证比赛结果的一致性,Math.random 的随机种子是脚本本身的摘要。所以同一脚本每次运行的结果是一样的,但对单次运行而言,每次 random 都是随机的。如果有问题的话欢迎到 GitHub 上讨论~~
MingZhe
MingZhe
Dec 2, 2014
31
顶老大,还有 L 神
@luin
@hayeah
wtbhk
wtbhk
Dec 2, 2014
32
这个不是Zihua做的那个吗
sennes
sennes
Dec 2, 2014
33
发现slack不会用。是不是要先去slack注册一下?
luin
luin
Dec 2, 2014
34
@wtbhk 报告~我就是~
luin
luin
Dec 2, 2014
35
@sennes 嗯注册下然后 @hayeah 会邀请你~超好用的聊天工具
fyu2012
fyu2012
Dec 2, 2014
36
JavaScript菜鸟来报名 [email protected]
oyxhm
oyxhm
Dec 2, 2014
37
g0thic
g0thic
Dec 2, 2014
38
支持 你.....
xhacker
xhacker
Dec 3, 2014
40
liu.dongyuan ✉️ gmail.com
sailxjx
sailxjx
Dec 3, 2014
41
搭车参观 [email protected]
hayeah
hayeah
OP
Dec 3, 2014
42
@Livid 我们想把帖子里 CodeGame 的仓库链接改成: https://coding.net/u/luin/p/CodeGame/git

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

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

[email protected]
Esay
Esay
Dec 3, 2014
87
sorry,刚看到有最大帧数的限制
luin
luin
Dec 3, 2014
88
@simapple
@greatdk
print 的性能问题找到原因了,已经初步改进了。今晚前会上线个新版本来彻底解决这个问题~
luckyboy
luckyboy
Dec 3, 2014
89
咋全是gmail我来个不一样的 zhangmin6105#qq.com
justzero
justzero
Dec 3, 2014
90
gb.justzero#gmail.com 求加
simonxia
simonxia
Dec 3, 2014
91
子弹没有限制吧
[email protected]
lijinma
lijinma
Dec 3, 2014
92
@simonxia 没有限制,但是场上最多只能存在一枚己方炮弹
anyexxx
anyexxx
Dec 3, 2014
93
突然发现这周末没空
sharkli
sharkli
Dec 3, 2014
94
mark
shawnhill
shawnhill
Dec 3, 2014
95
zhuweiyou
zhuweiyou
Dec 3, 2014
96
报名报名
[email protected]
greatdk
greatdk
Dec 3, 2014
97
玩了一下午,还写了篇文章 http://www.wdk.pw/763.html
Livid
Livid
MOD
PRO
Dec 3, 2014
98
@hayeah 是替换那个 issues 链接么?
Livid
Livid
MOD
PRO
Dec 3, 2014
99
好的,替换了。
typcn
typcn
Dec 4, 2014 via iPad
100
哈哈 上榜了
1  2  
❮ ❯
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4221 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 182ms · UTC 09:48 · PVG 17:48 · LAX 01:48 · JFK 04:48
♥ Do have faith in what you're doing.