标签: 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        
Run Code Online (Sandbox Code Playgroud)

code-golf reversi

10
推荐指数
2
解决办法
2536
查看次数

对于黑白棋(奥赛罗)的想法需要启发式功能

我刚刚研究了启发式函数,但是我找不到启动函数的想法(奥赛罗),我只需要一个好主意来评分板的某些状态

我想过:

  1. 计算移动次数
  2. 计算光盘数量
  3. 并计算角落里的光盘数量并给予他们更好的分数,

我不知道它是否好.

heuristics reversi

6
推荐指数
2
解决办法
9436
查看次数

奥赛罗评价功能

我目前正在使用min-max和Alpha-beta修剪为othello开发一个简单的AI.

我的问题与董事会状态的评估功能有关.

我目前正在考虑通过计算来评估它

1)光盘数

2)没有合法行动

3)特定职位的重要性

因此,假设根节点是初始游戏状态.第一个动作是AI的动作,而第二个动作是对手的动作.

                   0    
                  / \           AI's Action
                 1   1
                / \   \         Opponent's action
               2   2   2
Run Code Online (Sandbox Code Playgroud)

在节点级别1,我是否会评估我的AI芯片的光盘数量以及它在完成操作后的时间点可以进行的合法移动数量?

在节点级别2,我是否评估对手的筹码的盘数以及在对手完成动作之后它可以进行的合法移动的数量?意思是AI移动 - >对手移动==>此时我评估对手的盘数和对手可以合法的数量.

只是想检查我是否在正确的道路上,因为计算刚刚完成一个动作的玩家的合法移动数量感觉很奇怪.

谢谢和问候,Nat

algorithm reversi minmax alpha-beta-pruning

5
推荐指数
2
解决办法
1万
查看次数

有没有办法快速找到阵列中的所有位置是否"满"?

如果我有一个64长度的java数组i [],有没有一种快速的方法可以找出该数组中的每个位置是否都是"满",而不是循环整个数组?我正在编写一个Reversi AI,我需要知道整个阵列是否已满.

java reversi

2
推荐指数
1
解决办法
758
查看次数

当方法返回t> 1作为布尔值时,它意味着什么?

有人可以解释以下return语句的用法/含义:t> 1; (见最后if语句的最后一种方法)

代码来自一个名为"黑白棋"的游戏http://en.wikipedia.org/wiki/Reversi

此方法检查您是否附上其他玩家的石头.

public bool allowed(int x, int y, bool player)
    {
        int color;

        if(player == true) // true = player is blue.
            color= 1; 
        else color= -1;

        if(stone[x,y] != 0)
            return false;
        else
        {
         for (int dx = -1; dx <= 1; dx ++)
            {
             for (int dy = -1; dy <= 1; dy ++)
             {
                 if (dx != 0 || dy != 0) // 0, 0 must be skipped, own stone.
                 {
                     if (close(color, …
Run Code Online (Sandbox Code Playgroud)

.net c# boolean return reversi

1
推荐指数
1
解决办法
127
查看次数