C/C++完成貪吃蛇慢慢活動後果。本站提示廣大學習愛好者:(C/C++完成貪吃蛇慢慢活動後果)文章只能為提供參考,不一定能成為您想要的結果。以下是C/C++完成貪吃蛇慢慢活動後果正文
本文實例為年夜家分享了C/C++完成貪吃蛇慢慢活動後果的代碼,供年夜家參考,詳細內容以下
重要應用構造數組和構造指針,再用easyx圖形庫停止的畫圖,以供評論辯論和進修
#include <conio.h> //樹立貯存蛇身的構造體 struct snack { int x; int y; }; //決議偏向 int fangxiang=3;//w=0,s=1,a=2,d=3 // 按鍵變量 char anjian=0; //調劑坐標關系 int tiaozheng(struct snack *a); // 挪動函數 int move(struct snack *a); //打印圖象 int print(struct snack *a); //速度 int v=10; int main() { initgraph(640, 480); struct snack na[10] ={0}; while(anjian!='q') { if(kbhit()) { anjian=getch(); switch(anjian) { //w=0,s=1,a=2,d=3 case 'w': if(fangxiang!=1) fangxiang=0; break; case 's': if(fangxiang!=0) fangxiang=1; break; case 'a': if(fangxiang!=3) fangxiang=2; break; case 'd': if(fangxiang!=2) fangxiang=3; break; default: break; } } //清屏函數 cleardevice(); move(na); print(na); //防止法式運轉過快 Sleep(60); tiaozheng(na); } closegraph(); return 0; } int tiaozheng(struct snack *a) { //從最初以個元素開端,順次停止坐標的傳遞 for(int i=9;i>0;i--) { a[i].x=a[i-1].x; a[i].y=a[i-1].y; } return 0; } int print(struct snack *a) { for(int i=0;i<10;i++) { //停止畫圖 putpixel(a[i].x,a[i].y,RGB(100-10*i,255,100-10*i)); circle(a[i].x,a[i].y,5); } return 0; } int move(struct snack *a) { //w=0,s=1,a=2,d=3 switch(fangxiang) { //按鍵呼應,並對超越界面的點停止重置 case 0: a[0].y=a[0].y-v; if(a[0].y<0) a[0].y=480; break; case 1: a[0].y=a[0].y+v; if(a[0].y>480) a[0].y=0; break; case 2: a[0].x=a[0].x-v; if(a[0].x<0) a[0].x=640; break; case 3: a[0].x=a[0].x+v; if(a[0].x>640) a[0].x=0; break; default: break; } return 0; }
因時光無限,沒有斟酌應用new來完成蛇身的長度的可控,僅應用初始值來完成,其次是未應用全局變量,全體比擬紛亂,願望年夜家發明其他成績,迎接指出!!!
以上就是本文的全體內容,願望對年夜家的進修有所贊助。