C語言推箱子分析

2021-08-22 11:38:55 字數 1816 閱讀 3144

用乙個二維陣列來表示整個地圖,我們先網上找一張地圖來分析下。

分析:地圖上有  牆、目的地、箱子、人、背景牆、目的地和箱子合起來的(紅箱子)

我們用數字來在二維陣列中對應的標記這些東西,二維陣列的大小就是地圖的大小咯。

//定義地圖大小 8*8

int map[8][8]

;

哈哈哈,當然是初始化這個地圖咯,就是往這個二維陣列對應的位置上貼圖。

easyx圖形庫自帶了使用文件,大家可以看一看文件裡面各種函式的使用說明。

//載入

void gameinit()

//列印

void gamepaint()

} }}

//遊戲控制

void gameplay()

cleardevice();

gamepaint();

flushbatchdraw();

//找到人物的位置

for (x = 0; x < 8; x++)

}if (map[x][y] == 5 || map[x][y] == 8)

//for迴圈結束後 map[x][y]就是小鳥的位置

} ch = getch();

switch (ch)

else if (map[x - 1][y] == 4 || map[x - 1][y] == 7)

}break;

case 80:

case 's':

case 's':

if (map[x + 1][y] == 0 || map[x + 1][y] == 3)

else if (map[x + 1][y] == 4 || map[x + 1][y] == 7)

}break;

case 75:

case 'a':

case 'a':

if (map[x][y - 1] == 0 || map[x][y - 1] == 3)

else if (map[x][y - 1] == 4 || map[x][y - 1] == 7)

}break;

case 77:

case 'd':

case 'd':

if (map[x][y + 1] == 0 || map[x][y + 1] == 3)

else if (map[x][y + 1] == 4 || map[x][y + 1] == 7)

}break;

} }endbatchdraw();//關閉批量繪圖

messagebox(gethwnd(), "you win", "ok,go on!", mb_ok);

}

//遊戲判定

int gamewin()

if (map[i][j] == 7)

}} if (winner4 == winner7)

else

}

//主函式

int main()

C語言 推箱子

這個小遊戲設計起來不難,之所以做他的目的是,一天老師給我了個他很早以前寫的2d庫,讓我去使用這個庫完成乙個小遊戲,這個過程的意義再去讓我乙個以前從未用過別人手寫庫的學生,了解到了庫的設計結構,和如果好的使用別人的庫去完成任務,雖然程式設計難度不大,但是意義深刻,至少知道了以後遇見別人的庫是怎麼使用,...

推箱子 C語言

主要功能分析 使用switch語句實現,上下左右移動 用棧實現返回上一步操作。include include include include int map1 9 9 0代表空地 1代表牆 3代表目的地 4代表箱子 5代表人 int map2 9 9 typedef char elementtype...

手寫c語言推箱子

include include includeint life 1 判斷是否繼續 int map 10 10 圖域 0空地,1圍牆,2人,3箱子,4目的地 image img 6 圖組 int arr 10 10 int level 0 void init void drawmap endbatch...