Questions tagged «chess»

国际象棋是一种战略游戏,由两个玩家在方格网格上进行。此标签用于与国际象棋或国际象棋的任何变体有关的挑战。

2
国际象棋德比
与国际象棋和拆除德比相比,极性可能更大。您可能会认为,直到今天,没有一个人喜欢另一个人。 规则 起始位置是标准棋盘: RNBQKBNR PPPPPPPP PPPPPPPP RNBQKBNR 看起来已经足够正常了,直到您发现这是每一场比赛的最后一场比赛: 每一回合,棋盘上的每个棋子都会随机做出*选择的有效举动(使用其标准举动规则)。但是,棋子的移动顺序每轮都是随机的。 即使与它的颜色相同,一块也可以捕获任何一块,甚至是国王。 兵可以捕获FORWARD以及对角线。而且,像平常一样,如果在其前面有一个空白空间,则典当可以在其第一步移动两个空间(它们也可以捕捉到该空间)。此外,典当可以提升为除典当。 获胜者是最后一站。但是,如果经过1000转之后,剩下的筹码不止一个,那么其余所有筹码都是赢家。 没有En Passants,Checks,Castle等 输出量 每次转弯后,输出转弯编号以及板子的外观。杀死一块后,将其从板上移除。在第一回合之后,棋盘可能看起来像这样: 1. K RBQ N BR NP P P PP P P R PP BPN PNP K R Q 经过1000次移动后,木板可能如下所示: 1000. Q K P N R R B N Q 游戏结束。 或者,在556转动板后,如下所示: 556。 [R 游戏到此结束。 …

7
骑士留在棋s上的概率是多少?
给定棋盘的大小和骑士的初始位置,计算出k骑士移动后进入棋盘内部的可能性。 注意: 骑士以相等的概率进行所有8个可能的动作。 骑士一旦离开棋盘,便无法再回到里面。 输入值 输入以逗号分隔,形式为: l,k,x,y 其中l国际象棋棋盘的长与宽k是,骑士将要移动的次数,是骑士x初始位置的x位置,以及y的y位置。请注意,这0,0是板的l-1,l-1左下角,也是板的右上角。 算法: 从骑士的初始坐标开始。对该位置进行所有可能的移动,并将这些移动与其概率相乘,对于每个移动以递归方式调用该函数,请继续执行此过程,直到满足终止条件为止。终止条件是骑士在国际象棋棋盘外面,在这种情况下返回0,或者在完成所需的移动次数后返回1。 如我们所见,递归的当前状态仅取决于当前坐标和到目前为止完成的步骤数。因此,我们可以以表格形式存储此信息。 信用 这项挑战最初来自根据CC BY-NC-ND 2.5 IN许可发布的crazyforcode.com博客。对其进行了少许修改,使其更具挑战性。
16 code-golf  chess 

3
国王+白鸦vs国王
这是另一场打得很好的国际象棋的结局。您是白人玩家,您仍然有一个菜鸟和您的国王。您的对手只剩下他的国王。 既然你是白人,轮到你了。创建一个程序来玩此国际象棋比赛。它的输出可以是一系列动作,gif动画,ASCII艺术或您喜欢的任何东西。 似乎很明显,但是我要明确指出:您必须赢得游戏(以有限的步数)。总是有可能从这个位置获胜。不要丢人。不要宽容。 您的程序可能会接受或可能不会接受人工输入的开始位置和每次黑棋操作(您可以放心地认为这是合法位置,即国王之间没有碰触)。如果不是这样,那么黑王的随机起始位置和随机移动就足够了。 得分了 您的分数将是代码长度+奖金的长度。允许使用任何语言,最低分获胜。 奖金 -50(如果您的程序允许人类定义的起始位置和随机的起始位置)。人们可以通过stdin,文件,GUI来输入... -100如果您的程序允许人类和随机玩家同时移动黑王 +12345,如果您依靠外部象棋求解器或内置象棋库 祝好运! 更新! 附加规则:比赛必须进行直到比赛结束。布莱克不会辞职,不会跳到棋盘外面,也不会被外星人绑架。 暗示 您可能会在Chess.se上从此问题获得帮助。
16 code-golf  chess 

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 

4
和平共处的军队
在国际象棋游戏中,有一个称为“皇后”的棋子可以攻击同一行,同一列或对角线上的任何其他棋子。在国际象棋中通常有黑白两面,每一面都属于其中一队。棋子可能不属于同一支球队。 您的目标是为方形板找出最大的和平共处军队。那是黑色和白色皇后可以装在板上的最大数量,因此没有两个女王可以互相攻击,黑色皇后的数量等于白色皇后的数量。 作为输入,您将收到一个方形板的边长,并应输出可以容纳在该板上的最大的和平共存军队的人数。 这是代码高尔夫球,因此适用标签的标准规则。 OEIS A250000 这些测试用例涵盖了所有已知答案。您的解决方案应该是一个广义的答案,只要有足够的计算能力和时间,就可以为任何输入值计算解决方案。 1:0 2:0 3:1 4:2 5:4 6:5 7:7 8:9 9:12 10:14 11:17 12:21 13:24
15 code-golf  chess 

4
骑士填充网格
骑士填充是利用骑士棋子的连通性进行的洪水填充。特别: 1 1 1 1 0 1 1 1 1 (0是初始点,1s表示连接的单元格) 挑战 给定空间和墙壁的2D网格以及初始位置,请对该网格执行骑士填充。最短的代码获胜。 规则 您可以采用任何喜欢的格式(图像,字符串,数组等)输入并产生输出。您可以将初始位置作为输入网格的一部分或作为单独的坐标。为了便于说明,将使用以下格式: ######## # = wall ######## x = initial location ## x ## ## ## ######## ## ## ######## ######## 输出是输入栅格的副本,其中添加了骑士填充结果 您的填充不得与空间或墙壁使用相同的“颜色”,而应与初始位置标记相同。例如,给定上面的图像,有效的输出将是: ######## # = wall ######## @ = fill (could also have been x) ## …

1
象棋转换
在国际象棋世界中已经做了很多工作。例如,存在一种标准的文件格式,.pgn该格式描述了一个国际象棋游戏,其中包括动作列表。此外,还有另一种文件格式.fen,它描述了电路板的位置。 今天的挑战是将国际象棋移动(以代数符号表示)列表转换为棋盘位置。 定义 位置[a-h][1-8]:通过附加行(文件)和列(行)来给出。定义板上64个可能的位置之一。 片[KQRBNP]?:表示ķ ING,Q ueen,- [R OOK,乙 ishop,K Ñ飞行,P芒。用代数符号P不使用。在板上使用时,如果字母为白色,则字母为大写,否则为小写。 移动[KQRBN]?[a-h]?[1-8]?x?[a-h][1-8](=[KQRBN])?(+*?)?|O-O(-O):一块,然后是它要移动的位置。 如果片段不明确,则给出行或列,或同时给出两者。 如果工件正在捕获工件,则将x其放置在工件和位置之间。 如果此举是a脚的话,O-O则为国王一方,否则为O-O-O。 如果要提升典当,则在移动=之后附加要提升的棋子。 如果此举使国王受阻,则会附加一个 +。 如果此举使国王成为将军,则将其附加在#。 作品的颜色由匝数决定(白色和黑色交替匝数,从黑色开始)。 木板(([1-8]|[KQRBNPkqrbnp])*\/){8}:通过按行顺序列出碎片来指定行。如果有空方块,则使用游程的长度给出每个空方块的游程。行使用分隔/ 董事会的初始职位为rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR,代表: rnbqkbnr pppppppp PPPPPPPP RNBQKBNR 您需要列出一个Move清单并返回一个Board。您可以假定您的输入有效。 例子 -> rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR e4 -> rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR e4,c5 -> rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR e4,d5,exd5,e5 -> rnbqkbnr/ppp2ppp/8/3Pp3/8/8/PPPP1PPP/RNBQKBNR e4,d5,exd5,e5,dxe6 -> rnbqkbnr/ppp2ppp/4P3/8/8/8/PPPP1PPP/RNBQKBNR e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4 -> r1bqk2r/ppp2pp1/4Pn2/2P4p/6nP/8/PPP2PPN/RNBQKB1R e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4 -> r1bqk2r/ppp2pp1/4P3/2P4p/3Q2nP/6P1/PPP2n1N/RNB1KB1R e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4,Bf4,O-O -> …
15 code-golf  chess 

3
标记基于堆栈的语言
我一直在研究另一种称为Stackgoat的基于堆栈的高尔夫语言。在这个挑战中,您将为Stackgoat(或实际上是任何通用的基于堆栈的语言)编写Tokenizer。 例子 "PPCG"23+ ["PPCG", '23', '+'] 'a "bc" + ['"a"', '"bc"', '+'] 12 34+-"abc\"de'fg\\" ['12', '34', '+', '-', '"abc\"de'fg\\"'] "foo ['"foo"'] (empty input) [] ' "" ['" "', '""'] 规格 您需要处理的三种类型是: 弦乐,什么内"" 数字,任何数字序列 运算符,除空格外的任何其他单个字符 除非将其留在字符串中或将两个数字分隔开,否则实际上将忽略空格。 字符串/字符规范: 字符串以分隔",当\遇到时,下一个字符应转义。 字符前面加a ',后面的字符'应转换为字符串文字。'a->"a" ' 后面总会有一个角色 右引号应自动插入 规则: 没有形式eval允许 输入输出: 可以通过STDIN,函数参数或您的语言等效输入。 输出应为数组或您的语言最接近的等效数组。
15 code-golf  parsing  code-golf  hexagonal-grid  code-golf  string  code-golf  string  code-golf  combinatorics  code-golf  ascii-art  code-golf  string  game  counting  code-golf  arithmetic  complex-numbers  code-golf  string  code-golf  decision-problem  hexagonal-grid  code-golf  string  sequence  code-golf  number  arithmetic  code-golf  ascii-art  code-golf  ascii-art  code-golf  string  arithmetic  code-golf  number  simulation  code-golf  number  arithmetic  code-golf  string  sequence  unicode  code-golf  string  ascii-art  balanced-string  code-golf  number  clock  code-golf  ascii-art  number  code-golf  math  number  sequence  code-golf  string  ascii-art  balanced-string  code-golf  math  string  popularity-contest  graphical-output  image-processing  code-golf  string  permutations  code-golf  string  code-golf  random  code-golf  string  cryptography  palindrome  code-golf  chess  code-golf  math  array-manipulation  topology  code-golf  math  sequence  code-golf  keyboard  classification  code-golf  string  sequence  code-golf  natural-language  code-golf  math  number  sequence  sorting  code-golf  sequence  combinatorics  grid  tic-tac-toe  code-golf  geometry  code-golf  number  restricted-source  new-years  expression-building 

2
这是有效的棋步吗?
备用名称: ChessMoveQ 给定最多包含32个元素的列表,每个元素由4个元素组成,以及具有4个元素的第二个列表,请确定第二个输入中详细说明的移动是否是有效的国际象棋移动。 第一个列表指示所有32个部件在板上的位置。每个元素都将遵循结构<colour>, <piece-name>, <x-coord>, <y-coord>,例如["W", "K", 5, 1],它指示白色国王在上面5, 1(e1在正常的棋盘上)。第一个输入的所有元素都是唯一的。<x-coord>并且<y-coord>始终在1到8之间。一个示例是: [["B", "K", 3, 8], ["B", "Q", 1, 5], ["B", "N", 4, 7], ["B", "N", 7, 8], ["B", "B", 2, 4], ["B", "R", 4, 8], ["B", "R", 8, 8], ["B", "P", 1, 7], ["B", "P", 2, 7], ["B", "P", 3, …

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 

2
棋盘迷宫
棋子(国王,皇后,新人,主教和骑士)和棋子在板上,但不在a1或h8广场上。您的任务是从空的a1到空的h8正方形,仅通过空正方形。行动规则如下: 您可以从任何空白方块继续到其旁边的空白方块(相同等级,下一个或上一个文件;或相同文件,下一个或上一个文件)。 您可以从任何一个空方块到对角线旁边的任何一个空方块(下一个或上一个等级,下一个或上一个文件),条件是每斤角方块包含(a)两个棋子或(b)相反的棋子/棋子颜色。(两个颜色相同的非典当棋子,或一个非典当棋子与典当棋子的强度足以阻止您过弯,但两个典当棋子都不行;相反颜色的棋子/棋子在例如,如果您在c4上并且d5为空,则可以继续进行下去,前提是c5和d4包含典当或包含相反颜色的棋子/棋子。有关图片,请参见下面的“对角线示例”部分。 输入值 FEN的板说明。即:输入将是一个字符串,其中包含等级8的描述,斜杠(/),等级7的描述,斜杠…和等级1的描述。每个等级的描述都包含数字和字母,从文件a到文件h,其中字母表示棋子和棋子(黑色的棋子是p= pawn,n= knight,b= bishop,r= rook,q= queen,k= king和白色1是相同的大写形式),数字表示连续的空方块数。例如,rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBN移动一层后的木板(国王的棋子到e4)在国际象棋游戏中。 输入中a1和h8为空;即,第一个斜杠前面有一个数字,最后一个斜杠后面有一个数字。 输出量 真假,表明是否有可能成功传递到h8。 如果输入不是有效的FEN板描述(即与我上面的解释相符的描述),或者如果a1或h8被占用,则输出可以是任何东西或什么都不是。(换句话说:您可以假设输入满足以上要求。) 计分 这就是代码高尔夫:最少的字节数获胜。 输入和输出示例 请注意,您的代码必须适用于所有有效输入,而不仅仅是示例。 w在每个FEN之后添加一个空格和一个以使其可视化http://www.dhtmlgoodies.com/scripts/chess-fen/chess-fen-3.html。(请注意,其他一些在线FEN可视化工具不允许使用棋类中非法的棋盘,例如,棋子的等级为1或8,因此不能用于我们的目的。) 真实的例子 8/8/8/8/8/8/8/8 —空板 1p1Q4/2p1Q3/2p1Q3/2p1Q3/2p1Q3/2p1Q3/Q1p1Q3/1q3q2—有一条路径a1,b2,b3,b4,b5,b6,b7,c8,d7,(不是 e8,但被遮挡了)d6,d5,d4, d3,d2,d1,e1,f2,f3,f4,f5,f6,f7,f8,g8,h8 8/8/KKKKK3/K3K3/K1K1p3/Kp1K4/K1KK4/2KK4 —一个示例,其中稍后必须通过在某个点被遮挡的正方形(以确保您不会将正方形设置为不可通过) K1k1K1K1/1K1k1K1k/K1K1k1K1/1k1K1K1k/K1k1K1k1/1K1k1k1K/K1K1k1K1/1k1k1K1k—只有一条路可以走(只要顺着鼻子走:每一步只有一个正方形,除非向后走一步);这也是一个正方形在某个点被阻塞但稍后需要的示例 虚假的例子 6Q1/5N2/4Q3/3N4/2Q5/1N6/2Q5/1N6 —任何尝试在路径上的操作都必须穿过两个对角线放置的相同颜色的片段 N1q1K1P1/1R1b1p1n/r1B1B1Q1/1p1Q1p1b/B1P1R1N1/1B1P1Q1R/k1k1K1q1/1K1R1P1r-穿过a8-h1对角线的唯一方法是在f2-g3处,但这将需要穿过e1-d2或f2-e3,这都是不可能的。 4Q3/4q3/4Q3/5Q2/6Q1/3QqP2/2Q5/1Q6 4q3/4Q3/4q3/5q2/6q1/3qQp2/2q5/1q6 对角线示例 如果上面的散文不清楚,这里有一些图片。 可通过对角线 不可逾越的对角线
14 code-golf  chess  maze 

1
丢失的典当问题
丢失的典当问题 象棋比赛结束后,幸存的棋子被留在了敌后。让我们帮助他找到回家的最短途路。 最初的问题描述了nXn“棋盘”板以及f: {1,..,n-1}X{1,..,n}X{-1,0,1} => R+权重的函数。目标是找到一条最佳路径,从对接线中的某个正方形到顶线中的其他正方形,其中可能的移动是:左上,上,右上,并且您可能不退出木板。 这个问题相对容易使用动态编程在O(n ^ 2)中解决,但这是代码高尔夫,我们不在乎诸如运行时复杂性之类的无用的东西。 问题 输入:一个3维数组(或您选择的其他集合,通过stdin接收,或作为函数参数接收),对应于常规棋盘,大小完全相同:7X8X3(#linePasses X #rowSize X #movesPerPass)包含非负整数。的移动花费从一些位置(i,j),其中i是行索引,并且j是列指数,分别是: a[i][j][0]从左上角到正方形(i+1,j-1)或以图形方式显示的费用:\。 a[i][j][1]到达正方形(i+1,j)或以图形方式显示的费用:|。 a[i][j][2]垂直移动到正方形(i+1,j+1)或以图形方式移动的费用:/。 您可能会假设它不包含总和大于的路径MAX_INT。 输出:显示最佳(最短,即最小权重之和)路径的8X8 ASCII输出(如果有超过1个最佳结果,则可以显示您选择的任意路径)。路径是从下到上绘制的,在每一行中,与典当在路径中的位置相对应的字符是它要创建的字符。例如,如果棋子要从第3列向左移动(移至第2列),则应绘制: #?###### ##\##### 在哪里?应该替换为下一步。最终职位需要画成X。 例子 输入: [ [[1,1,1],[1,1,1],[0,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1]], [[1,1,1],[1,0,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1]], [[1,1,1],[1,1,0],[1,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1]], [[1,1,1],[1,1,1],[1,1,0],[1,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1]], [[1,1,1],[1,1,1],[1,1,1],[1,0,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1]], [[1,1,1],[1,1,1],[1,1,1],[1,0,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1]], [[1,1,1],[1,1,1],[1,1,1],[0,1,1],[1,1,1],[1,1,1],[1,1,1],[1,1,1]] ] 输出: ##X##### ###\#### ###|#### ###|#### ##/##### #/###### #|###### ##\##### 输入: [ [[41,27,38],[12,83,32],[50,53,35],[46,32,26],[55,89,82],[75,30,87],[2,11,64],[8,55,22]], [[56,21,0],[83,25,38],[43,75,63],[56,60,77],[68,55,89],[99,48,67],[94,30,9],[62,62,58]], [[23,18,40],[24,47,61],[96,45,72],[71,6,48],[75,63,98],[93,56,51],[23,31,30],[49,34,99]], [[20,47,42],[62,79,72],[32,28,44],[68,61,55],[62,39,57],[4,17,49],[97,85,6],[91,18,12]], …
14 code-golf  chess 

2
棋盘上的爆炸
原子象棋是一种(非常有趣的)象棋的变体,其中每次捕获都会引起“爆炸”,破坏捕获的棋子,进行捕获的棋子,以及所有非棋子都在1平方毫米的半径内。挑战的目的不是玩完整的原子象棋游戏,而是简单地模拟做出特定动作时发生的情况。 免责声明:不包括爆炸声效。 输入值 董事会职位将以Forsyth-Edwards表示法 (通常称为FEN)给出,但只有第一个字段。例如,输入: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR 代表起始位置: 必须将其视为字符串或您的语言的等效字符串。保证有效;例如,您不必关心是否有十个国王,或者根本没有国王。 您还将获得要模拟的移动,该移动用两个正方形名称表示:要移动的块所在的正方形以及要移动到的正方形。例如,在上图上将国王的棋子向前移动两个空格将表示为: e2e4 这也必须作为字符串。此举将始终有效,并且您无需支持castling。您确实需要支持en passant,这将在下一部分中进一步详细说明。 输出量 程序的输出应与输入使用相同的部分FEN表示法,并进行指定的移动(如有必要,任何部分都应爆炸)。 爆炸的确切规则是-捕获一块时: 删除要捕获的片段(这将始终是输入中指定的第二个正方形上的片段,除非捕获为pass)。 删除正在捕获的片段(这将始终是输入中指定的第一个正方形上的片段)。 删除以下所有内容: 位于围绕捕获发生位置的8个正方形之一中(对于enpassant,这是捕获典当不会爆炸时将位于的正方形)。 不是典当。 快速概述顺便规则,对于那些谁不熟悉:如果从它开始的排名棋子移动两个空格前锋,并且有可能已经捕捉到它,如果它只能移动一格前进的棋子,它可以无论如何捕捉它,但仅在后续移动中。据说此捕获是“ 通过 ”完成的(或法语:“ en passant ”)。 测试用例 在图片中,绿色箭头重新预设了要进行的移动,绿色圆圈表示爆炸的片段。 输入:rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR,g1f3 输出:rnbqkbnr/pppppppp/8/8/8/5N2/PPPPPPPP/RNBQKB1R 输入:3kBb1r/pp5p/3p4/4pn2/P7/1P2P1pP/2rP1P2/R1B3RK,f2g3 输出:(3kBb1r/pp5p/3p4/4pn2/P7/1P2P2P/2rP4/R1B3RK 从http://en.lichess.org/ocoSfS5I/white#36盗取) 输入:rnbqk1nr/1pp5/p2pp1pp/5p2/1bN5/2P1PQ1N/PP1P1PPP/R1B1KB1R,f3b7 输出:(3qk1nr/2p5/p2pp1pp/5p2/1bN5/2P1P2N/PP1P1PPP/R1B1KB1R 从http://en.lichess.org/NCUnA6LV/white#14窃取) 输入:rnbqk2r/pp2p2p/2p3pb/3pP3/5P2/2N5/PPPP2P1/R1BQKB1R,e5d6 输出:(rnbqk2r/pp2p2p/2p3pb/8/5P2/2N5/PPPP2P1/R1BQKB1R 从http://en.lichess.org/AvgU4Skq/white#16窃取;这不是实际的举动,但是我不费心去寻找一个实际上具有过人之处的原子游戏: P) 输入:5r2/2k5/p1B5/1pP1p3/1P4P1/3P4/P7/1K3R1q,c6h1 输出:(5r2/2k5/p7/1pP1p3/1P4P1/3P4/P7/1K3R2 从http://en.lichess.org/l77efXEb/white#58盗取) 计分 这是code-golf,因此以字节为单位的最短代码获胜。
14 code-golf  chess 

3
是将死吗?
鉴于网站上存在大量的国际象棋难题,这完全尚未发布,对此他感到十分惊讶。当我自己想到这个时,应该感谢Anush 于三月份将其发布到沙箱中。但是我认为已经足够长的时间可以自己进行了。 一个将死的棋是在国王被攻击,也没有动,可以保卫它的位置。如果您不熟悉棋子的移动方式,可以在Wikipedia上熟悉一下自己。 挑战 对于这个挑战,您的输入将是您喜欢的任何符号的棋盘位置。为了明确起见,您的输入将描述棋盘上的棋子,棋子的颜色和位置,以及可能的被动捕捉方块(如果有)。(城堡的能力无关紧要,因为您不能超越城堡。)您可能会发现FEN标记很有用,但是任何方便的格式都可以。为简单起见,您可以假设玩的是Black玩家 -这意味着Black永远是被淘汰的玩家。怀特处于支票,将军或僵局的职位将被视为对此挑战无效。 如果该位置是将死,则必须输出一个真实值,如果不是,则必须输出一个虚假值。请注意,僵局不是将军 -国王必须受到攻击! 真实的测试案例 1k5R / 6R1 / 8/8/8/8 / 6K1 b-- rn2r1k1 ​​/ pp1p1pQp / 3p4 / 1b1n4 / 1P2P3 / 2B5 / P5PP / R3K2R b-- kr5R / rB6 / 8/8/8 / 5Q2 / 6K1 / R7 b-- 2K5 / 1B6 / 8/8/8 …

8
这是重复抽奖吗?
问题: 在国际象棋中,有一个关于重复抽奖的众所周知的规则。如果同一位置重复3次(或更多次),则打算进行此举动的玩家将引起平局。 有时候,如果最后几步只是球员的来回移动,这对于仲裁员来说是一件容易的事。有时,当零件在重复的位置之间显着移动时,它会变得不那么琐碎。 挑战中的问题是,给定坐标坐标的移动列表,如果要求的位置是通过重复绘制(已被看到3次或多次),则输出真值;如果要求的位置不是通过重复绘制,则输出假值。如下所述,或您选择的任何符号(但您必须转换测试用例)。 什么是职位? 在现实世界中,位置会受到诸如玩家是否可以装城堡或是否有传球之类的因素的影响;你应该不是在你的解决问题的办法考虑这些。在这个问题中,仅通过板上的部件的配置来确定位置。因此,出于此问题的目的,如果两个板上的每个正方形都被相同类型的相同颜色的零件占据,则两个位置被视为相同。这不一定是确切的棋子,例如,怀特的骑士可以交换正方形,并且如果所有其他棋子都符合条件,则该棋子仍将位于同一位置。 有效符号是什么样的? 尽管我将继续解释坐标符号,但是您可以自由选择所选择的符号系统进行输入。规定: 符号中的每一项都描述以下任何一项或全部:涉及的一件或多件;是否已交付检查,将死,再次检查,将死或僵持;是否发生了被动捕获;初始位置;最后的位置。 您的符号中可能没有重复的信息。 因此,只要满足这些条件,只要您在回答中指定,我就会很乐意接受您的符号系统。例如,可以是0索引行,列元组或任何对您的程序有意义的内容。 坐标符号 坐标符号是一种纯粹将移动描述为坐标系的符号。 首先将移动描述为来自该集合的初始坐标{A1-H8},然后再次描述为来自同一集合的目标坐标。因此,国王的甘比特看起来像(作为字符串的集合) {"E2-E4","E7-E5","F2-F4"} 我认为这是解决此问题的最佳方法,因为它不会散布无关紧要的信息,例如是否进行过检查或工件移动的类型。如前所述,可以选择一种表示法,因此您可以使用另一种表示法,例如代数表示法,也可以改写该表示法(例如,删除破折号或作为元组列表) 规则: 你应该不考虑位置或移动是否有效,只有它是否会导致重复 您可以假设将不会进行小规模促销和典当促销。 您应该将字符串列表作为输入,并输出与最后一次移动是否发生了第三次(或更多次)重复相对应的真实或错误值 游戏始终在国际象棋的标准起始位置开始。初始位置可以计入重复。 如果最后一步没有重复该位置,则不会发生重复绘制 通用规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于具有默认I / O规则的答案,因此允许您使用STDIN / STDOUT,具有正确参数的函数/方法以及返回类型的完整程序。你的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接(即TIO)。 另外,强烈建议为您的答案添加说明。 测试用例 您应该为以下内容返回真实值: {"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8"} {"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8"} {"B1-C3","B8-C6","D2-D4","D7-D5","D1-D3","D8-D6","C3-B1","C6-B8","B1-C3","B8-C6","D3-D1","D6-D8","D1-D3","D8-D6"} {"D2-D4","B8-C6","E2-E4","C6-D4","D1-E2","D4-E6","E2-F3","E6-D4","F3-D1","D4-C6","D1-E2","C6-D4","E1-D1","D4-C6","D1-E1","C6-D4"} {"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","B1-C3"} 和虚假的值: {} {"E2-E4","E7-E5","F2-F4"} {"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","F2-F4","F7-F5"} {"E2-E4","E7-E5","G1-F3","B8-C6","F1-C4","G8-F6","F3-G5","D7-D5","E4-D5","F6-D5","G5-F7"} {"D2-D4","B8-C6","E2-E4","C6-D4","D1-E2","D4-C6","E2-D1","C6-D4","D1-E2","D4-C6","E2-D1"} {"B1-C3","B8-C6","C3-B5","C6-B4","B5-D4","B4-D5","D4-C6","D5-C3","C6-B8","C3-B1","B8-C6","B1-C3","C6-B8","C3-B1"} {"E2-E4","E7-E5","D1-E2","E8-E7","E1-D1","D8-E8","E2-E1","E7-D8","E1-E2","E8-E7","E2-E1","E7-E8"}

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.