我正在尝试制作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数组中的数据成功移动后重新绘制电路板。上面看到的电路板数据存储在数据阵列中。
答案 0 :(得分:0)
您是否考虑过只走一段路?
制作新的UTF8打印流:
PrintStream out = new PrintStream(System.out, true, "UTF8");
将here引用到每个国际象棋棋子的UTF8代码列表中。
您可能需要一种涵盖这些代码的字体 - 我发现Monospaced 13对我来说很好。
以下是我之前写的一些实验性代码的示例 - 在Monospaced中看起来更好:
♜|♞|♝|♚|♛|♝|♞|♜
—+—+—+—+—+—+—+—
♟|♟|♟|♟|♟|♟|♟|
—+—+—+—+—+—+—+—
+|*| | | | | |
—+—+—+—+—+—+—+—
+| |*|+|*| | |♟
—+—+—+—+—+—+—+—
+| | |♙| | |*|+
—+—+—+—+—+—+—+—
+|*| | | | | |
—+—+—+—+—+—+—+—
♙|♙|♙| |♙|♙|♙|♙
—+—+—+—+—+—+—+—
♖|♘|♗|♔|♕|♗|♘|♖