2011-09-14 1 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)을 통해 루프에 자전거를 통해 이동 및 길이와 전면과 같은 변수를 채우려. 내가 charCARINFOCAR A와 car을 사용했다

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; 

: 나는 예를 들어,이 모든 논리를 가지고있다.

내가 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'; 자동차는 문자 유형입니다. typedef struct { \t/* 게임에서 모든 차량의 \t의 위치를 ​​나타내는 직사각형 그리드. 각 차는 정확히 한 번 나타납니다 \t 주차장 */ \t char grid [MAXCARPARKSIZE] [MAXCARPARKSIZE]; \t/* 주차장에 사용되는 행 수 */ \t int nRows; \t/* 주차장에 사용 된 기둥 수 */ \t int nCols; \t/* 출구의 위치 */ \t LOCATION exit; } CARPARK; – pseudoabdul

+0

마지막 줄 종류가 적합하지 않습니다. 'car = a'는 무엇을 의미합니까? 자동차 목록을 원한다면, 예를 들어 (100은 예제 임)'CARINFO list [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 목록에 추가하십시오.

마지막으로, 차를 두 번 찾지 않도록하려면 그리드에서 차를 찾을 때마다 차를 살펴보고 car_already_seen으로 표시하십시오.

+0

@ pseudoabdul이 질문에 대한 답변을 얻었습니까? – Shahbaz

관련 문제