在这个挑战中,玩家需要尽可能晚地修改定时炸弹,而不会被打到脸上。
让N
是机器人的数量加上一个。每一轮,每个机器人都会收到以下论据:
机器人被要求在1到N
(包含1)之间播放一个整数。在所有的机器人播放它们的数字之后,一个计数器将被初始化为来自所有机器人的数字之和的一半。然后,每个机器人从计数器中减去它播放的数字。机器人是从最低到最高的排序。同样数量的机器人被认为是同时减去计数器。当计数器达到零或变成负数时,炸弹就会爆炸。
炸弹爆炸后,这一轮结束,这一轮的点数计算如下:
示例回合:
[1,2,3,4,5]
。初始计数器为7.5,炸弹在4上爆炸,1、2和3的机器人分别获得2、4和6分,4点的机器人损失4分,5点的机器人没有损失点数。[1,1,2,4]
。初始计数器为4,炸弹在2上爆炸。1的机器人获得2点,机器人2损失2,4的机器人也不会损失点数。[3,3,3,3]
。最初的计数器是6,炸弹在3分上爆炸,所有的机器人都损失3分。每一轮的积分加在那一轮的总得分中。每一轮由1000轮组成,将有10轮。最后的总分是每次运行的总和,最终得分最高的机器人最终获胜。
挑战在于JS。
您的bot必须是一个具有run
方法的对象,该方法以一个数字数组和一个数字作为输入,并返回一个介于1和N
之间的整数。超出有效范围的值将四舍五入并夹紧。如果该值不是数字,则将选择有效范围内的数字,并且不指定选择该数字的行为。
在第一轮中,给定的数字数组将被随机数初始化,而上一轮点数的个数将为0。
Math.random
方法。在评分期间,将使用seedrandom.min.js,将一个秘密字符串与运行号连接起来,作为每次运行的种子。秘密字符串的md5是4311868bf10b3f7c1782982e68e6d7ca
,用于证明我在挑战后没有更改密钥。sum
。控制器的代码可以找到这里。请随时指出我的代码中的错误,谢谢。
{
// Example bot
// It always play the middle number.
name: "Middle",
run(number) {
return Math.round((numbers.length+2)/2);
}
}
{
// Example bot
// It starts at 1, advances when it got points last round,
// and resets when it lost points.
name: "Advance and reset",
last: 1, // Setting properties is allowed
run(numbers, points) {
var own = this.last;
if(points > 0){
own = Math.min(this.last+1, numbers.length+1);
}
if(points < 0){
own = 1;
}
this.last = own;
return own;
}
}
以上两个例子机器人也将在游戏中发挥。
发布于 2021-05-03 12:35:14
{
name: "Playing It Safe",
run(numbers) {
return 1;
}
}
发布于 2021-05-03 12:25:27
{
name: "33%",
run(numbers) {
return numbers[Math.floor(numbers.length/3)];
}
}
{
name: "Pure random",
run(numbers) {
return Math.floor(Math.random() * (numbers.length+1))+1;
}
}
{
name: "Copy random",
run(numbers) {
return numbers[Math.floor(Math.random() * numbers.length)];
}
}
{
name: "Alternate",
round: 0,
run(numbers) {
this.round++
return (this.round % 2)? 1 : (numbers.length + 1)
}
}
发布于 2021-05-03 12:41:17
{
name: "Smart Random",
run(numbers) {
var random_int = Math.floor(Math.random() * 3 * (numbers.length+1)/4);
return random_int
}
}
返回包含在0到3/4N
之间的随机整数。
我希望这是可行的-这是我的第一个JS和我的第一个KoTH答案。
https://codegolf.stackexchange.com/questions/224969
复制相似问题