2011-09-14 6 views
-2

プログラムの場合、グリッドに関連する一連の変数を入力する必要があります。グリッド上で異なるcharは異なる車を表しています。各車は、2行または3行(垂直または水平のいずれか)で表すことができます(char)。画像のようなデータグリッドからシンプルな形のリストを抽出する

/* Structure to hold information about a car */ 
typedef struct 
{ 
    /* The location of the front of the car. As all cars are assumed 
     to be facing either north or west, this location represents 
     the northwest segment of the car */ 
    LOCATION front; 
    /* The orientation of the car */ 
    ORIENTATION orientation; 
    /* The length of the car */ 
    int length; 
} CARINFO; 

は、私はすべての異なる車(タイプCARINFO)をループのためのサイクリングを通過し、長さやフロントなどの変数を埋めるためにしたいです。

if ((carpark.grid[i + 1][j] == car && carpark.grid[i - 1][j] == car) || // (left and right) OR 
    (carpark.grid[i][j + 1] == car && carpark.grid[i][j - 1] == car)) // (up and down) 
    CAR.length = 3; 

私はCARINFOとしてcharCARとしてcar使用している:私は、例えば、このためのすべてのロジックを持っています。

私にstruct CARINFO aがあった場合、どうすればcar = aを作り、他のすべての車で同じことをするのですか?

+1

あなたの質問は完全ではありません。 「構造体からcharを得る」とはどういう意味ですか? 「車」の種類は何ですか? 'carpark.grid'のタイプは何ですか? –

+0

私はこれを避けようとしていますが、同じ効果を得ようとしています。 \t if(CAR = CAR_a)car = 'a'; \t if(CAR = CAR_b)car = 'b'; \t if(CAR = CAR_c)car = 'c'; \t if(CAR = CAR_d)car = 'd'; 車はタイプcharです。 typedef struct { \t/*ゲームのすべての車の \tの位置を表す文字の長方形グリッド。各車は正確に一度現れます \t駐車場*/ \tチャーグリッド[MAXCARPARKSIZE] [MAXCARPARKSIZE]; \t/*駐車場で使用される行数*/ \t int nRows; \t/*駐車場で使用される列の数*/ \t int nCols; \t/*出口の場所*/ \t LOCATION exit; } CARPARK; – pseudoabdul

+0

最後の行の種類は意味をなさない。 'car = a'はどういう意味ですか?あなたが車のリストを持っていたいなら、それは 'CARINFO list [100]'(例えば100)、 'CARINFO * list = malloc(count * sizeof(* list));' 'n '番目の車が見つかったら、それを' 'CAR'で記入してリストにコピーします:' list [n] = CAR; ++ n; ' – Shahbaz

答えて

1

私はコードを提供するつもりはありませんが、アイデアです。

for (i = 0; i < grid_row_size; ++i) 
    for (j = 0; j < grid_col_size; ++j) 

は、その後、あなたが提供したコードのように(車を検出し、しかし、あなたはの世話を確認してください:あなたがやるべきことの列に、その内部ループ、行にもまず基本的にループであり、例えば、i==0の場合は、grid[i-1][j]をチェックしないでください。

車を見つけたら、好みの長さ、位置、向きを設定し、CARINFOのリスト(配列)に追加します。

最後に、車が2度見つからないようにするには、車をグリッド上で見つけたら必ずその車に乗ります。それをcar_already_seenとマークします。

+0

@pseudoabdulあなたはこの質問に答えましたか? – Shahbaz

関連する問題