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 < 17; i++)
} for (i = 1; i < 16; 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++)
food();
calculate();
}void show()
printf(「\n」);
} while (1)
else if (ch == 『r』)
} }
system(「cls」); //清屏
for (i = 0; i < 17; i++)
printf(「\n」);
} calculate(); //計算並記錄蛇頭與食物距離 } }
void food() } }
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 check()
printf(「\n」);
} printf(「input 『r』 to restart\ninput 『q』 to quit\n」);
over = 1;
} }
else if (map[x][y] == 『o』)
}void turn()
} switch (k)
}void calculate() else } }
int main()
(因為已經有動態全程圖了,就不截其他圖了)
貪吃蛇高階 智慧型蛇
做完了人工操控的貪吃蛇,由於太懶了 我們來設計乙個可以自動尋找食物的智慧型蛇吧w 思路 我們只需對原來人工操作的貪吃蛇 稍作修改即可。首先,我們要讓蛇能夠根據食物的位置自動判斷自己移動的方向。注意,此時如果只是簡單判斷蛇的head與食物的距離,蛇就非常容易把自己繞死。這時有乙個比較簡單的思路 遍歷全...
智慧型貪吃蛇
include include include include include include include include void food void show void move void turn void check void ini void calculate int movable...
VC版貪吃蛇
此處,我感受到復用性的好處,將與顯示或平台無關的東西分裝在一起,如果能進一步抽象的盡量抽象,就可以充分發揮其復用性。具體的關於snake的設計,請參見我的部落格 c 版貪吃蛇遊戲 下面是vc下的遊戲介面截圖 在這裡說一下vc下與c 不同的及新家的東西。cpp view plain copy 引入庫 ...