我为我的架构类分配了一个任务,用于在MIPS程序集中实现一个31次的棋盘游戏,到目前为止,我已经做了很多工作,我一直使用两个数组来显示板,我使用了0来表示空字段和其他数字--例如13来显示当前放置在该字段中的检查器的数量,还有白色的棋盘(用正数表示)和用1-15的负数表示的红色检查器。但当我问我的教授时,他告诉我,他希望棋盘在每次移动后都能更新,应该是这样的:(请注意,在游戏开始时,所有的棋盘都放在棋盘的末尾,这是开始的区域)。
W1
W2
W3
W4
W5
W6
|
W15
R15
R14
R13
R12
R11
R10
|
R1上面的棋盘应该在骰子滚动后更新,这意味着我必须使用某种数组来表示和移动这些数字和字母。但是,我发现在单个数组中实现动态in和字符确实令人困惑。有什么建议吗?谢谢论坛。
发布于 2012-01-13 17:50:40
您是正确的,将字符(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( '|' );
}https://stackoverflow.com/questions/8836135
复制相似问题