Questions tagged «game»

此挑战通常基于,与游戏或游戏的某个部分相关,或与其模拟。

22
基本ASCII提示
替代标题:在墙上统计您的监狱判决 给定一个数字n,输出记录分为传统的每组5个和每行50个。 例子 1个 | | | | 4 |||| |||| |||| |||| 5 |||/ ||/| |/|| /||| 6 |||/ | ||/| | |/|| | /||| | 50 |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| |/|| |/|| …
36 code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

23
嘈杂的囚徒困境
在此挑战中,您将扮演吵杂的囚徒困境。 在囚徒困境是博弈论中一个场景,其中有两名球员,每两种选择:合作或者缺陷。如果每个球员都缺阵,他们会为自己做得比他们合作时更好。 反复犯人的困境是相同的游戏,只是您反复与同一个对手比赛,并且您知道对手过去玩过什么。您的目标始终是为自己积累最高分,而不管对手的表现如何。 嘈杂的囚徒困境使沟通变得有些混乱。您对对手过去玩过的游戏的了解会带来一些干扰。您还将了解过去的举动。面对同一个对手的回合中,噪声率是恒定的,但是不同回合之间的噪声率却不同。 挑战 在这个挑战中,您将编写一个Python 3程序来解决嘈杂的被囚徒的困境。 您的程序将收到三个输入: 您自己的动作,无需应用随机翻转。 对手的动作,并应用随机翻转。 状态变量,每轮以一个空列表开头,可以根据需要进行修改。如果您不想使用它,则可以忽略它。 您的程序应输出'c'以配合或'd'缺陷。 例如,这是一个程序,如果对手过去至少60%的时间在应用了随机翻转之后并且在前10次翻转中进行了合作,则该程序可以进行合作: def threshold(my_plays, their_flipped_plays, state): if len(their_flipped_plays) < 10: return 'c' opp_c_freq = their_flipped_plays.count('c')/len(their_flipped_plays) if opp_c_freq > 0.6: return 'c' else: return 'd' 如果您不了解Python,请使用伪代码编写提交内容,然后某个人(我或该站点的另一个成员)可以制作相应的Python程序。 游戏玩法 比赛亚军可以在这里找到:noisy-game。运行noisy-game.py以运行锦标赛。我将使用新提交的内容更新该存储库。示例程序可以在中找到basic.py。 程序的总体得分是其在100多个游戏中得分的总和。 游戏由每个玩家与每个玩家(包括其自身)的循环赛对决组成。一场对决包括100发回合。一回合包含300个动作,每个动作涉及输出'c'或'd'。 您的提交将与每个提交(包括您自己的提交)进行对战。每场比赛将进行100场比赛。在每个回合中,翻转概率将从中均匀地随机选择[0, 0.5]。 每回合将包含300步。在每次移动时,两个程序都将收到他们尝试过的所有先前播放的声音,以及在应用了翻转之后另一个程序已经做出的所有先前播放的声音,以及一个状态变量,该变量是可变的列表,程序可以根据需要对其进行修改。程序将输出其动作。 动作得分如下:如果一个程序播放a 'c',则相反的程序将获得2分。如果某个程序播放'd',则该程序将获得1分。 然后,以等于翻转概率的概率独立地翻转每个动作,并存储以显示给对手。 在完成所有回合之后,我们求和每个对战中每个球员获得的积分。然后,我们使用以下评分系统来计算每个玩家的游戏得分。在所有比赛完成后执行此评分。 计分 我们将使用进化评分。每个程序以相等的权重开始。然后,使用游戏中的总点数,权重更新如下,进行100次迭代: 每个程序的新权重与之前权重和平均总分的乘积成正比,再乘以其对手的权重。 …

24
给我画一个多米诺骨牌
挑战 给定两个数字0-9作为输入,输出一个多米诺骨牌(来自二重多米诺骨牌集),在两个面上都具有这些点数(点)。十个可能的面看起来像这样(用管道分隔): | | o| o|o o|o o|o o o|o o o|o o o|o o o | o | | o | | o | | o |o o|o o o | |o |o |o o|o o|o o o|o o o|o o o|o o o 或在单独的行上: ----- o ----- o …

28
选择强力球号码!
强力球是最近引起美国关注的彩票,因为当前的累积奖金(截至2016年1月11日)是历史上最大的乐透奖金,约为15亿美元。 强力球运动员从69个编号的白球中选择5个不同的数字,并从26个编号的红球中选择1个“强力球”数字。如果他们的五个白球选择与按任何顺序绘制的内容相匹配,并且选择了正确的“强力球”号码,他们将赢得大奖。 因此,赢得大奖的机会是1 (69 choose 5)*(26 choose 1)或((69*68*67*66*65)/(5*4*3*2*1))*26,即292,201,338中的1 没有人在2016年1月9日的最新抽奖中赢得大奖,但是也许有人会在美国东部时间2016年1月13日晚上10:59赢得下一张抽奖。 挑战 编写一个模拟强力球绘图的程序或函数,不输入任何内容,而是输出1至69之间的5个不同的随机数,然后输出1至26之间的1个随机的“ Powerball”数字(可以重复5个之一)初始数字)。 “强力球”数字应始终是输出中的最后一个数字,但其他前5个数字的顺序无关紧要。 这6个数字应以十进制输出,以空格分隔或换行符分隔,并带有一个可选的尾随换行符。输出中不允许使用逗号,方括号和其他字符。 因此,这些将是有效的输出(使用最后一张图中的数字): 32 16 19 57 34 13 32 16 19 57 34 13 所有292201338可能的结果都应该具有统一的可能性。您可以使用内置的伪随机数生成器,并假定它们符合此标准。 这是可在Python 2或3中使用的简单参考实现: import random print(' '.join(map(str, random.sample(range(1,70), 5) + [random.randint(1, 26)]))) 以字节为单位的最短代码获胜。 请注意,我与强力球没有任何隶属关系,也不是真的建议您参加比赛。但是,如果您从这里的一个程序生成的数字中赢得任何收益,那么我相信我们很乐意听到这一消息。:D

30
Yahtzee小直检测
在Yahtzee游戏中,玩家掷出五个六面骰子,并尝试制造某些手以得分。这样的一手牌是小顺子:四个连续的数字,不一定是顺序的。三种可能的小直道是1, 2, 3, 4,2, 3, 4, 5和3, 4, 5, 6。 例如,[3, 5, 6, 1, 4]包含小笔直[3, 4, 5, 6]。 输入项 五个整数的未排序列表,每个整数在1到6之间(包括1和6),表示Yahtzee手。 输出量 如果手牌有小笔直则为真值,否则为假值。 测试用例 真相: [[1, 2, 3, 3, 4], [1, 2, 3, 4, 5], [3, 5, 6, 1, 4], [1, 5, 3, 4, 6], [4, 5, 2, 3, 5], [1, …

1
扫雷求解器
我们已经生成了扫雷场,但是在PCG炸毁之前,确实有人必须清除这些生成的地雷! 您的任务是写一个Minesweeper解算器,该解算器与“ Working Minesweeper”的公认解决方案的稍作修改的版本兼容(动作之间用空格隔开,以允许更大的字段)。 输入:扫雷字段,字段之间用空格分隔。第一行表示地雷总数。 x:不变 !:标志 数字:该区域周围的地雷数量 例: 10 0 0 1 x x x x x 0 0 2 x x x x x 0 0 2 ! x x x x 0 0 1 2 x x x x 0 0 0 1 x x x x …

15
让我们玩Mölkky!
莫尔基 莫尔基(Mölkky)是芬兰的投掷游戏。玩家使用木销(也称为“mölkky”)尝试敲打尺寸几乎与投掷销类似的木销,标有从1到12的数字。销的初始位置如下: (07)(09)(08) (05)(11)(12)(06) (03)(10)(04) (01)(02) 本说明和以下规则基于Wikipedia。 简化的Mölkky规则 敲击一个图钉会得分该图钉上标记的点数。 敲2个或更多的针可计分被打倒的针数(例如,敲3个针可计3分)。 游戏的目的是精确达到50分。将得分重新设置为25分,得分超过50 分。 出于这一挑战的目的,我们将假设引脚始终处于上述确切顺序。(在真实的游戏中,每次掷球后,将其重新放置在降落位置上。) 所有其他Mölkky规则都将被忽略,仅考虑一个玩家。 输入项 包含12个布尔值的列表的非空列表。每个布尔值列表都描述了抛出的结果:如果销被撞倒则为1,否则为0。的布尔值在销的确切顺序给出,从左上到右下:7,9,8,5,11,12,6,3,10,4,1,2。 输出量 后,所有的分数由抛出应用规则在输入所描述的,计算出的1,2和3。 详细的例子 让我们考虑以下输入: // 07 09 08 05 11 12 06 03 10 04 01 02 [ [ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ], // scores …
33 code-golf  game  binary 

29
美元钞票拍卖
这是美元博弈游戏理论上的KOTH挑战。其中,一美元被卖给出价最高的人。出价以5美分递增,失败者也支付出价。他们的想法是,为了减少损失,两家公司都将竞标战争升级到远远超过一美元的价值。 希望您的机器人比这更聪明。 您将通过扩展net.ramenchef.dollarauction.DollarBidder课程来创建一个玩这种游戏的机器人。nextBid给定另一个机器人的先前出价,您必须实现返回机器人的下一出价的方法。如有必要,您还可以使用该newAuction方法为对手的机器人等级进行每次拍卖重置。 public abstract class DollarBidder { /** * Used by the runner to keep track of scores. */ long score = 0; /** * (Optional) Prepare for the next auction. * * @param opponent The class of the opponent's bot. */ public void newAuction(Class<? extends DollarBidder> opponent) {} …

15
我需要多少法力?
Dungeon Master是有史以来最早的实时角色扮演游戏之一,最初于1987年在Atari ST上发布。在当时其他令人兴奋的事情中,它提供了一个基于符文的相当复杂的咒语系统。 今天的任务是编写一个程序或函数,以评估在Dungeon Master中施放给定咒语所需的法力点数。 上图右上方的青色框是“拼写”系统。 法术,符文和法力 地下城主法术由2至4个符文组成,并按照以下顺序从以下类别中进行选择: 功率(强制性) 元素影响力(强制性) 表格(可选) 类/对齐(可选) 这意味着有效的咒语是: 力量+元素影响 力量+元素影响力+形式 力量+元素影响力+形式+阶级/阵线 每个类别包含6个符文,每个符文都有一个相关的基础法力消耗: ============================================================================= | Power | Rune | Lo | Um | On | Ee | Pal | Mon | | +-----------+------+------+------+------+------+------+ | | Base cost | 1 | 2 | 3 | 4 | …

10
验证扫雷板
您的目标是检查完整的扫雷板是否有效。这意味着每个数字都是与其相邻单元格(包括对角线)中地雷的正确计数。董事会不环绕。 与往常一样,您应该提供一个函数或程序,以字节为单位的最短代码将获胜。 另请参阅生成,解决和全面实施 Minesweeper的过去挑战。 输入: 像这样的单个字符串:02X2 13X2 X211。 扫雷器板的行以空格分隔。因此,以上代表3x4板: 02X2 13X2 X211 每个小区是一个字符:X用于矿场,或一个数字0通8。 所有行具有相同的长度。 至少有3行和3列。 输入的内容不能以空格开头或结尾,但是如果需要,可以在结尾添加换行符。 输出: 一致的Truthy上正确板和一致的Falsey不正确的板值。一致意味着所有Truthy输出相同,而所有Falsey输出相同。 测试用例 每行是一个单独的测试用例。 True: 02X2 13X2 X211 XXXX XXXX XXXX XXXX XX4X2 5X6X4 XX6XX 4XX54 2X4XX False: 02X2 13X2 X212 XXXX XXXX X7XX XXXX XX5X2 5X6X4 XX6XX 4XX54 2X5XX

30
一口价密封式拍卖
最后结果 比赛结束了。恭喜hard_coded! 一些有趣的事实: 在40920次拍卖中,有31600次(77.2%),第一轮的获胜者赢得了该拍卖中的最多回合。 如果例如机器人包括在比赛中,前九位地方不再只是改变AverageMine和heurist将交换自己的立场。 拍卖的前10名结果: [2, 2, 3, 3] 16637 [0, 3, 3, 4] 7186 [1, 3, 3, 3] 6217 [1, 2, 3, 4] 4561 [0, 1, 4, 5] 1148 [0, 2, 4, 4] 1111 [2, 2, 2, 4] 765 [0, 2, 3, 5] 593 [1, 1, 4, 4] …

4
反转扫雷板
扫雷(Minesweeper)是一种流行的计算机游戏,您可能已经浪费了时间在游戏中,尝试根据每个非地雷单元具有多少个相邻地雷的提示来显示矩形网格中的地雷单元。如果您还没有玩过,请在这里进行。 关于扫雷网格(又称木板)的一个漂亮的数学事实是: 一个董事会及其补编具有相同的地雷总数。(证明) 这就是说,如果您拥有一个完全显示的扫雷网格,则该网格上所有数字的总和,即“ 地雷总数”,将等于该网格补码的地雷总数,即每个地雷都已被替换的网格一个非地雷,每个非地雷都被一个地雷取代。 例如,对于扫雷网格 **1.. 34321 *2**1 矿山总数为1 + 3 + 4 + 3 + 2 +1 + 2 +1 = 17。 网格的补充是 24*** ***** 3*44* 总共有我的2 + 4 + 3 + 4 + 4 = 17。 编写一个程序,以文本形式获取任意的扫雷网格,该网格*表示一个地雷,并1通过8表示与非地雷单元相邻的地雷数。您可以选择使用.或0或 (空格)来表示没有地雷邻居的像元。您可以假设输入网格将被正确标记,即每个非地雷单元将准确地表示正交或对角线紧邻其的地雷总数。 你的程序需要打印电网的补相同的格式(使用相同的.,0或 如您在输入拼音)。 以字节为单位的最短代码获胜。 除了编写程序,您还可以编写一个函数,该函数将输入网格作为字符串并打印或返回补码网格。 输入或输出中的尾随换行符很好,但除了构成网格的字符外,不应有其他字符。 您可以假设1×1的网格将是最小的输入。 测试用例 由于补数的补数是原始网格,因此可以交换所有输入和输出。网格也可以旋转以用于进一步的测试案例。 输入: …

30
俄罗斯轮盘,已重装
让我们玩俄罗斯轮盘! 通常,这是编写最短的MOD 6程序的竞赛,但这不是很现实,因为每次单击获胜的机会都会减少。规则如下: 模拟一个真实的六射手: 将一颗子弹放入六个弹药室之一中,然后仅在比赛之前将枪管旋转一次。 第n次尝试失败的机会是1/6。 n次尝试后 输球的机会是1 /(6-n) 您保证最多只能尝试6次。 输: 显示文字 *BANG!* 终止程序。 获奖情况: “胜利”是指枪不射击,但子弹距离锤子较近。 显示文字 *click* 向用户展示“触发器”以及终止程序的能力(例如,“ ctrl + c”,请参见下文)。 程序特定: 拉动触发器是某种形式的用户输入,包括第一次尝试。(这可以是击键,单击鼠标等等;不需要文本提示。) 该程序仅允许一个实例,直到被终止。(运行该程序的新实例类似于使桶具有良好的旋转度,即,下次单击失败的概率重置为1/6。) 最短的代码胜出! 排行榜 显示代码段 <style>body { text-align: left !important} #answer-list { padding: 10px; width: 290px; float: left; } #language-list { padding: 10px; width: 290px; float: left; …
32 code-golf  game  random 

20
法鲁洗牌数组
阿法鲁洗牌是经常使用的魔术到“洗牌”甲板的技术。要执行Faro随机播放,您首先将卡座切成相等的两半,然后将这两个半插入。例如 [1 2 3 4 5 6 7 8] 法鲁洗牌是 [1 5 2 6 3 7 4 8] 可以重复多次。有趣的是,如果重复此次数足够多,您将总是回到原始数组。例如: [1 2 3 4 5 6 7 8] [1 5 2 6 3 7 4 8] [1 3 5 7 2 4 6 8] [1 2 3 4 5 6 7 …
31 code-golf  permutations  card-games  code-golf  graphical-output  random  code-golf  image-processing  color  code-golf  primes  code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

2
井字游戏的最佳游戏
这个挑战是关于井字游戏,但它是在圆环上玩的。 怎么玩 要创建必要的游戏板,请首先使用常规的Tic Tac Toe游戏板。首先,通过连接左右边缘将其折叠成圆柱体。然后通过连接顶部和底部边缘将其折叠成环形。这是这种游戏板的简单可视化效果,其中包含一些操作(病漆技能!)。 井字游戏的规则与普通井字游戏的规则相同。每个玩家交替放置X和O。行,列或对角线中有3个相同符号的第一个获胜。 由于圆环很难观察到,因此我们只需将板子投影回纸上即可。现在我们可以像普通的井字游戏一样玩游戏了。唯一的区别是,您还可以用对角线中的3个相同的符号赢钱。例如,玩家1(X)赢得下一局。通过稍微改变圆环上的视图,您可以轻松看到这一点。 如果您有兴趣,可以在Torus Games的Torus上玩Tic Tac Toe 。有Windows,Mac和Android版本。 最佳游戏 在这个挑战中,人们对最佳游戏感兴趣。最佳游戏是指两个玩家都扮演最佳策略的游戏。在常规的Tic Tac Toe棋盘上,最佳游戏总是以平局结束。令人着迷的是,在环形板上总是第一个玩家获胜。实际上,在圆环板上的游戏永远不会以平局告终(即使玩家玩的不是最佳状态)。 最佳策略非常容易: 如果您可以通过放置符号赢钱,那就去做。 否则,如果对手在一行/列/对角线中有两个符号,请尝试将其阻止。否则,请执行您想要的操作。 否则,请执行您想要的操作。 每个最佳游戏都恰好由7个动作组成,这些动作可以用以下方式描述: 玩家1将X放置在棋盘上的任意位置(9个选择) 玩家2在棋盘上的任意位置放置一个O(8个选择) 玩家1将X放置在棋盘上的任意位置(7个选择) 玩家2的举动可能会被强制(1个选择),否则,他会将O放置在任何位置(6个选择) 玩家1的举动被迫(1选择) 玩家2陷入困境(玩家1可以通过两种不同方式获胜),因此玩家2必须以一种方式阻止玩家1(2个选择) 玩家1做出最后的举动并获胜(1个选择) 我们的投影板上有9 * 8 * 1 * 6 * 1 * 2 * 1 + 9 * 8 * 6 * 1 * …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.