编辑:最近,我的问题已被提议作为2048 Bot Challenge的副本。我要强调,这个问题不同于那个问题,并且要求答案与那个问题的思考方式有所不同。2048 Bot Challenge要求用户创建一个机器人,该机器人将运行一个小时,其中最高的分数是用户的分数。此外,它的限制为555个字节。我的挑战很少频繁地运行代码,只有3次。您的得分是通过使用这三倍的平均得分,再除以您打高尔夫球的字符长度得出的。我的问题是鼓励参赛作品“更聪明”,而不是试图通过蛮力获得最高分。
--
编辑:将get方法更改为getTile,以避免与JS关键字get发生冲突。此外,增加了高分部分。
最近,我创建了一个站点,该站点允许使用JavaScript控制流行的游戏2048。我的网站在这里链接:
怎么样:
Ace编辑器位于面板上方。您将代码放入其中,该代码每250毫秒运行一次,或每秒运行4次。这称为循环。
使用以下方法控制电路板。您不能使用箭头键。
up(); //move up
down(); //move down
left(); //move left
right(); //move right
move(integer); //integer is a direction. 0:up,1:right,2:down,3:left
getTile(y,x); //gets the value of the tile in position y,x on the board. See diagram
为方便起见,定义了以下变量:
eother //boolean, alternates every cycle
frozen //integer, counts how many cycles the board has remained stationary
lastDir //integer, indicates the last direction that was tried to move in
//uses same format as the move method above.
startup //boolean, will always be true when the game first starts
//you can change it as you wish
a
b //a b and c are all persistant variables, they do not change each cycle
c //any other variables defined in the cycle will be reset every time
规则:
- 没有随机性,必须使用逻辑。(是的,我知道示例代码使用随机数。)
- 不会迷上游戏功能或以其他方式作弊
- 通常,尝试每个周期仅调用一个移动方法。如果您使用更多,也可以,但会随动画而变
- 棋盘必须以随机状态开始,不得更改赛前状态
- 您必须在帖子中同时提供未压缩和压缩的代码版本。
- 您必须提供一个链接到已经通过PasteBin提供服务的未压缩版本的站点的链接(例如,... thatcoolidea.com/2048?i=pH18GWtu会加载示例代码。)
得分:
- 您的代码将由我评分。
- 分数的A部分是三段代码的平均值,四舍五入。
- 分数的B部分是打高尔夫球代码的字符长度。
- 您的最终分数是A部分除以B部分
如果获奖者选择,并在代码中的注释中予以承认,则他们的代码将在网站上被永久标记为示例代码。
祝好运!希望您喜欢挑战。
当前最高分数 225.22-冰柜-user3217109