打造智慧型蛇的學習過程

2021-08-14 04:30:30 字數 1866 閱讀 2499

弄乙個字元遊戲貪吃蛇對我來說已經非常難了,這次的智慧型蛇更是令人頭痛。在借鑑了大佬做的專案後,自己也跟著學習如何製作,畢竟600多行的**,於我而言,是非常難自己乙個人弄出來的。

演算法:

要讓蛇自己走,我們知道追著尾巴跑,蛇就不會死,所以我們以最短路線去吃食物時,要給自己留條後路,如果吃完蘋果還可以找到到自己尾巴路線的話,才去吃蘋果。

下面給出的是智慧型蛇的**的標頭檔案,函式等。

#include 

#include

#include

#include

#include

#define map_length 40

#define map_hight 30

#define blank_cell ' '

#define wall_cell '*'

#define init_snake_length 3

#define snake_head 'h'

#define snake_body 'x'

#define snake_food '$'

#define up (input == 'w' || input == 'w' || input == 72)

#define down (input == 's' || input == 's' || input == 80)

#define left (input == 'a' || input == 'a' || input == 75)

#define right (input == 'd' || input == 'd' || input == 77)

#define pause (input == ' ')

#define cheat (input == 'c' || input == 'c')

void initsnake();

void initfood();

void printmap();

void printmode();

void initgame();

void printsnake();

void printfood();

void printlength();

void productfood();

void eatfood();

int inputvalid(char input);

void snakecontrolmove(char input);

void snakeautomove();

void snakemove();

int snakedie();

void startgame();

void selectmode();

void playgame();

void gamepause();

void gameover();

void restart();

void locatecursor(int x, int y);

void switchcursorvisible();

void inputname();

void gettime();

void initrank();

void ranking(file * fp, struct player player);

void printrank(file * fp, struct player player);

void rank();

void switchcheatmode();

void snakesmartmove();

把每乙個函式打完,然後在把每乙個函式debug好,雖然整個過程整個人是崩潰的,但是整個專案一做出來還是很有成績感的。

智慧型蛇的製作學習

首先,智慧型蛇的大部分 與貪吃蛇相同,但是智慧型蛇能夠自主規劃路線,精準吃下食物。他看起來像是人工智慧,其實有很大區別。怎麼使蛇能夠自己吃下食物呢?接下來我們來看一下他的演算法。for i 0 i 4 i else else 這段 是加在move函式後面的,在走完一步或者是吃完食物之後,它便會判斷前...

貪吃蛇學習過程

貪吃蛇遊戲的設計 首先就是確定好思路 自頂向下,逐步求精 下面是程式的總體結構 while not 遊戲結束 do ch 等待輸入 case ch do a 左前進一步,break d 右前進一步,break w 上前進一步,break s 下前進一步,break end case 輸出字元矩陣 e...

字元遊戲 智慧型蛇學習記錄

1.決定蛇行走的方向函式的偽 hx,hy 頭的位置 fx,fy 食物的位置 function wheregonext hx,hy,fx,fy 記錄可走的方向 用陣列distance 3 記錄離食物的距離 分別計算蛇頭周邊四個位置到食物的距離。h頭的位置,f食物位置 例如 假設輸入 a 則distan...