Questions tagged «board-game»

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

5
玩Antichess!
https://en.wikipedia.org/wiki/Losing_chess 这基本上是国际象棋比赛,但是对于古董;) Antichess是已发明的许多国际象棋变体之一。目的是要丢掉所有的棋子(这看起来有些奇怪,但是有一定的原因被称为安息)。 规则 固定规则与标准国际象棋非常相似-但有一些相当小的差异。正如我上面提到的,目标是失去所有的碎片。要做到这一点,如果对手有机会抓住你的一个棋子,那是他唯一能采取的行动。如果您在一回合中给予他多次机会,另一位玩家可以选择他的回合。另一件事发生了变化,那就是国王没有特殊的权力-因为您无法与对手对峙,也不能迫使他受阻。 对标准游戏的以下更改也将适用(它们有助于简化游戏): 传递将被忽略。 卡丁车是不可能的。 在五十移动规则适用自动(意为平局的游戏结束)。 典当将能够选择它们要推广到的东西。 如果玩家需要超过2秒的移动时间,他将输掉比赛。 返回无效的举动将导致游戏失败。 为了赢得胜利,您的对手必须夺走您所有的碎片。 怀特开始比赛。 白色位于字段的“底部”(y = 0),黑色位于顶部(y = 7)。 禁止访问除您的漫游器以外的其他资源(互联网,文件,其他漫游器,...)。 计分 获胜将使您获得3分,平局1分,而输0分。 每个提交将与对方提交进行10次对战(白色5次,黑色5次)。 编写你的机器人 控制器代码在这里:https : //github.com/JJ-Atkinson/SimpleAntichessKOTH 您可以用Java或Groovy编写您的机器人。要编写机器人,您必须扩展Player该类。播放器类具有一种抽象方法Move getMove(Board board, Player enemy, Set<Move> validMoves)。 以下是一些有用方法的简要介绍: Player: List<Piece> getPieces(Board board):退还您板上所有的零件。 PieceUpgradeType pieceUpgradeType:如果/当其中一个棋子到达棋盘的末端时,您需要将其定义为要升级到的棋子类型。你的选择ROOK,KNIGHT,QUEEN,BISHOP,和KING。 Board: Field getFieldAtLoc(Location loc):返回Field的位置。这具有匹配的getAt方法,因此,如果您使用的是groovy,则可以编写board[loc]。 Field getFieldAtLoc(int x, int y):返回Field的位置。这具有匹配的getAt方法,因此,如果您使用的是groovy,则可以编写board[x, …

1
确定Connect 4的获胜者
系统会为您提供部分填充的Connect 4网格(7x6)。 O X O X X O X O O X O X O X X O X X X O O X O O O X X O X (输入可以一维或二维数组以及字母或数字等形式给出。) 假使,假设 X开始游戏。 还没有人赢。 玩家可能直到现在还没有打得很好,但是从现在开始,他们都将采用最佳策略。 输入网格没有故障。 您必须输出一个值来指示哪个玩家获胜(或平局) 挑战高尔夫挑战赛;所以最短的代码胜出。您的程序不必在合理的时间内实际计算输出,但是您应该能够证明在有限的时间内可以正确获得输出。


1
霍尔玛最短的2人游戏
在国际象棋中,游戏有可能在愚人伴侣的作用下进行4次移动(每次2次)后结束。 您的目标是找到傻瓜的哈尔玛伴侣:哈尔玛(Halma)的2人游戏,可将回合数减至最少。 有超过10个56个董事会状态,而且我已经看到分支系数超过1000,因此没有人会找到最佳解决方案。相反,您正在尝试找到最好的解决方案。 您应该提交一个动作列表,以及用于生成这些动作的任何代码。 游戏说明 哈尔玛类似于中国跳棋,但在16 * 16的正方形板上玩。 最初,董事会如下所示: 游戏的目标是将所有棋子移到对手棋子的开始位置。 在玩家回合中,他/她可以: 转弯 将他/她的一件作品移到相邻的空白处。相邻的空格包括对角线。 取他/她的一块,然后执行以下任意多次:将一块跳到相邻的一块上,将其降落在与跳过的一块相对的空间上。 这是说明第二种移动方式的示例。 规则 提交导致游戏结束的合法举动列表。 提交用于生成列表的任何代码。 如果您从其他人的代码中获得更好的结果,请将该结果发布在评论中,或使用新结果编辑他们的帖子。 每次移动必须要么None是通过转弯,要么(x1,y1,x2,y2)是移动一个棋子,其中要移动的棋子(x1,y1)的坐标是该棋子(x2,y2)的目的地,并且是棋子的目的地(对于跳跃移动,请忽略中间坐标)。坐标从(0,0)左上角开始。x坐标向右增加,y坐标向下增加。动作应以换行符分隔。 您可以使用此python脚本来验证您的举动。使用python halma_verify.py < file来验证移动file。 最短名单获胜。

2
你下一步要做什么?
面临的挑战是用您选择的语言编写一个minimax函数,在给定当前棋盘状态的情况下,在井字游戏的NxN游戏中输出下一个最佳动作。板输入可以接受为矩阵,2D集合或对您有意义但符合规则的任何其他内容。输出是下一个最好的举动了谁轮到它是目前,其中X被认为已经开始。 Minimax算法的快速背景 minimax算法的基本思想是将所有可能的结果作为DAG枚举,然后通过一系列动作对玩家的好处(通过第一个动作为关键)对它们进行加权。然后,所有可能的结果都会在第一步中“丢包”,并根据所有结果的总和进行评分(-1为损失,0为平局,1为胜利)。在需要多个玩家参与的实现中,您需要枚举玩家的所有可能举动以及对手的所有可能的响应。例如,在井字游戏中(第一个举动之后),您可以进行8个可能的第一个举动,而在仅分析下一弯时,它们似乎都相等。但是,通过对每组可能产生最终结果的动作进行遍历所有可能的结果并将它们加总, 有关tic-tac-toe的mini-max算法的更好,更深入和上下文的摘要,请在此处阅读更多信息:http : //neverstopbuilding.com/minimax XKCD(仅3x3解决方案) 规则 可以使用任何语言,但不允许使用外部minimax库。 输出可以是表示最佳下一移动的坐标(0-n,0-n)或数字(1-n * n)。 除此之外,您必须能够确定最佳情况是什么时候是失败或平局而不是获胜。 您表示损失或平局的方式再次取决于您。 输入必须使用传统的X和O,并且您必须假设X首先移动;空格可以用任何东西表示。 您可以假设进入程序的任何输入都具有n个O和n + 1个X,换句话说,您可以假设您得到的是格式良好的板。 开发板的当前状态必须是程序的唯一输入,如果使用递归,则必须使用辅助方法来满足输入要求。有关说明,请参见/codegolf//a/92851/59376。 必须支持10> = n> = 1的任何值。如果您的程序在n> 10时“超时”,我也认为这是可以接受的,因为某些语言的处理能力明显降低(尤其是使用面向Web的控制台)。 评判 这是代码高尔夫球,因此程序的最低字节数获胜,并且普遍禁止标准漏洞。 如果是平局,则支持最大n的程序将获胜。 输入示例 2x2 [[X,O] [-,-]] 输出: 2或[0,1](也可以说是3或[1,1]正确)(以某种形式表示位置,只要可以方便地解释所使用的格式即可) 3x3 [[X,O,X] [O,X,-] [-,-,-]] 输出: -1(损失) 再次允许使用您想要的任何输入格式,但必须使用X和O,所提供的示例并非旨在限制该格式,仅是为了启发。

3
查找字符串中的模式
在这种挑战下,您的任务是找到具有给定结构的子字符串。 输入项 您的输入应为两个非空的字母数字字符串,一个模式 p和一个text t。这个想法是,的每个字符都p代表一个连续的非空子字符串,t该子字符串彼此相邻出现,并p表示它们的串联。相同的字符对应于相同的子字符串。例如,模式aa代表任何非空正方形(通过将较短的字符串与其自身连接而获得的字符串)。因此,模式aa可以匹配子字符串byebye,并且每次a匹配bye。 输出量 如果文本t包含p匹配的子字符串,则您的输出应为该子字符串,并:在与的字符相对应的字符串之间插入冒号p。例如,如果我们有t = byebyenow和p = aa,那么bye:bye它是可接受的输出。匹配子字符串可能有多个选择,但是您只能输出其中之一。 如果t不包含匹配的子字符串,则您的输出将是悲伤的表情:(。 规则和说明 的不同字符p可以对应相同的子字符串,因此p = aba可以匹配字符串AAA。请注意,这些字符必须对应于非空字符串;特别是,如果p长于t,则输出必须为:(。 您可以编写完整的程序或函数,还可以更改两个输入的顺序。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 以格式给出pattern text -> output。注意,可能存在其他可接受的输出。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

4
您可以在《三人莫里斯》中再赢两步吗?
赏金 第一名(获奖) 我将为第一个有效答案投入50个报告 2号(获奖) 我将再提供100个最短有效答案。 第3名(开放提交) 我将为第一个报告贡献200个报告,并给出一个有效的简短答案。有效值最多为当前最短答案的45%(564字节x 0.45 = 最大254字节)。 游戏 您还记得经典游戏“ 九个人的莫里斯 ”还是简单的“ 磨坊 ”?有一个变种,叫做“ 三人莫里斯”,有点像易变的井字游戏。 规则 这是游戏的空白板: a b c 1 [ ]–[ ]–[ ] | \ | / | 2 [ ]–[ ]–[ ] | / | \ | 3 [ ]–[ ]–[ ] [ ]是一个字段,|–/\代表这些字段之间的路由。 该游戏由两个玩家扮演1和2谁每个地方的板3个令牌。这实际上已经发生了,我们已经参与其中。如果一个玩家可以形成一个游戏,则该游戏获胜。mill,即该玩家的3个令牌的垂直或水平行,则。 …

5
完美玩Wythoff的Nim
您的目标是为Wythoff的Nim游戏编写一个完美的玩家。 威索夫的尼姆规则 Wythoff的Nim是确定性的两人游戏,有两堆相同的计数器。玩家轮流进行以下操作之一: 从第一堆中删除一个或多个计数器 从第二堆中删除一个或多个计数器 从第一堆和第二堆中删除相同数量的计数器(一个或多个)。 当然,筹码不能为负,但可以为0。无论哪个玩家移除最后一个计数器,整体都会获胜。 对于更注重几何的人,这里是您可以在此applet上玩的等效游戏。单个女王从四分之一无限棋盘的某个正方形开始,该正方形的角在左下角。玩家交替移动皇后,其移动方式类似于国际象棋皇后,但仅限于三个方向: 下 剩下 斜向左下 将女王移到角落的人都将获胜。 将女王的坐标(带有角(0,0))与各个桩的大小相关联,很容易看出两个游戏是相同的。 完美发挥 (如果您熟悉完美比赛和获胜手法的概念,则可以跳过此步骤。) 由于Wythoff的Nim是一种有限的确定性游戏,因此它具有完美玩法的概念。完美的玩家是一种始终会从理论上获胜的位置获胜的策略,这意味着存在一种能够确保获胜的策略的位置。 作为获胜策略,只要将刚移动的玩家始终移动到理论获胜位置即可,因此该玩家不会继续前进。这些获胜职位中的第一个(也称为冷职位)是(0,0), (1,2), (2,1), (3,5), (5,3)。有关为Wythoff的Nim寻找获胜策略的算法的解释以及生成获胜位置的公式,请参阅Wikipedia文章。 计划要求 编写程序或函数时,将一个位置作为输入,并以该位置之后的位置形式输出获胜的位置。最少的字节数获胜。 如果不存在获胜举动,即该头寸是理论上的亏损,则您的程序应表明是这样,否则将被没收。 您的程序必须在合理的时间内运行。因此,指数递归游戏树搜索将无法满足要求。如果您想对策略进行预计算和硬编码,那很好。 输入值 一对(i,j)非负数,代表堆大小,每个最多为99。它可以是两个数字,一个元组,一个列表或您喜欢的任何容器。 输出量 移动后打印或输出位置,再次以两个数字或一个容器的形式输出。这必须是合法转移到获胜职位。如果有多个这样的举动,那么任何一个都可以,但是只有一个。 如果没有获胜的举动,则必须在输出中指出。只要不是合法位置,并且对于每一个丢失的输入都是相同的,则任何输出False(None,,0或)(-1,-1)都可以。 运行示例 f(5,0) = (0,0) f(2,2) = (1,2) # Or (2,1) or (0,0) f(1,2) = False f(13,9) = (13,8) # Or …

1
卡坦定居者-最长之路!
这是卡坦定居者的残局: 背景: 道路(长棍棒)和居民点(和城市)由小木屋组成。我们使用以下方案对这些片段的放置进行编码:从顶部开始,我们有一排水平顶点和一条可以放置道路的边。然后,我们只有一列道路,依此类推。使用R代表红色,O代表橙色,B代表蓝色,_代表无,图板将被编码为: ________RR_R_ __R_ __RR_R_RRR_____R_ B___R _B_________B__OO_OOR_ B__B_R BB_BBB_____B____RR_R_ OBB_O OO__BB_BB__OOO_OO O_O_ _O_OOO_O_____ 这样的板将作为您的输入字符串。任何字母都[A-Z]可以指示玩家的颜色,但是最多可以有四种颜色(包括空白)。否则,根据定居者规则,保证董事会有效,这意味着: 每种颜色最多具有两个连续的道路网络,这些道路网络可能会或可能不会被其他玩家居住区/城市(顶点建筑物)分开。看到橙色沉淀物将样品图像右侧的红色道路分开。 保证每个路网至少有一个居民点。 保证所有定居点和城市与最近的其他定居点/城市(您或其他人)至少有两个边缘 一位玩家在游戏板上可能只有15条道路。 对于Catan爱好者:出于此问题的目的,在定居点和城市之间没有区别,因此我在输入字符串中没有区别。 所有这些都是为了指定“输入”字符串。 最长的路: 在定居者中,玩家拥有“最长的道路”可获得两个胜利点。定义为:从起点到终点的最长连续单路径(以道路为单位),不会被对手的定居点或城市分解。只要您可以跟踪从一个特定起点到一个特定终点的路径,循环就可以了。因此,一条6条道路的环路加上一条分支的道路的长度为7,但是一条在两条道路上相对的6条道路分支的两条分支的长度仍为7。 在示例地图中,右侧的红色道路仅价值4,因为板子右侧的橙色解决方案将他切断了(这就是为什么完全包括解决方案的原因)。蓝色的道路长度为13,橙色的道路长度为12。红色的最高道路仅价值7,因为它没有连接到其旁边的两条道路。 输出: 道路最长的所有玩家(如果有平局,则可能会超过一条),然后以空格和/或下划线划定距离(以10为底)。 因此,示例板的输出为: B 13 问题陈述: 您可以编写程序或函数,通过STDIN或作为函数的字符串参数接收输入板,然后将上述输出作为字符串返回或将其打印到STDOUT(或最接近的输出)。您可以选择在输出中包含单个尾随换行符。 这是代码高尔夫球,最短的程序获胜。当然,标准漏洞是被禁止的。

7
振荡平等
我们的对象在两个整数点之间[l, r]以每时间单位一个单位的速度从lon 开始振荡t=0。您可以假设l < r。例如,如果一个对象在上振荡[3, 6],则我们有: t=0 -> 3 t=1 -> 4 t=2 -> 5 t=3 -> 6 t=4 -> 5 t=6 -> 4 t=7 -> 3 t=8 -> 4 等等,但是物体不断振荡,所以我们还有t=0.5 -> 3.5和t=3.7 -> 5.3。 由于两个物体之间振荡[l1, r1],[l2, r2],确定是否存在过一段时间t,使得这两个对象共享相同的位置。您可以采用l1, r1, l2, r2任何方便的格式,并输出任何真实/错误值。 真实的输入: [[3, 6], [3, 6]] [[3, 6], [4, 8]] …
15 code-golf  array-manipulation  decision-problem  code-golf  math  number-theory  palindrome  integer-partitions  code-golf  math  decision-problem  geometry  code-golf  string  random  code-golf  ascii-art  code-golf  kolmogorov-complexity  primes  code-golf  kolmogorov-complexity  code-golf  graphical-output  code-golf  number-theory  primes  integer  factoring  code-golf  sequence  array-manipulation  integer  code-golf  array-manipulation  matrix  code-golf  sequence  binary  code-golf  game  cellular-automata  game-of-life  binary-matrix  code-golf  string  ascii-art  code-golf  random  generation  logic  code-golf  string  code-golf  code-golf  sequence  array-manipulation  random  apl  code-golf  code-golf  sequence  primes  code-golf  math  sequence  integer  code-golf  number  arithmetic  array-manipulation  decision-problem  code-golf  ascii-art  number  code-golf  restricted-source  quine  code-golf  chess  board-game  code-golf  math  sequence  code-golf  number  sequence  kolmogorov-complexity  code-golf  number  sequence  arithmetic  code-golf  math  number  alphabet  code-golf  ascii-art  classification  statistics  apl  code-golf  array-manipulation  matrix  code-golf  string  kolmogorov-complexity  code-golf  sequence  binary  base-conversion  binary-matrix  code-golf  string  classification  code-golf  tips  python  code-golf  combinatorics  binary  subsequence  restricted-time  code-golf  number  number-theory  code-golf  math  number  complex-numbers  code-golf  string  code-golf  string  code-golf  string  random  game  king-of-the-hill  python  code-golf  number  sequence  code-golf  number  sequence  code-golf  code-golf  math  number  array-manipulation  code-golf  array-manipulation  decision-problem  code-golf  string  code-golf  sequence  integer 

14
递归级联[N]的累积和与M次迭代
取两个正整数N,M并[N]通过M迭代创建的串联累积和。输出最后一次迭代的结果。 串联累积和的定义: 以数字开头N并定义顺序X = [N] 追加到X的累积和X 重复步骤2 M次。 向量的累加和X = [x1, x2, x3, x4]为:[x1, x1+x2, x1+x2+x3, x1+x2+x3+x4]。 N = 1和的示例M = 4: P =累积和函数。 M = 0: [1] M = 1: [1, 1] - X = [1, P(1)] = [[1], [1]] M = 2: [1, 1, 1, 2] - X …
14 code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

15
井字游戏-X或O?
背景 如果您熟悉井字游戏,请跳到“任务”(我想大多数人是!) 井字游戏是一款著名的两人游戏。它由一个3x3的棋盘组成,由两个玩家逐渐填充(以下说明);第一个玩家使用角色X,另一个使用O。获胜者是第一个获得水平,垂直或对角线连续3个相同字符(X或O)的人。如果棋盘已满,并且没有一个玩家设法获得上述连续的三个角色,则游戏以平局结束。请注意,如果任一位玩家的胜利总数少于9步(如果出现平局,则不会发生),游戏结束时可能会有空位。 任务 给定游戏结束时的井字游戏板(以字符串,矩阵,9个有序值的平面列表以及任何其他体面格式的形式),确定谁赢了游戏。 输入将包含不同且一致的值,一个表示X,一个表示O,另一个表示空白。 您的程序应该能够输出3个不同的,一致的和非空的值:一个以防万一X,另一个以防万一O如果玩家并列,则为另一个。 请在答案中指定这些值。您可以假定输入将是有效的井字游戏板。 测试用例 X,O,_在这里的输入值; X wins,O wins并Tie用于输出。 X O X O X _ O _ X 输出:X wins。 X _ O X O _ X O X 输出:X wins。 X O X _ O X _ O _ 输出:O wins。 X O X O …

1
跳棋:国王吗?
挑战: 给定棋盘格,如果可能的话,输出将花费最少的移动量(假设黑色根本不移动)为红色棋子。 规则: 红色的一面总是在底部,但是它们的碎片可以从任何行开始(甚至需要到达国王的行)。黑色棋子是静止的,这意味着它们不会在红色棋子之间移动,而在捕获时会从棋盘上移开。请注意,片段可以在板上的任何空间开始,包括彼此相邻。这不是播放普通跳棋的方式,但是您的程序必须能够解决这些问题。(请参阅输入5)但是,方格件只能对角移动(请参阅输入3)。如果第一个捕获在链中是向前的,则允许向后捕获(请参见输入7)。 输入: 一个8x8的棋盘格,其棋盘空间定义为以下字符(只要它们是一致的,可以随意使用替代项): 。-空 R-红色件 B-黑色件 输出: 的最小的移动号码,将采取一个红色片是“kinged”通过输入在板(黑侧)的顶行王的行,0如果不需要移动(开始红色片上王的行),或如果不可能加红色,则为负数(即黑色占据整个第一行)。 输入1: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …

25
棋盘上的棋子数
介绍 普通的棋盘包含8 x 8 = 64个正方形: 您可以看到总共有 12个白色小块。黑白始终具有相同数量的碎片。如果棋盘上还有其他棋子,这些棋子将相邻,这是此挑战所不允许的。为了说明问题,下面是一些示例: 应对这种挑战的最小木板为3 x 3: 您可以看到最大件数等于2。因此,当给定N = 3时,您需要输出2。如果输入为N = 4,则得到以下结果: 您可以看到最大数量也是2。因此,对于N = 4,输出应为2。对于N = 5,输出应等于5: 例子 STDIN: 3 STDOUT: 2 STDIN: 4 STDOUT: 2 STDIN: 5 STDOUT: 5 STDIN: 6 STDOUT: 6 STDIN: 8 STDOUT: 12 规则 您提交的内容必须是一个程序或函数等,它需要一个整数并输出或返回板上的棋子数 您可以放心地假设输入是非负整数> 2 这是代码高尔夫球,因此字节最少的程序将获胜! 请注意,板左下方的正方形始终是深色的。作品只能放在深色方块上 你必须整整地占据一排

2
玩井字游戏,永不丢失
(存在一些挑战,需要使用最佳策略,但在这里我们不需要。即使您能够获胜,也可以平局) 挑战 编写一个玩井字游戏的程序。它一定不能输(因此,应该以平局或获胜结束游戏)。 允许的I / O方法 输入可能是当前板。您可以假设第二个玩家的所有先前举动都是由您的引擎进行的。 输入的内容可能是第一个玩家的举动,而您的函数将存储过去发生过的举动。在这种情况下,该函数被多次调用,每次移动一次。或多次输入功能/程序提示。 允许您输入额外的信息,例如您是第一位玩家,还是编写两个(可能是相关的)函数来解决第一位玩家和第二位玩家的问题。如果程序需要使用输入法2(多次调用),则可以决定在第一次调用中传递了什么。 轮到您后,输出可能是板。 输出可能是您的举动。 移动可以表示为一对数字(可以是0索引或1索引),0到8范围内的数字或1到9范围内的数字。 木板可以表示为3×3数组或长度为9的数组。即使语言具有0索引数组,也可以使用1索引。 网格上的细胞可以使用任何3个不同的值,以指示X,O并清空。 获奖标准 每种语言中最短的代码将获胜。

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.