2012-01-12 17 views
1

MIPSアセンブリで31のバックギャモンゲームを実装するアーキテクチャークラスの割り当てがあります。これまで多くのことを行っていましたが、ボードを表示するのに2つのアレイを使用していました。白いチェッカー(郵便番号で表される)があり、赤チェッカーは1から15までの負の数を使用して表されています。私は私の教授に尋ねられたとき はしかし、彼はボードがすべての動きの後に更新されることを望んでいることを教えてくれましたし、このように見えるようになっている:(ゲームの開始時にすべてのチェッカーがの終わりに配置されていることに注意してください開始フィールドでボード)MIPSアセンブリバックギャモンボードゲームトラブル..


       W1 
          W2 
          W3 
          W4 
          W5 
          W6 
          | 
          W15 

          R15 
          R14 
          R13 
          R12 
          R11 
          R10 
          | 
          R1 

そして、上記のボードサイコロロール後に更新されるようになっている、 Imは表現するために、アレイのいくつかの並べ替えを使用しているつもりと移動を意味それらは の数字と文字です。しかし、実際には、動的なintと文字を1つの配列に実装するのは混乱しています。助言がありますか? ありがとうフォーラム。

答えて

0

文字列(RまたはW)と整数値を1つの配列に格納するのは非常に難しいでしょう。技術的には、すでにチェッカーのすべてのスタックの表現全体を配列に格納しています。あなたの整数の符号ビットをチェッカーの色と考えるなら、すでに問題を解決しています。ここに例があります:

-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('|');  
}