将2D阵列转换为棋盘

时间:2013-04-17 14:39:31

标签: java android

我正在尝试制作android国际象棋游戏。我已经让引擎使用基于文本的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:

我想将这个2D数组转换为图形用户界面。如果移动成功与否,所有移动都能正常工作并打印出结果或错误。我知道它会像gridview那样的东西。我不是在寻找代码,而是一种算法或过程,我可以在视图中转换这个2D数组,例如: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:

我想在使用2D数组中的数据成功移动后重新绘制电路板。上面看到的电路板数据存储在数据阵列中。

1 个答案:

答案 0 :(得分:0)

您是否考虑过只走一段路?

制作新的UTF8打印流:

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

here引用到每个国际象棋棋子的UTF8代码列表中。

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

以下是我之前写的一些实验性代码的示例 - 在Monospaced中看起来更好:

    ♜|♞|♝|♚|♛|♝|♞|♜
    —+—+—+—+—+—+—+—
    ♟|♟|♟|♟|♟|♟|♟| 
    —+—+—+—+—+—+—+—
    +|*| | | | | | 
    —+—+—+—+—+—+—+—
    +| |*|+|*| | |♟
    —+—+—+—+—+—+—+—
    +| | |♙| | |*|+
    —+—+—+—+—+—+—+—
    +|*| | | | | | 
    —+—+—+—+—+—+—+—
    ♙|♙|♙| |♙|♙|♙|♙
    —+—+—+—+—+—+—+—
    ♖|♘|♗|♔|♕|♗|♘|♖