Questions tagged «board-game»

应对涉及棋盘游戏的挑战。

30
从原动力中恢复原动力
定义:素数幂是自然数,可以以p n的形式表示,其中p是素数,n是自然数。 任务:给定素数p n > 1,返回素数p。 测试用例: input output 9 3 16 2 343 7 2687 2687 59049 3 计分:这是代码高尔夫球。以字节为单位的最短答案将获胜。
13 code-golf  arithmetic  primes  king-of-the-hill  python  board-game  code-golf  number  subsequence  code-golf  ascii-art  code-golf  array-manipulation  decision-problem  grid  fastest-algorithm  logic-gates  logic  code-golf  cards  code-golf  rational-numbers  code-golf  math  number  sequence  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  code-golf  number  sequence  decision-problem  code-golf  ascii-art  number  code-challenge  sequence  arithmetic  sorting  code-golf  date  fastest-algorithm  code-golf  string  number  random  combinatorics  code-golf  combinatorics  code-golf  ascii-art  base-conversion  code-golf  array-manipulation  code-golf  string  code-golf  string  number  arithmetic  code-golf  kolmogorov-complexity  code-golf  string  array-manipulation  json  code-golf  puzzle-solver  code-golf  binary  graph-theory  code-golf  arithmetic  haskell  code-golf  string  cipher  code-golf  code-golf  string  parsing  alphabet  code-golf  string  code-golf  ascii-art  code-golf  string  number  code-golf  string  balanced-string 

11
解释松散范围
解释松散范围 ListSharp是一种解释型编程语言,具有许多功能,其中一个功能是基于1索引的范围创建器,其工作方式如下: 您可以将范围定义为(INT) TO (INT)或仅定义(INT)两个int可以从min到max int32值的范围 然后,您可以使用这些范围来提取数组的元素,而不必担心会超出其边界 因此: 1 TO 5 产生: {1,2,3,4,5} 3 产生: {3} 范围可以使用AND运算符相加 1 TO 5 AND 3 TO 6 产生: {1,2,3,4,5,3,4,5,6} 记住这也适用于负数 3 TO -3 产生: {3,2,1,0,-1,-2,-3} 挑战如下: 输入值 字符数组和先前定义的range子句作为字符串 输出量 范围中基于1索引位置的元素(不存在/负索引会转换为空字符) 如何取胜 作为代码高尔夫球挑战,您应该创建具有最少字节数的程序以获胜 有人指出不存在空字符,因此您应该忽略它们(我仅在此处显示它们是为了使它们更易于理解,但却使人感到困惑) 测试用例: input array is: {'H','e','l','l','o',' ','W','o','r','l','d'} range clause: "1 TO …
13 code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

4
获取吸气剂
任务 我想每个人都喜欢自动代码生成并节省工作时间。您白天必须创建许多类和成员,而又不想getters手动创建所有这些类和成员。 任务是编写一个程序或函数,该程序或函数getters将为您自动为所有类成员生成。 输入 在我们的语言中,对象非常简单。类和成员的名称必须以字符开头,[a-zA-Z]并且只能包含字符[a-zA-Z0-9]。这是一个例子: class Stack { public overflow; protected trace; private errorReport; } 输出 这是基于给定示例的有效输出: class Stack { public overflow; protected trace; private errorReport; public function getOverflow() { return this->overflow; } public function getTrace() { return this->trace; } public function getErrorReport() { return this->errorReport; } } 吸气剂 getter方法的要求是: …
13 code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

2
在围棋板上移动
您将获得棋牌游戏和棋局的位置。您需要输出此举是否合法,以及新董事会职位(如果合法)。 围棋动作的简要说明:游戏包括将黑白棋子(“石头”)交替放置在方形板上的空白处。相互连接(4路)的相同颜色的零件组称为组。板上邻近某个组(也是4向)的空白位置被视为该组的“自由”。拥有0个自由的组被捕获(从董事会中删除)。除非捕获一个或多个对手的组(此过程中获得了自由,因此实际上并未被捕获),否则将导致其自身的组被捕获(“自杀”)的举动是非法的。 对于那些相关人员,您不需要处理ko(和superko),即,您可以假定ko捕获是合法的。如果您不知道这是什么意思,请遵循上述规则,就可以了。 输入: 2到19(含)之间的数字n代表棋盘的大小,n行n介于0到2(含2)之间的n数代表棋盘的位置,后跟3个以空格分隔的数字,代表进行的动作。在棋盘位置,0表示空白,1表示黑色石头,2表示白色石头。此举使石头的列,行和颜色(1或2)得以放置。列和行从0开始,从0到n-1(含)范围内,并按与板输入相同的顺序计数。 您可以假定给定的董事会职位是合法的(所有团体至少有一个自由)。 输出:如果移动是否合法,则该行包含1或0(如果愿意,则为true / false),然后(仅在合法移动的情况下)以与输入相同的格式跟随新的木板位置。 得分:完整源代码的字节数,越小越好。如果使用非ascii字符,则要加收20%的罚款,如果无法使用免费软件在Linux中测试您的代码,则要加收20%的罚款。 规则:没有网络连接,也没有第三方库。您的程序应使用标准的输入和输出流,或您的编程语言使用的标准等效流。 例子: 1) Input: 2 10 01 1 0 2 Output: 0 2) Input: 2 10 11 1 0 2 Output: 1 02 00 3) Input: 5 22122 22021 11211 02120 00120 2 1 1 Output: 1 00100 00101 11011 …

3
音位错误
性格 我们将这些Unicode字符称为英语IPA辅音: bdfhjklmnprstvwzðŋɡʃʒθ 我们将这些Unicode字符称为 英语IPA元音: aeiouæɑɔəɛɜɪʊʌː (是的,ː这只是长元音标记,但出于此挑战的目的,请将其视为元音。) 最后,这些是主要和次要压力标记: ˈˌ 注意,ɡ(U + 0261)不是小写的g,主应力标记ˈ(U + 02C8)不是撇号,并且ː(U + 02D0)不是冒号。 你的任务 给出一个单词,将元音堆叠在跟随的辅音之上,并将重音标记放置在其跟随的辅音下方。(正如问题标题所暗示的,这样的书写系统将辅音元音序列作为一个单元打包在一起,称为abugida。)给定输入ˈbætəlʃɪp,产生输出: æə ɪ btlʃp ˈ 甲字被保证是声母,韵母和应力标记的字符串,如上面所定义。永远不会有连续的重音标记,它们将始终放置在单词的开头和/或辅音之前。 测试用例 可能有连续的元音。例如,kənˌɡrætjʊˈleɪʃən变为 ɪ ə æ ʊeə knɡrtjlʃn ˌ ˈ 如果一个词以元音开头,打印在“基线”与辅音:əˈpiːl变 ː i əpl ˈ 一个测试用例的初始,强调元音:ˈælbəˌtrɔs变 ə ɔ ælbtrs ˈ ˌ 一句话:ˌsuːpərˌkaləˌfrædʒəˌlɪstɪˌkɛkspiːæləˈdoʊʃəs变成 æ ː ː ʊ uə aə …

2
中国跳棋动作最长
在中文跳棋中,一件作品可以通过跳到其他任何一件作品上或通过进行一系列这样的跳跃来移动。您的任务是找到可能的最长跳数序列​​。 输入值 121个零或一的序列,每个零代表一个在板上的位置。零表示该地点为空;一个表示该位置已被占用。位置从左到右列出;从上到下。例如,输入这种设置将 1011110011000001000000000000000000000000100000000001000000000000000000000000000001000000000000000000000001000001100111111 说明: 最上面的位置被一块绿色占据,因此输入中的第一位是1。第二行有一个空位置,然后有一个占用位置,所以01接下来是。第三行已全部占用,因此111。第四行有两个空白和两个占用的空间(从左到右),所以0011。然后是下一行的五个0,一个1和七个0,依此类推。 就像在该设置中一样,有一个角指向上。板上可以有任意数量的部件(从1到121)。请注意,不同颜色的块表示方式不同。 输出量 合法跳的最大长度,使用板上的任何一块。您可能不能多次访问同一个地方(包括起点和终点)。但是,您可能会多次跳过同一块。如果没有合法的跃点,则输出0。不要考虑是否存在合法的非跳跃动作。 例如,上述设置的输出为3。 输入和输出可以通过stdin和stdout,命令行参数,函数调用或任何类似方法来完成。 测试用例 输入: 0100000010000000000000000100000000000000000000000000000001010010000000000000000000000101000000000000000000100000000100001 输出:(0没有两个相邻的部分) 输入: 0000000000111100000000011100000000011000000000100000000000000000000000000000000000000000000000000000000000000000000000000 输出:(1在左上角为一名玩家设置的初始设置)

2
实施反向引擎
对于本次高尔夫,您的工作是编写一个程序,该程序将进行黑白棋游戏(othello)的操作并将结果显示给用户。 输入值 一串数字,取值范围为[0-7]。每对数字首先代表X坐标,然后代表Y坐标。不在该范围内的任何字符都应忽略。 输出量 游戏结果的视觉表示,包括输入结束时谁在领先。这可能是图形输出或按键输出,但必须是游戏的可视网格,并带有不同的字符/图形符号,分别表示黑色,白色和空白。 此外,您的代码应输出一条错误消息,并在输入非法举动时停止(相同的方块不止一次,或者不会翻转任何方块的方块)。 跳过应该优雅处理。如果一种颜色没有合法移动,则跳过该回合,而另一位玩家开始比赛,则会发生跳过。 黑色总是最重要的。 例子 23 ........ ........ ........ ..bbb... ...bw... ........ ........ ........ b 232425140504032627 ........ ........ ........ b.bbb... bbbww... b.b..... ..b..... ..b..... b 2324322513 ........ ........ ........ ..bbb... ..www... ........ ........ ........ e 23242555 ........ ........ ........ ..bbb... ..bbw... ..b..... ........ ........ e

1
通过整数操作实现IEEE 754 64位二进制浮点数
(我暂时将问题标记为“ C”,但是如果您知道另一种支持联合的语言,则也可以使用它。) 您的任务是+ - * /为以下结构构建四个标准数学运算符: union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 这样操作本身就只能操纵或访问整数部分(因此也不能在操作过程中的任何时候都与double进行比较),并且结果是完全相同的(对于非数字结果,例如,功能上是等效的NaN)好像相应的数学运算已直接应用于double。 您可以选择要操作的整数部分,甚至可以在不同的运算符之间使用不同的整数部分。(尽管我不确定您是否要这样做,您也可以选择从联合中的任何字段中删除“未签名”。) 您的分数是四个运算符中每个字符的代码长度总和。最低分获胜。 对于不熟悉IEEE 754规范的我们来说,这是一篇有关Wikipedia的文章。 编辑: 03-06 08:47在intfloat结构中添加了构造函数。您可以使用它们进行测试,而不必手动设置double /etc。

1
实施MENACE
背景 MENACE(中号 achine Ë ducable Ñ oughts 甲 ND Ç rosses ë ngine)是用于游戏圈与叉,由英国计算机科学家唐纳德米基在1960创建一个基本的浅的机器学习算法。它最初由304个火柴盒实现,每个火柴盒都标有板子位置并包含彩色珠子(九种颜色之一,代表可能的移动)。Michie计算得出,这304个火柴盒足以满足棋盘上每个动作的组合。 您可能会更数学化,您会发现N&C板上实际上有19,683种Nought,Cross和Blanks的可能组合;但是,他计算了减少此数字的方法(以加快算法的速度,并有可能减少火柴盒!)。首先,他删除了所有不可能的举动,例如: ------- |X|0|X| | |0| | |X|X| | ------- (两个零和四个十字架) 接下来,他补偿了旋转。例如,如果在火柴盒上,我们看到: ------- | |0|0| |X| |X| | |0| | ------- 我们可以使用同一框 ------- | |X| | |0| |0| | |X|0| ------- 因此,上述有色珠代表相对位置,而不是绝对位置。例如,如果我们说红色的珠子表示左上角,那么我们将看一下盒子顶部的图像,然后看看: ------- | |0|0| |X| |X| | …

2
骆驼杯:AI棋盘比赛
骆驼杯2k18 在这个挑战中,我们将玩半受欢迎的桌游Camel Up。 骆驼起来!是一种棋盘游戏,有玩家押注骆驼以赢得回合,赢得游戏或输掉游戏,设置陷阱以影响移动或移动骆驼。这些决定中的每一个都会奖励您获得一些钱的机会,这才是决定赢家的原因。玩家应使用概率,游戏状态考虑因素和对手的租约来做出决定。这是一个简短的视频,向玩家展示如何玩。 怎么玩 这是玩法的粗略构想。观看其中一部视频可能会更有帮助,因为它们具有视觉效果:) 轮到您有4个选择。 移动骆驼。这会从尚未移动的人中选取骆驼,并在1-3个空格之间移动。您会得到1个硬币。当所有五个骆驼都移动时,回合结束,然后它们就可以全部移动 放置一个陷阱。这会一直持续到董事会结束。您选择+ 1 / -1陷阱。如果骆驼或骆驼叠落在上面,它们会移动+ 1 / -1,您会得到一个硬币。您不能在正方形0上放置陷阱。可以将陷阱放置在骆驼所在的位置,尽管它只会影响落在其后的骆驼。 回合赢家投注。您下注一个回合赢家。他们赢了您会得到5/3/2/1,具体取决于您是该骆驼的第一/第二/第三。 游戏赢家/输家。您押注谁将在比赛结束时排在第一或最后。根据您是否是1st / 2nd / 3rd / etc赌那只骆驼,您会得到8/5/3/1/1(我认为) 笔记: 有5只骆驼。它们从0-2随机开始。 当骆驼移动时(参见上面的触发方式),它们移动1-3格。如果将它们与另一个骆驼放在一个正方形上,则将它们放在另一个骆驼的“顶部”,从而创建一个骆驼堆栈。如果要移动骆驼,它将所有骆驼移动到骆驼堆栈上。栈顶的骆驼被认为是领先 如果您落在+1陷阱上(请参见上文,触发此陷阱),您将向前移动一格。适用标准堆叠规则。 但是,如果您遇到-1陷阱,则会向后移动一个方块。你去下,是在该广场上,如果任何骆驼的堆栈。 骆驼碰到正方形16时游戏结束。这立即调用回合结束和游戏结束触发器 每个骆驼只能进行一次获胜/失败者下注。也就是说,您不能押注骆驼来赢得或输掉比赛 挑战 在此挑战中,您将编写一个Python 3程序来扮演四人游戏,获胜者将赢得Camel Up的所有荣耀游戏 您的程序将收到gamestate,其中包含: camel_track:骆驼的位置 trap_track:陷阱的位置(格式为[trap_type(-1,1),播放器]的条目) player_has_placed_trap:一个数组,告诉您玩家是否在本回合放置了陷阱 round_bets:本轮下注的数组。形式为[骆驼,玩家] game_winner_bets / game_loser_bets:玩家为骆驼赢得或输掉游戏而进行的一系列下注。您将只能看到下注的玩家的价值,而不是下注的玩家的价值。您可以知道您的赌注。#形式[骆驼,玩家] player_game_bets:game_winner_bets / game_loser_bets的另一种表示形式。同样,仅查看您的机器人所下的赌注。 player_money_values:一个数组,显示每个玩家的钱数。 camel_yet_to_move:一个数组,显示骆驼是否已移动到这一轮。 除了游戏状态外,您还可以获得: 玩家:一个整数,告诉您您是哪个玩家号码(0-3)。 玩家应该返回的语法是: …

5
评估战略战斗
在游戏Stratego中,主要的游戏机制是当您用自己的对手攻击对手的棋子时。在这个挑战中,您的工作是模拟其中一场战斗,并说出谁能幸免。 眼镜 您将获得一对表示Stratego件的字符串作为输入。这些碎片是其中之一"S 1 2 3 4 5 6 7 8 9 10 B"(S是间谍,B是炸弹)。这对中的第一个将成为攻击者,第二个将被攻击。 以下是确定战斗结果的规则: 较高的数字胜过较低的数字:["4", "6"] -> ["6"]。 如果两者相同,则都死:["7", "7"] -> []。 间谍位于底部,甚至位于以下1:["S", "2"] -> ["2"]。 但是,如果间谍攻击10,则间谍会获胜:["S", "10"] -> ["S"]。 但是如果10攻击者是,则正常规则仍然适用["10", "S"] -> ["10"]。 如果有任何东西袭击炸弹,则炸弹获胜:["5", "B"] -> ["B"]。 但是,矿工(a 3)可以化解炸弹:["3", "B"] -> ["3"]。 炸弹永远不会成为攻击者。 监视者(a 1)可以使用常规机制进行攻击,但是他们也可以尝试“猜测”其他玩家的等级,可以用任何理智的符号表示。 如果他们猜对了,另一片死亡:["1(5)", "5"] -> …

2
让我们玩一些桌游吧!
介绍 桌游是孩子之间的经典游戏,但有些孩子一步一步玩桌游感到无聊。现在,他们希望在把手放到板上之前先显示结果。 挑战 假设这个棋盘游戏: >---#<---X---<X<--#-$ > means the start of the game - means a position without danger < means the player should return one step back X means the player won't move next round # means a portal where the player returns to the start position $ the first …

2
X大于3,且X和Y之间至少相差2
我试图打败一些C ++。是否可以使这种情况更短? X > 3 & X - Y > 1 (当然,除了删除空白。) 所以,X至少4,但X >= Y + 2。 X和Y是[0,5]间隔中的整数。 我试图找到一些按位公式,但失败了。
11 code-golf  number  tips  c++  code-golf  popularity-contest  obfuscation  code-golf  c  code-golf  board-game  hexagonal-grid  code-golf  game  grid  code-golf  number  permutations  popularity-contest  math  graphical-output  number-theory  king-of-the-hill  code-challenge  compression  code-challenge  fastest-code  code-golf  math  ascii-art  animation  code-golf  popularity-contest  generation  counting  fastest-code  fastest-code  popularity-contest  image-processing  king-of-the-hill  code-golf  conversion  binary-tree  code-golf  math  number  rational-numbers  division  code-golf  restricted-source  hashing  atomic-code-golf  logic-gates  code-golf  function  code-challenge  puzzle-solver  ai-player  test-battery  popularity-contest  music  compression  code-golf  number  stack  atomic-code-golf  logic-gates  ascii-art  popularity-contest  code-golf  date  grid  code-challenge  game  code-golf  parsing  code-golf  math  geometry  sequence  popularity-contest  code-trolling  code-golf  string  restricted-source  code-golf  quine  king-of-the-hill  code-golf  math  code-golf  simulation  code-golf  ascii-art  code-challenge  sorting  optimization 

4
建立确定性的Go AI
这是我前几天想到的一个有趣的问题,它涉及到一些代码位与其他代码位竞争,不仅是在代码具有的属性中,而且是通过与其他代码位进行游戏。 您的任务是构建一个程序,该程序采用Go板的当前状态,并确定要采取或通过的动作。 您的程序将接受以下内容作为输入: 19行,每行19个字符,代表Go板上当前的棋子。的字符0代表一个空的正方形,1是黑色和2白色。 两个数字代表每个玩家拥有的囚犯件数(黑色,然后是白色)。 一个数字,代表要移动的人(黑色或白色)。如上所述,1是黑色,2是白色。 并输出以下内容之一: 一对坐标,a b表示移动的坐标。1 1是左上角的正方形,第一个和第二个数字分别代表向下和向右移动。 字符串pass,表示通过。 例如,该程序可能会收到以下输入: 0000000000000000000 0000000000000000000 0000000000000000000 0001000000000002000 0000000000000000000 0000000000000000000 0001210000000000000 0000100000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0002000000000001000 0000000000000000000 0000000000000000000 0000000000000000000 0 0 1 代表只玩了几步的游戏。 然后程序可能会输出6 5,这意味着“在顶部的第6点和左侧的第5点放置一块黑色的石头”。这将捕获处的白色石头7 5。董事会的状态将更改为: 0000000000000000000 0000000000000000000 0000000000000000000 0001000000000002000 0000000000000000000 0000100000000000000 0001010000000000000 0000100000000000000 0000000000000000000 0000000000000000000 0000000000000000000 0000000000000000000 …

6
让我们玩Rummikub!
注意:这与游戏Rummikub的变体有关 背景与规则 Rummikub是一款基于图块的游戏。有四种颜色:红色,橙色,蓝色和黑色。对于每种颜色,有13个磁贴(标记为1到13),并且还有2个与颜色无关的小丑,因此共有54件。在Rummikub的这种变体中,每位玩家获得14个磁贴,并且每局必须再获得一个磁贴,然后每回合再丢一枚,这样磁贴数是恒定的。玩家看不到彼此的瓷砖。目标是对图块进行分组,以使所有块至少属于一组(请参见下文)。当玩家将所有棋子分组时,他们放下棋盘并露出棋子。然后其他人检查所有组合是否有效,如果有效,则玩家赢得该回合。 瓷砖如何分组? 组只有两种类型: 多色组: 它们由3或4个图块组成。 它们仅包含编号相同的图块。 所有的瓷砖都是不同的颜色。 范例:RED 9, BLUE 9, BLACK 9。 单色组: 它们至少包含3个图块。 它们不能包含超过13个图块。 它们仅包含具有升序排列的不同连续编号的图块。 所有图块都具有相同的颜色。 标1 有的图块可能不会位于标有的图块之后13。 范例:RED 5, RED 6, RED 7。 等等,小丑们做什么? 小丑可以代替游戏中的任何一块。例如,我们的第一个例子可以成为 JOKER, BLUE 9, BLACK 9,RED 9, JOKER, BLACK 9或RED 9, BLUE 9, JOKER。这同样适用于我们的其他示例。但是,一个人可能不会将两个Joker放在同一组中,因此JOKER, ORANGE 8, JOKER禁止类似的事情。 任务 给定一个Rummikub切片组,确定它是否有效。您可以确保不会出现重复的图块,除了两个小丑,而且您输入的图块是有效的(例如,60不会出现类似的内容)。 输入输出 您可以采用任何标准方法输入并提供输出。 …

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.