我的架构类的任务是在MIPS程序集中实现31步步高游戏,到目前为止我做了很多,我一直使用2个数组来显示板,我使用0表示空字段和其他数字例如13显示当前放置在该字段中的检查器数量,有白色检查器(使用正数表示),红色检查器使用1-15的负数表示。 但是当我问我的教授时,他告诉我他希望每次移动后都要更新电路板,它应该是这样的:(请注意,在游戏开始时,所有的检查器都放在电路板的末端这是起始领域)
W1
W2
W3
W4
W5
W6
|
W15
R15
R14
R13
R12
R11
R10
|
R1
上面的棋盘应该在骰子滚动后更新, 这意味着我将不得不使用某种数组来表示和移动它们 数字和字母。但我真的发现在单个数组中实现动态整数和字符会让人感到困惑。有什么建议? 谢谢论坛。
答案 0 :(得分:0)
你是对的,存储两个字符(R或W)并且整数值在一个数组中将是非常困难的。从技术上讲,您已经在阵列中存储了所有棋盘堆栈的整个表示。如果您将整数上的符号位视为检查器的颜色,那么您已经解决了问题。这是一个例子:
-5 = R5
12 = W12
1 = W1
-9 = R9
所以你看到你已经存储了颜色,但是你使用的是符号位而不是字符。现在你所要做的就是确定数字是否有符号,并在数字的绝对值之前显示相应的字符。
for( i = 0 ; i < myArray.length ; i++ )
{
if( myArray[i] != 0 )
{
if( myArray[i] > 0 ) print( 'W' );
elseif( myArray[i] < 0 ) print( 'R' );
print( abs( myArray[i] ) );
}
else print( '|' );
}