Questions tagged «game»

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

2
准备去死?
背景 桌上型角色扮演游戏中ennui的一种来源是处理涉及许多骰子的掷骰。施放解散咒语可能是瞬间的,但滚动并加在一起40个骰子肯定不是! rpg.stackexchange.com上讨论了许多处理此问题的建议。但是,其中一些(例如使用滚轴程序或平均骰子)会剥夺玩家的一些乐趣和控制感。其他方法,例如滚动4个骰子并将总数乘以10,会使结果波动更大(平均骰子作用相反)。 这个问题涉及减少骰子掷骰数而不改变平均结果(均值)或其摆动(方差)的方法。 记数法和数学 在这个问题中,我们将使用以下表示法来表示骰子掷骰: n d k(例如40d6)是指k面模具的n卷总和。 n d k * c(例如4d6 * 10)描述将结果乘以常数c。 我们还可以添加滚动(例如4d6 * 10 + 40d6)和常数(例如4d6 + 10)。 对于单模辊,我们可以证明: 均值:E [1d k ] =(k + 1)/ 2 方差:Var(1d k)=(k-1)(k + 1)/ 12 利用均值和方差的基​​本属性,我们可以进一步推断出: 均值:E [ m d k * a + n d l * …

11
进行中的ASCII Hangman
(受到有关代码审查的问题的启发) 假设有两个人在玩《Hangman》,但您只是听错了游戏,想绘制当前状态。 给定两个单词作为输入,每个单词匹配[A-Z]+或[a-z]+(您选择)一个单词,按照以下规则将rules子手游戏的当前状态输出为ASCII艺术。 第一个单词是要猜测的单词,第二个单词是已经猜测的字母。这些可以按任何顺序作为输入。 要猜测的单词保证为非空,但已经被猜测的字母可能为空(即,好像是游戏的开始)。 该游戏将始终是有效的子手游戏(即,不会重复猜出的字母,不会在游戏结束时猜到字母,您只会收到字母作为输入,等等)。 子手图画下方必须是要猜的单词,用_空格隔开,以代替尚不为人所知的字母。例如,如果要猜的单词是BOAT,则在hangman图下面必须是_ _ _ _。如果这个词被BOAT用A猜,然后在下面的图必须_ _ A _。 下面这个词来猜测一定是已经猜到的字母是不是在这个词。它们可以按任何顺序排列,并且可以根据需要用任何非字母分隔符分隔。 从最初开始到游戏结束,这是the子手游戏的状态。每个错误猜出的字母都会使状态前进一个。因此,第一个错误猜出的字母使头部O出现,下一个使身体|出现,等等。 +---+ | | | | | | ========= +---+ | | O | | | | ========= +---+ | | O | | | | | ========= +---+ | | O | /| | | …

1
Nethack中卷轴的自动价格识别
哦,天哪!!你不能把我们和门把手一起留在这里!到处都是nethack!- :1天前通过Geobits 好吧,不能令人失望... 介绍 (如果您不关心博览会和/或患有Tab爆炸综合症,则可以跳过本节) Nethack(和Rogue以及同一个roguelike类型的类似游戏)的特征机制之一就是其识别系统。在游戏开始时,只会“正式识别”起始库存中的项目。绝大多数其他物体始于未知。例如,在被识别之前,“反射盾”将最初显示为“抛光银盾”。 “抛光的银盾”只能是反射的盾,但这在另外两种情况下会产生有趣的结果。 某些项目互不相同,但是具有相同的“外观”。例如,如果您找到“ 灰色石头 ”,则可能是以下四件事之一:火石(无用),试金石(可能有用),负载石(会重担,因为它重达一吨,而您不能丢掉它)或运气石(极其有用,这对于赢得比赛几乎是必需的)。 许多物品(卷轴,魔杖,戒指,咒语书,一些装甲等)具有随机外观。这意味着存在一系列可能出现的外观,例如,药水可能具有的列表;例如,[ 金色药水,涡旋药水,泡沫腾腾的药水,紫红色药水等]。这些外观,然后随机分配到他们其实都是(治疗药水,瘫痪的药水,看到隐形药水,多晶型的药水等)。 这意味着六角形护身符可以在一场游戏中拯救您的生命(挽救生命的护身符),而在下一场游戏中将您窒息杀死(扼杀护身符)。 自然地,这使得识别物品成为游戏的关键部分。物品可以被“正式识别”,这意味着它们将明确地显示为一定物品(例如,您发现的所有镶有珠宝的魔杖都将显示为创造怪物的魔杖);这主要是通过标识卷或咒语书来完成的。通常情况下,这些都供不应求,这使我们... 非正式鉴定。这意味着您非常确定(或确定)某个未识别的项目属于某种类型(或只能是几种类型之一),但尚未“正式”识别它。这可以通过几种方法完成:对棒进行雕刻测试,对戒指进行下沉测试,或者最常用的方法... ... 价格识别!这个挑战是关于什么的。 简而言之,在《毁灭的地下城》中遍布商店(是的,店主们认为在地下地下城中建立商店是个好主意;不要问为什么)。在这些商店里,您可以买卖旅行中遇到的各种物品。在购买或出售商品时,店主会首先告诉您他将多少商品出售给您/从您那里购买。由于某些商品保证有特定的价格,因此您可以使用它来非正式地标识某种商品。 某些物品,例如光轴滚动条,是唯一花费一定金额的物品,使您可以明确地标识它们。但是,大多数商品与其他同类商品共享一个价格组,这只能让您缩小可能性范围(这仍然很有用)。但是,一件商品的买/卖价格受许多变量(例如您的魅力统计)的影响。因此,上面的图表。 你能告诉我我喜欢Nethack吗? 输入项 输入将作为当前正在玩的(原始版本3.4.3)Nethack游戏提供: "For you, most gracious sir; only 177 for this scroll labeled VERR YED HORRE." --More-- ------------ | . --------- | | ---------- | ^ | | .## ################. …
21 code-golf  game 

4
解决亚里士多德的数问题
亚里士多德(Aristotle)的数字难题是向六边形网格中的19个单元中的每个单元填充一个介于1到19之间的唯一整数,以使沿每个轴的总数为38的挑战。 您可以像这样绘制游戏板: 本质上,这个难题是对以下十五个方程组的解决方案: ((a + b + c) == 38 && (d + e + f + g) == 38 && (h + i + j + k + l) == 38 && (m + n + o + p) == 38 && (q + r + s) == 38 …

20
与对手接触的囚徒困境
在这个挑战中,您将编写一个扮演囚徒困境的机器人。要注意的是:您将无法访问以前的游戏历史。相反,您将可以访问对手本身。在此版本中,如果两个玩家都合作,则他们将获得+2分;如果两个人都缺憾,则将获得+1分;如果一个人合作但一个缺陷,则叛逃者将获得+3分,而另一位则无分。每个提交将与其他每个提交(包括自身)进行10次播放。获胜者是总分最高的作品。 控制器:您应该以以下形式编写一个javascript函数 function submissionName(them) { /* Your code here */ } 控制器使用函数的name属性来显示结果,因此如果它不是这种格式(而是f = x => ...或f = function() { ... }),则将很难看到您的分数,并且您将无法访问自己的函数。 该函数将接受一个参数:them这是对手的函数。然后,它可以调用该函数,以查看将给定某些函数作为输入的对手的反应。根据这些数据,您必须分别返回“ C”或“ D”以进行合作或出现缺陷。 示例(将竞争): function cooperate(them) { return 'C'; } function defect(them) { return 'D'; } function nice(them) { // Do whatever they would do when faced with a …

3
解决瞳难题
介绍 用最少的字节数写一本关于Hitori难题的求解器。 挑战 您的任务是为Hitori(日语中的“孤独”一词;游戏名称的含义为“让我一个人呆”)编写解算器。规则如下: 您会看到一个n×n的单元格网格,每个单元格包含1到n(含)之间的整数。 您的目标是通过从给定的网格中删除数字,以确保在该网格的每一行和每一列中都不会出现多次重复的数字,但要遵守以下两个规则中的限制, 您不能从两个相邻的(水平或垂直)单元格中删除两个数字。 其余编号的单元必须全部相互连接。这意味着可以将任意两个剩余编号的单元格与一条曲线连接,该曲线仅由连接相邻剩余编号(水平或垂直)的线段组成。(感谢@ user202729指出这是丢失的) 我希望规则现在已经明确。如果规则有任何不清楚的地方,请查看Wikipedia页面。 测试用例 删除数字的单元格用0表示。 Input -> Output 4 2 2 2 4 0 2 0 4 1 4 2 3 -> 1 4 2 3 2 3 2 1 2 3 0 1 3 4 1 2 3 0 1 2 4 …
21 code-golf  game 

3
原子比例游戏
您的任务是使机器人扮演得分最高的Atomas。 游戏的运作方式: 游戏板以6个“原子”的环开头,数字范围为1到3。您可以“玩”两个原子之间或另一个原子上的原子,具体取决于原子本身。 您可以有一个普通原子,也可以有一个特殊原子。 正常原子: 您可以在板上任意两个可用原子之间播放普通原子。 您从处于该范围内的原子开始1 to 3,但是该范围每40移动一次就增加1(因此,在40移动之后,范围变为2 to 4)。 如果板上的原子小于该范围,则有1 / no. of atoms of that number on the board可能产生。 假设您有一个2要玩的地方,董事会看起来像这样: 1 1 2 1 让我们将放在的2右侧1。 董事会现在变成: 1 1 2 1 2 注意:木板环绕,所以1最左侧的实际上2是最右侧的旁边。稍后将很重要。 有“特殊”原子的4种类型,它们是: 的+原子: 这个原子在两个原子之间起作用。它有五分之一的机会产卵。 如果原子两侧的+原子相同,则会发生聚变。运作方式如下: The two atoms fuse together to create an atom one higher. …
21 code-challenge  game  code-golf  combinatorics  permutations  code-golf  image-processing  brainfuck  encode  steganography  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  fibonacci  code-golf  string  code-golf  sorting  popularity-contest  statistics  code-golf  ascii-art  kolmogorov-complexity  code-golf  code-golf  ascii-art  tic-tac-toe  code-golf  string  code-challenge  classification  test-battery  binary-matrix  code-golf  math  arithmetic  code-golf  ascii-art  random  code-golf  string  code-golf  number  binary  bitwise  code-golf  number  arithmetic  code-golf  math  ascii-art  code-golf  string  ascii-art  code-golf  string  ascii-art  code-golf  string  code-golf  counting  code-golf  number  binary  bitwise  decision-problem  code-golf  array-manipulation  code-golf  tips  brain-flak  code-challenge  quine  source-layout  code-generation  code-golf  linear-algebra  matrix  abstract-algebra  binary-matrix  code-golf  string  palindrome  code-golf  puzzle-solver  sudoku  code-golf  ascii-art  code-golf  graphical-output  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  code-golf  clock 

30
用给定的宽度绘制空心的#
我从Codingame那里获得了这一挑战,并且对比我的更好的解决方案感到好奇: 通过标准输入给定宽度,在给定的宽度和长度上绘制一个空心的#号正方形。 例: 5结果 ##### # # # # # # ##### 我用python解决了这个问题,所以我对其他python代码特别感兴趣。但是,请随时以所需的任何语言发布您的解决方案。
21 code-golf  string  ascii-art  number  code-golf  grid  code-golf  string  ascii-art  code-golf  alphabet  cipher  code-golf  math  number  code-golf  quine  code-golf  palindrome  polyglot  code-golf  number  array-manipulation  counting  logic  code-golf  string  primes  binary  decision-problem  code-golf  ascii-art  kolmogorov-complexity  popularity-contest  code-golf  probability-theory  code-golf  string  code-golf  python  polyglot  programming-puzzle  c++  code-golf  math  code-golf  binary  integer  bitwise  code-golf  rational-numbers  code-golf  string  palindrome  code-golf  ascii-art  code-golf  code-golf  string  fibonacci  code-golf  math  sequence  code-golf  code-golf  string  palindrome  code-golf  string  code-golf  math  primes  source-layout  code-golf  sequence  binary  integer  code-golf  math  arithmetic  game  code-golf  restricted-source  palindrome  code-golf  restricted-source  palindrome  code-golf  combinatorics  binary  code-golf  string  math  code-golf  ascii-art  number  code-golf  cipher  code-golf  base-conversion  counting  code-golf  sequence  random  classification  code-golf  string  subsequence  code-golf  permutations  code-golf  string  code-golf  string  cipher  code-golf  kolmogorov-complexity  arithmetic  integer  code-golf  quine  markov-chain  code-golf  string  code-golf  code-golf  ascii-art  maze 

4
九个男人的莫里斯伯爵米尔斯
介绍 九个人的莫里斯(Mills)(也称为米尔斯)是一款由两名玩家组成的棋盘游戏,在以下棋盘上进行播放(图片摘自链接的Wikipedia页): 每个玩家有9个人,黑白相间。具体规则对于此挑战并不重要,但如果您有兴趣,请查看Wikipedia页面。 挑战 给定一个网格作为输入,它表示在一定boardstate,输出的总研磨计数m用0<=m<=8。 当三个相同颜色的人在相连点的直排中时,他们就形成了磨坊。 b2到f2不是因为磨的人具有不同的颜色。另外d2,d5由于必须连接三个点,因此也不会形成磨机。 上图中的木板包含两个磨房。一个从f2到f6一个从e3到e5。 输入项 该板表示为具有24个点的2D网格,如上面的示例图像所示,这些点已连接。该示例a-g在列中使用字母,1-7在行中使用数字,但是您可以选择任何合理的输入格式,只要它将24个唯一坐标映射到以下状态之一即可: 空的 黑色拍摄 采取白色 具体的表达方式取决于您,而颜色并不限于“ b”或“ w”。 除此之外,您的输入内容可能不包含任何其他信息。 附加条款 您不必通过任何值来映射点。如果要将输入作为2D数组,也可以。但是请记住,并不是所有的点都被使用,并且您必须考虑它们之间的连接。 输入可能为空,在这种情况下,您必须输出零(空板->无磨)。 由于每个玩家有9个人,因此输入的总得分不会超过18。 您可以在输入中省去空点,因此只取取输入点。 可以以任何方式订购输入。您不能依赖特定的顺序。 您可以假设输入将始终有效。这意味着每种颜色的人不会超过9个人,并且每个点都是唯一的。 规则 明确您在解决方案中使用的输入格式。强烈建议提供示例程序运行。 允许功能或完整程序。 输入/输出的默认规则。 有标准漏洞。 这是代码高尔夫球,因此最低字节数获胜。Tiebreaker是较早提交的内容。 测试用例 这里的输入格式是一个元组列表,其中的坐标如上例中所示为第一个元素,点的状态为第二个元素。白色标记的点标记为“ w”,黑色标记的点标记为“ b”。所有其他点均被忽略,并且为空。 [(“ a4”,“ w”),(“ b2”,“ b”),(“ b4”,“ b”),(“ c4”,“ b”),(“ d1”,“ w”) ,(“ d2”,“ w”),(“ e3”,“ w”),(“ …

30
剪刀石头布
实施经典的剪刀石头布。 条件: 用户将输入“ r”,“ p”或“ s” 程序将输出“ r”,“ p”或“ s”以及结果 程序选择(“ r”,“ p”或“ s”)必须是伪随机的(我在看你霍华德) 结果可以用任何可打印的字符表示,对于用户输入的内容(用户赢,输或平局),应始终存在三个可能的结果。 如果用户不输入任何内容,或者与“ r”,“ p”或“ s”不同的内容不重要,将会发生什么。 你需要: 提供打高尔夫球的代码。 取消编码 您如何调用程序 样品运行 如果平局显示投票最多的答案,我将选择字符较少的答案。 打高尔夫好运,可能永远都对你有利。 我将用Java发布自己的答案。 对于那些住在山下的人: r =岩石 p =纸 s =剪刀 石头:胜于剪刀,不胜枚于纸,不胜枚举。 纸:胜于摇滚,用剪刀输,用纸扎。 剪刀:胜于纸张,不胜枚举,不胜枚举。 当前职位: 联合国:用户名 PL:编程语言 CC:字符数 紫外线:得票最多 ╔══════════════════╦════════════╦══════╦════╗ ║ UN ║ PL ║ CC ║ …
21 code-golf  game 

4
在公园种树-尽快!
这个挑战的灵感来自这个程序。测试用例是从该应用程序借用的。 这是最快的代码挑战,目标是在最短的时间内解决最大的测试案例。提供了一些较小的测试用例,以便人们可以更快地测试其算法。 您将得到一个正方形的输入网格,尺寸为n×n,其中9 <= n <= 12。该网格将被划分为n个区域,其中每个区域的单元格都有一个唯一的标识符(我将在文本中使用al中的小写字母,但您可以选择任意值,例如整数1-12) 。 输入可能看起来像这样(可选输入格式): aabbbbbcc adddbbbcc adeeecccc adddefgcc hhhdifggg hdddifffg hhhiifffg hihiifffg iiiiiiggg 或者,更容易可视化: 挑战: 您将根据以下规则在该公园中放置2 * n棵树: 每列应有2棵树,每行应有2棵树 所有区域都必须有2棵树。 垂直,水平或对角线的任何树都不能与另一棵树相邻 上面布局的解决方案是: 注意:每个难题只有一个解决方案 附加规则: 输入和输出格式是可选的 例如,输出可能是索引列表,带有1/0的网格(指示在该位置是否有树)或输入的修改版本(其中指示了树) 执行时间必须是确定的 该程序必须在@isaacg的计算机上完成1分钟 规格:4个CPU,i5-4300U CPU @ 1.9 GHz,7.5G RAM。 如果您的程序无法在一分钟内解决两个最大的测试用例,那么第二大的测试时间(n = 11)将作为您的分数。您将失去解决最大案例的解决方案。 测试用例: 如果提交似乎是针对这些测试用例定制的,那么我可以编辑此列表。 12乘12: --- Input --- aaaaabccccdd aaaaabccccdd …

10
连接四个验证器
介绍 Connect Four是一款您尝试连续获得四个的游戏:水平,垂直或对角线。在此代码高尔夫球中,我们将尝试确定给定游戏板的人。永远只有一名获胜者,而只有一名获胜者。 任务 给定一个四连板,确定谁是赢家:X或Y。永远只有一名获胜者,而只有一名获胜者。面板尺寸将始终为6 x 7,就像游戏板上的图片一样。 给定一个板,以下板在这种情况下X为红色和Y蓝色: 您的输入将是: OOOOOOO OOOOOOO OOOOOOO OOOOXOO OOOXXOO OOXYYYY 您可以按换行符(如上)分隔游戏的行,不使用分隔符,可以将行划分为数组或列表,也可以输入字符矩阵。 此示例的正确输出: Y Y连续四个;因此,Y是赢家。因此,我们输出Y。 测试用例 输入: OOOOOOO OOOOOOO OOOOOOO OOOOOOO OOYYOOO OYXXXXO 输出: X 输入: OOOOOOO OOOOOOO OOOOOOO XXXXOOO YXYYOOO YXYYXYX 输出: X 输入: YXYYXOO XYXXYOO XXXYYOO YYYXXOO XXYYYYO XXYYXXO 输出: Y 输入: OOOOOOO OOOOOOO …

2
晶体管组合
电子游戏晶体管具有非常有趣的能力系统。您收集了16个“功能”,可以在16个不同的插槽中使用。有趣的是,有3种插槽类型,每个函数根据您在哪个插槽中使用其行为有所不同: 有4个被动插槽。 有4个活动插槽。 每个活动插槽都有2个升级插槽。 我们想弄清楚给我们带来了多少种不同的技能。 但是,某些组合是等效的。特别是,在这些插槽组的每一个中,功能的特定位置无关紧要。另一方面,升级插槽中功能的效果确实取决于父级活动插槽中使用的特定功能。 因此,使用十六进制数字表示功能,以下组合都是等效的: Passive Slots: 0 1 2 3 Active Slots: 4 5 6 7 Upgrade Slots: 8 9 A B C D E F Passive Slots: 2 0 1 3 # Permutation of passive slots. Active Slots: 4 5 6 7 Upgrade Slots: 8 9 …

5
打高尔夫球您最喜欢的Minecraft工具
在Minecraft中,默认项目纹理都是相当简单的16×16像素图像,这使它们看起来像打高尔夫球的理想选择。 下面是简化的五个“核心”钻石的Minecraft工具纹理:鹤嘴锄,铲,斧,剑,和锄头。 所显示的图像被放大以显示其细节。单击图像以查看其正确尺寸的16×16像素版本。 为了使打高尔夫球更容易,我将它们从原始文件中修改为仅使用五种相同的24位RGB颜色: R=75 G=82 B=73 为背景。 R=51 G=235 B=203 用于金刚石工具头。 R=14 G=63 B=54 钻石轮廓。 R=137 G=103 B=39 用于木柄芯。 R=40 G=30 B=11 用于木柄轮廓。 选择自己喜欢的工具在五个的和写一个程序,它的输出在任何共同无损真彩色图像格式简化的16×16像素的纹理(例如bpm,png,ppm等等)。 因此,例如,如果您选择了斧头,则将编写一个输出此图像的程序: 请勿输入任何内容,也不需要网络连接。可以将图像输出为带有您选择的名称的文件,或者可以将原始图像文件数据输出到stdout,或者您可以简单地显示图像。 你只需要选择一个五个图像。以最少的字节数输出五个图像中的任何一个的程序就是赢家。 您可以为其中一幅以上的图像编写程序,但是只有字节数最少的图像才计入分数。如果平局,则获最高票数的职位获胜。 如果您喜欢PPCG并玩Minecraft,我邀请您加入我们的Minecraft试用服务器。只需在专用聊天室中询问即可。

7
接受或放弃II:计算机游戏展
这是我将在每个星期一PST午夜发布的一系列难题中的第二个。第一个难题位于此处。 内容: 一位隐居的亿万富翁创建了一个游戏节目来吸引世界上最优秀,最聪明的程序员。在星期一的午夜时分,他从一组申请人中选择一个人作为本周的竞赛者,并为他们提供游戏。您是本周的幸运选手! 本周比赛: 主机为您提供对10,000个数字信封堆栈的API访问。这些信封是随机排序的,并在其中包含1美元到10,000美元之间的美元价值(没有两个信封包含相同的美元价值)。 您可以使用4个命令: Read():读取堆栈顶部信封中的美元图形。 Take():将信封中的美元数字添加到游戏节目钱包中,然后将信封弹出堆栈。 Pass():弹出堆栈顶部的信封。 Oracle(M):返回堆栈中接下来的M个信封的平均值,不包括您当前可以读取的信封的平均值。 规则: 如果在信封上使用Pass(),则其中的钱将永远丢失。 从那时起,如果在包含$ X的信封上使用Take(),则永远不要在包含<$ X的信封上使用Take()。这些信封之一上的Take()将为您的钱包增加$ 0。 如果您在回合T上使用Oracle(M),则将返回信封T + 1到T + M的均值。禁用Oracle(),直到T + M。 编写算法,以最大的金额完成游戏。 如果您使用Python编写算法,请随时使用@Maltysen提供的此控制器:https ://gist.github.com/livinginformation/70ae3f2a57ecba4387b5 注1:在这种情况下,“最大值”表示N> = 1000后运行的钱包中的中间值。我希望,尽管我很乐意被证明是错误的,但是当N增加到无穷大时,给定算法的中值将收敛。可以随意尝试最大化均值,但我有一种感觉,即平均数比中位数更容易被小N抛弃。 注意2:由于此难题前一部分的所有解决方案在这里均有效,因此重新发布它们几乎没有价值。第二部分仅考虑对先前难题的算法改进。 编辑:鉴于此帖子在meta上,所以奖金条件已被删除。

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.