編輯#1。
現在我看到我的功能不適用於這個遊戲,所以請忘記它們。
仍然沒有找到解決方案,看到一些關於隊列的文檔,因爲fjf2002提到,但這對我來說太複雜了。試圖讓一個蛇[20]數組存儲座標2
{1,1,1,2}將是:Head(1,1)Tail(1,2)在地圖上。仍然無法想象如何在地圖上移動它,並讓尾巴跟隨頭部。在我嘗試了一切之後,我的思想是空白的,並由於缺乏經驗而感到沮喪。我不允許使用超出二維數組的任何東西。這意味着沒有結構,沒有隊列,沒有堆棧......這應該是沒有使用這些,專家說這比我想象的更容易。 (不要發佈我應該問他的解決方案,因爲他一直說,沒有回答我的問題)。任何想法都會對我有很大幫助...
---------------------------------------- -------------------------------------------------- ------------------------------------------ 即時通訊使用VisualStudio 2013和編程C語言。
正在尋找在過去2天的解決方案,並沒有找到任何互聯網來幫助我。看到幾十種不同的英文和西班牙文的蛇遊戲,但我無法理解他們,因爲他們的計劃零解釋或由於我缺乏經驗。根據頭部的移動無法刪除蛇的尾巴
嘗試了一切我的知識沒有成功,我真的不能真正拿出我自己的解決方案。
我:
- 功能生成地圖。
- 功能移動蛇:
COORD cxy;
#define posicion(x,y) {(cxy.X)= (x);(cxy.Y)= (y); SetConsoleCursorPosition((GetStdHandle(STD_OUTPUT_HANDLE)), (cxy));}
int tablero[20][20], posx = 0, posy = 0;
void movimientoSnake(){
int m = 1, k = 0, tail = 3;
char dir = 'd';
do{
if (kbhit()){
dir = getch();
if (dir == 'w'){
m = 0;
k = -1;
}
if(dir == 's'){
m = 0;
k = 1;
}
if (dir == 'a'){
m = -1;
k = 0;
}
if (dir == 'd'){
m = 1;
k = 0;
}
}
else{
Sleep(500);
posicion(posx += m, posy += k);
printf("%d", 1);
posicion(posx - tail, posy);
printf("%d", 0);
}
} while (2 > 1);
*蛇按WASD鍵移動確定,它留下1的痕跡(圖充滿0的)。 *它根據位置移動:地圖的位置(x,y)(在那裏移動)printf(「%d」,1); (打印1)。例如
主要問題是,當我想要刪除線索時,我向下移動,刪除最後一個位置,同時即時打印新的一個。
如果可能的話我想沒有太多複雜的(使用過多的庫)中的溶液,現在我只知道:
#include <stdio.h>
#include <Windows.h>
#include <stdlib.h>
我嘗試存儲陣列上的座標,因爲我看到的幾乎90%蛇遊戲在那裏,但我不明白這個概念,所以我結束了一堆嘗試沒有成功。
任何想法? 非常感謝您提前。
'while(2> 1);'?? – 2014-12-03 19:35:41
@Weather_Vane它是一個無限循環,因爲我想要它進行測試。 – Papafrita 2014-12-03 20:02:33
對於無限循環,通常寫'while(1)'。 – 2014-12-04 21:09:19