-1

我正在尝试制作安卓国际象棋游戏。我已经让引擎使用这样的基于文本的 UI:

bR bN bB bQ bK bB bN bR 8
 bp bp bp bp bp bp bp bp 7
    ##    ##    ##    ## 6
 ##    ##    ##    ##    5
    ##    ##    ##    ## 4
 ##    ##    ##    ##    3
 wp wp wp wp wp wp wp wp 2
 wR wN wB wQ wK wB wN wR 1
  a  b  c  d  e  f  g  h
White's move:

我想将此二维数组转换为图形 UI。如果移动成功与否,所有移动都正常工作并打印出结果或错误。我知道这将类似于 gridview 之类的东西。我不是在寻找代码,而是一种算法或一种可以在视图中转换这个二维数组的过程,例如:e2 e4 移动 pawn 将导致这个

 bR bN bB bQ bK bB bN bR 8
 bp bp bp bp bp bp bp bp 7
    ##    ##    ##    ## 6
 ##    ##    ##    ##    5
    ##    ## wp ##    ## 4
 ##    ##    ##    ##    3
 wp wp wp wp    wp wp wp 2
 wR wN wB wQ wK wB wN wR 1
  a  b  c  d  e  f  g  h
Black's move:

我想在移动成功后使用二维数组中的数据重新绘制棋盘。上面看到的棋盘数据存储在数据数组中。

4

1 回答 1

0

你考虑过只走一部分吗?

创建一个新的 UTF8 打印流:

PrintStream out = new PrintStream(System.out, true, "UTF8");

在此处参阅每个棋子的 UTF8 代码列表。

你可能需要一种涵盖这些代码的字体——我发现 Monospaced 13 对我来说很好用。

这是我不久前写的一些实验代码的一个例子——在等宽中看起来更好:

    ♜|♞|♝|♚|♛|♝|♞|♜
    —+—+—+—+—+—+—+—
    ♟|♟|♟|♟|♟|♟|♟| 
    —+—+—+—+—+—+—+—
    +|*| | | | | | 
    —+—+—+—+—+—+—+—
    +| |*|+|*| | |♟
    —+—+—+—+—+—+—+—
    +| | |♙| | |*|+
    —+—+—+—+—+—+—+—
    +|*| | | | | | 
    —+—+—+—+—+—+—+—
    ♙|♙|♙| |♙|♙|♙|♙
    —+—+—+—+—+—+—+—
    ♖|♘|♗|♔|♕|♗|♘|♖
于 2013-04-17T14:49:17.543 回答