介紹貪吃蛇的演算法云云

2021-08-14 04:16:29 字數 1837 閱讀 8643

繼上次貪吃蛇進行了簡單的方向移動後,還要在裡面摻入一些動態化的元素,即判斷金幣的動態,錢的出現等功能。

**如下:

#include #include #include #include //#include #include #include #include void show();

void move();

void turn();

void check();

void ini();

//void calculate();

//int movable[4] = ; //陣列的下標表示方向,0123分別表示上下左右,下同

//int distance[4] = ;

int dy[4] = ;

int dx[4] = ;

int sum = 5; //蛇總長度

int over = 0;

int speed;

//int foodx, foody; //食物的座標

char map[12][12];

struct snake a[100];

void ini()

a[0].x = 1; a[0].y = 1; //地圖左上角設定一條長度為5的蛇

a[1].x = 1; a[1].y = 2;

a[2].x = 1; a[2].y = 3;

a[3].x = 1; a[3].y = 4;

a[4].x = 1; a[4].y = 5; a[4].dir = 1;

srand(time(0));

for (i = 0; i < 12; i++)

}for (i = 1; i < 11; i++)

}//map[6][5] = '*'; map[6][6] = '*'; map[6][7] = '*';

//map[7][5] = '*'; map[7][7] = '*';

map[a[4].x][a[4].y] = 'h'; //設定蛇頭

for (i = 0; i < sum - 1; i++)

//calculate();

}void show()

printf("\n");

}while (1)

else if (ch == 114) }}

system("cls"); //清屏

for (i = 0; i < 12; i++)

printf("\n");

}//calculate(); //計算並記錄蛇頭與食物距離

}}void move()

else

map[a[i].x][a[i].y] = 'x'; //把地圖上蛇身座標處的字元設定成『x』

}a[sum - 1].x = a[sum - 1].x + dx[a[sum - 1].dir]; //蛇頭按當前方向移動一格

a[sum - 1].y = a[sum - 1].y + dy[a[sum - 1].dir];

map[a[sum - 1].x][a[sum - 1].y] = 'h'; //把地圖上蛇頭座標處的字元設定成『h』

}else

/*for(i = 0; i < 4; i++) else else

}}*/

}void turn()

}}latex 數學公式文字

/*void calculate() else

}}*/int main()

某種意義上說,就是給蛇一種屬於自己的判斷機制,通過及時的資料反映,然後讓蛇進行自動化的計算,即繞過障礙,又吃到金幣;不過難以避免的是,蛇在一定長度後吃到自己的情況。

貪吃蛇的演算法分析

貪吃蛇是一款非常經典的手機遊戲。它有很多演算法,這裡詳細分析一種比較優秀的演算法。首先介紹下主要用到的七個類 lwormmain 最主要的類,控制所有其它類的執行和銷毀。lwormpit 處理鍵盤輸入事件並例項化worm類和wormfood類的。lworm 抽象了貪吃蛇的屬性和動作 lwormfoo...

js貪吃蛇的詳細介紹

模擬貪吃蛇遊戲,做的專案 地圖 寬,高,背景顏色,因為小蛇和食物都是相對於地圖顯示的,這裡小蛇和食物都是地圖的子元素,隨機位置顯示,脫離文件流的,地圖也需要脫離文件流 css需要設定 寬,高,背景顏色,脫標 食物 div元素 elements 儲存div的陣列 將來刪除的食物div時候,先從map中...

C 貪吃蛇基本演算法

include include include include include using namespace std int error char x,char y 糾正強行自噬 int pos long x,long y setconsolecursorposition direct,pos 改...