你喜欢猫。很自然,你喜欢在抽搐脚趾里玩猫游戏。所以,你想出了一个小派对把戏。
你问别人他们想让你搬进来的地方是什么方格。你问别人他们想让你做那个动作。你也让那个人决定你是玩Xs还是Os。有了这个,你就可以开始比赛了。
你和他们为你选择的那一边一起玩你的同伴。果然,当他们选择的转弯到来时,你就会在他们选择的地方移动。从那以后,你就可以和你的同伴玩猫游戏了。(你的同伴可以利用你的强迫行动打败你,或者上帝禁止他们先占领广场,但他们毕竟是你可靠的助手。)看哪!
你相信无论猫给你什么,你都可以以猫的游戏结束,但你要确保。让我们帮你一把!
给出一个移动的tic-tac-脚趾板和一个转身的移动,输出一个平局的游戏,在那里的移动是发挥。猫的游戏!
任何输入/输出,以表示给定的信息和结果的游戏将被接受。但下面是我在示例中使用的惯例:
在抽签板上有9个正方形,在一个抽签游戏中有9个回合,因为每个正方形都必须填满。因此,我的输入示例将采用一对1-9整数。第一个数字代表转弯号码,第二个数字代表移动板上的正方形。无论是偶数还是奇数,都会告诉你你是在玩X还是O,我的输出将是以3×3打印的数字1-9,代表第n步的位置。并在括号中标记输入,以便于阅读。
同样,您可以更改I/O方案。例如,您的输出可以平平网格,只需返回一个简单的列表。这是几乎每个人都选择的,也许你有另一个想法!也许是表示第n次移动的数字列表。您的输入可以切换转弯和移动数字,或者完全不同。
因此,对于这个特定的I/O方案,3 5表示在第五个正方形上移动,这是中心,在你的第三个回合。你的回合很奇怪,所以你扮演的X是第一个/奇数玩家。
这是代码-高尔夫,所以以字节为单位的最短代码获胜。
我们可以将问题的框架等同起来:将数字1-9排列在一个方格中,这样你就没有三个偶数或胜算了。(输入给出一个数字的位置。)这个问题可以通过玩Tac脚趾来解决,这意味着这个问题可以用一个贪婪的算法来解决!
>> 3 5
8 5 7
9 (3) 2
6 4 1>> 5 3
9 8 (5)
2 3 1
4 7 6>> 7 4
5 4 1
(7) 6 2
8 9 3>> 1 1
(1) 2 4
6 3 5
7 9 8 >> 9 9
4 5 1
7 6 2
3 8 (9)发布于 2021-06-14 21:36:14
将基于0的索引作为第一个输入,将要放置的数字作为第二个输入。
9Lœʒ¹èQ}3δôʒyø«y‚€Å\«É€Ëà≠9Lœ # all permutations of [1 .. 9]
ʒ¹èQ} # keep a if a[¹] == ²
3δô # split each permutation in groups of 3
ʒ # keep grids where:
yø« # concatencate the transpose to the grid
y‚ # pair the grid and its reverse
ہ\ # for each: take the main diagonal; this is the main and anti-diagonal
« # concatenate the diagonals to rows and columns
É # each integer modulo 2
€Ë # for each sublist: are all values equal
à # take the maximum / is any 1?
≠ # boolean negate (!= 1)发布于 2021-06-14 23:16:51
NθNη⪪⁺1234⁺§⪪657576³θ98³W﹪⁻§KAηθ²⟲W⁻§KAηθUMKAI⎇‹κ3⁻χκ⁻κ²在网上试试!链接是详细的代码版本。将平方数作为0索引,而把转弯数作为1索引(可以很容易地使0索引)。说明:不包括旋转和反射,假设X第一,只有三个最后的位置:
XOX XOX XXO
OXX OOX OOX
OXO XXO XXO它只是停留在数字和/或旋转和/或反映这些位置之一,这样的方式,所希望的发挥出现在期望的回合。
NθNη输入0索引的平方和1索引的转弯.
⪪⁺1234⁺§⪪657576³θ98³如果转弯号为偶数,则生成字符串123465798 (对应于第一个模式),否则生成字符串123457698 (对应于第二个模式;我不使用第三个模式)。把它分成3×3正方形。
W﹪⁻§KAηθ²⟲旋转方格,直到所需方格下的数字与所需的旋转具有相同的奇偶。
W⁻§KAηθ重复,直到所需方格下的数字是所需的转弯.
UMKAI⎇‹κ3⁻χκ⁻κ²..。循环洗牌X's转身和(分别) O's转身。
发布于 2021-06-14 22:01:23
[:(([:*/3>1#.2|],|:,#:@273 84#,)"2#])a 3 3&$"1@#~]=[{"1 a=:(i.@!A.i.)@9方法简单明了,类似于其他答案:生成所有的9!棋盘,然后过滤那些有移动到所需的位置,然后过滤由猫游戏。
https://codegolf.stackexchange.com/questions/229667
复制相似问题