作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或互动。
好的,这是一个相当复杂的 Code Golf 挑战:实现 Reversi 的游戏(奥赛罗)。
abcdefgh
1
2
3
4 wb
5 bw
6
7
8
b>d3
abcdefgh
1
2
3 b
4 bb
5 bw
6
7
8
最佳答案
Perl,408 个字符
这是 Perl,现在减少到 408 个字符。可以用更简单的方法来宣布获胜者(比如说 "B"
而不是 "Winner: Black\n"
)再砍掉 25 个字符。前两个换行符很重要;其他的都包括在内以提高可读性。
sub O{2&$B[$q+=$_]*$%}sub A{grep{$q=$=;$"=''while&O;$B[$q]*O$q=$=}$B[$=]?():@d}
sub F{$B[$q]=$%;O&&&F}sub D{print'
',a..h,$/,(map{($e="@B[$_*9+1..$_*9+8]
")=~y/012/ bw/;$_,$e}1..8),@_}
@d=map{$_,-$_}1,8..10;@B=(@z=(0)x40,$%=2,1,(0)x7,1,2,@z);
for$!(%!){$%^=3;for$=(9..80){$=%9*A&&do{{D$%-2?b:w,"> ";
$_=<>;$==(/./g)[1]*9-96+ord;A||redo}F$q=$=for A;last}}}
$X+=/1/-/2/for@B;D"Winner: ",$X<0?White:$X?Black:None,$/
@B
拿着游戏板。
$B[$i*9+$j]
指行 $i (1..8) 和列 $j (1..8)
@d
是 8 个有效方向的列表
O
是一种方便的方法。它递增
$q
来自
$_
(当前方向)并在
$B[$q]
处返回非零值。属于当前玩家的对手
F
处理当前方向的翻转块
$_
A
检查当前玩家是否可以在
$B[$=]
进行合法移动并返回可以翻转棋子的方向集
D(@_)
画板和打印
@_
$%
(当前玩家)并遍历棋盘上的位置以找到该玩家的合法移动。
关于code-golf - Code Golf : Reversi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1582359/
(这是作业)我正在尝试打印带有行和列标题的黑白棋盘。我的问题是为什么不打印句号而是打印“B”和“W”。有什么建议吗? #include #include using namespace std;
锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 好的,这是一个相当复杂的 Code Golf 挑战:实现 Reversi 的游戏(奥赛罗)。 游
嗨我在哪里可以找到有关如何为该游戏实现 AI 的信息。以前从未做过任何类型的 AI。 寻找最佳和简单方法的建议谢谢 最佳答案 就像在几乎所有棋盘游戏中一样,您必须 (a) 评估一个位置的好坏,以及 (
在最近的一项任务中,我们的任务是创建Reversi/Othello AI,它可以在 1s 下做出有效的移动。我从一个简单的机器人开始,它采用所有可用的 Action 并根据带有值的棋盘对它们进行评分。
我是一名优秀的程序员,十分优秀!