조립할 때 게임을하기가 쉽지 않습니다. (복잡한 종류가 아닌 단순한 종류의 게임입니다.) 두 스택이 필요합니다. 두 개의 스택을 만들고 사용하는 방법을 보여 주시면 기쁘게 생각합니다. 지식 만 있으면, 뱀이 자르면 뱀의 시체를 칠할지를 검사 할 스택이 필요합니다.조립품에 두 개의 스택이 있습니다.
답변
. 뱀 배열을 만듭니다. 그들을 옮기십시오. 머리를 snake[0] (x;y ofhead)
추가하고 snake[snake_size]
을 지우십시오. 이지도 할 경우 해당 맵 [X, Y] 영역에 플래그 뱀의 몸 전체지도는지도를 사용하여 던져 반복 그릴 수있는 것은 의사 코드 값 : 여기에 뱀을 이동
map[x,y]=1 //snake body
map[x,y]=0 //nothing
map[x,y]=2 //fruit
map[x,y]=-1 //fench
하는 것은 간단한 코드입니다 : () 오른쪽으로 뱀 배열을 이동 :
. (주의 : 우리의 뱀 배열 요소 워드 (2 바이트)를 이렇게 실제로 snake[x*2]
주소를 표시해야한다 snake[x]
를 작성,
mov cx, snake_size
; di=snake_size*2
mov di, snake_size
add di,di ;// di=di*2
move_array:
; snake[x]=snake[x-1];
mov ax, snake[di-2] ;
mov snake[di], ax
; --x (x=x-1)
sub di, 2
loop move_array
//c style loop code will be
for(int i=snake_size;i>0;i--){
snake[i]=snake[i-1];
}
을이 운동 후에하는 새로운 위치를 추가 너무 머리 snake[0]
명확 tail=snake[snake_size]
및 플래그지도 사람들의 : 그는 당신이지도 [head.x, head.y] == 2 또는는 fench 위해 머리 위치를 확인해야 열매를 먹으면보고에 대한
당신 그가 자르는지 여부를 확인하려면 -1
으로 확인하십시오. 당신은 루프 전체 몸을 던져 몸
오는 머리 충돌이을 쌓아 있는지 확인해야합니다
- 는 필로의 동작을 가지는 배열입니다.
- 상점 색인이 필요합니다.
;mem[index]=value;++index;
- 을 밀어 때 [인덱스]를 감소 지수 터지는 및 MEM을 반환 할 때
- 는 멀티 아니라면
;--index;return mem[index]
이
뱀에게 배열을하는 것을 의미한다면 - 어떻게 크기를 바꿀 것인가. 그렇지 않다면 꼬리가 무엇인지 어떻게 알 수 있습니까 (꼬리를 삭제 한 후지도에서 새 위치를 찾아야합니다). 그런데지도는 배열입니까? – TJR
뱀에 대한 @TJR 뱀의 최대 길이를 가진 snake_array가 있습니다.이 길이는 결코 (mapx * mapy)/2를 초과하지 않습니다. 현재 스네이크 크기를 보유하고있는 s_size가 있습니다. 우리가 s_size를 증가 시키면 스네이크 크기가 변경 될 것입니다. 우리는 꼬리 인 뱀 [s_size]를 깨끗하게합니다. .map은 2 차원 배열입니다. 우리는 cheking 및 목적을 표시하기 위해 map을 사용합니다. 또한 내 대답을 확인하십시오. 나는 형식을 개선하고 더 명확하게 만들었습니다. – qwr
- 1. 어셈블러에 두 개의 스택이 있습니까?
- 2. 활동 스택이 비어지고 있습니다.
- 3. 스택이 비어 있습니다 ... 왜?
- 4. 첫 번째 두 개의 열 아래에 여러 개의 VBA 스택이 있습니다.
- 5. 모든 활동 스택이 비어 있습니다.
- 6. MEAN 스택이 localhost : 3000에 있습니다.
- 7. 두 개의 다른 테이블에 데이터 스택이 있는지 비교
- 8. "x"유형이 참조되지 않은 조립품에 정의되어 있습니다. VS 2010 C#
- 9. 두 개의 바인딩이 web.config에 있습니다.
- 10. 두 개의 제출 버튼이 있습니다.
- 11. 두 개의 루프가 섞여 있습니다.
- 12. 아래 두 개의 클래스가 있습니다
- 13. ActiveRecord에는 두 개의 연관이 있습니다.
- 14. 두 테이블 사이에 두 개의 링크가 있습니다.
- 15. 두 개의 서로 다른 관계가있는 두 개의 리소스가 있습니다.
- 16. 두 개의 다른 페이지에 두 개의 텍스트 상자가 있습니다.
- 17. 두 개의 쿼리와 두 개의 내부 조인이 있습니다.
- 18. 두 개의 레이아웃 /보기가 하나 인 두 개의 레코드가 있습니다.
- 19. 조립품에 필요한 조립품을 가져 옵니까?
- 20. 짝수 정수의 스택을 반환하지만 스택이 비어 있습니다
- 21. 다른 종류의 스택이 많음
- 22. html 문서에 두 개의 버튼이 있습니다.
- 23. 하나의 확인란 상자에 두 개의 확인란이 있습니다.
- 24. 두 개의 색인 유형 페이지가 있습니다.
- 25. 서로 옆에 두 개의 회전 장치가 있습니다.
- 26. 같은 줄에 두 개의 div가 있습니다.
- 27. Wicket 같은 열에 두 개의 링크가 있습니다
- 28. 같은 페이지에 두 개의 쿼리가 있습니다.
- 29. Tibco에서 두 개의 거의 동일한 프로세스가 있습니다.
- 30. 두 개의 ISR이 Arduino Uno에 있습니다.
하나의 호출 스택이있을 수 MEM [인덱스]에 가치를 추가하고 인덱스를 증가 밟아. 나머지는 사용자 스택 (즉, 수동으로 관리)이어야합니다. 알고리즘은 그리 어렵지 않습니다. –
왜 스네이크가 교차 하는지를 확인하기 위해 스택이 필요한 이유를 설명해 주시겠습니까? 2D 배열로 플레이 필드를 나타내면 뱀의 세그먼트가 이미 다른 세그먼트가있는 동일한 셀에서 끝나는 지 확인하여 쉽게 찾을 수 있습니다. – Michael
@TJR 내 대답을 확인하십시오. 그것이 도움이 될 수 있는지보십시오 – qwr