1　最短代码实现:　#include　　#include　　int　main　()　{　int　W　=　20　,　S　=　W　*　W　,　*　map　,　z　[　3　]　=　{　0　},　len　=　3　,　i　,　c　=　'D'　,　C　,　*　p　,　a　;　for　(　srand　(　map　=　calloc　(　S　,　4　)),　C　=　map　[　1　]　=　-　1　;　C　-　27　;　_sleep　(　100　))　{　if　(　_kbhit　())　C　=　_getch　()　&　95　,　C　-　65　&&　C　-　68　&&　C　-　83　&&　C　-　87　||　((　C　^　c　)　&　20　)　-　4　&&　(　c　=　C　);　p　=　z　+　!!　(　c　&　16　),　*　p　+=　c　/　6　&　1　?　1　:　-　1　,　*　p　=　(　*　p　+　W　)　%　W　;　if　(　a　=　1　,　map　[　z　[　2　]　=　*　z　+　z　[　1　]　*　W　]　>　0　||　system　(　"cls"　))　break　;　for　(;　map　[　z　[　2　]]　&&　(　map　[　i　=　rand　()　%　S　map　[　i　],　++　len　,　--　a　)););　for　(　map　[　z　[　2　]]　=　len　,　i　=　0　;　i　　0　?　((　map　[　i　]　-=　a　map　[　i　]　?　"00"2.　完整代码实现　#include　　#include　　#include　　#include　　#include　　#define　H　23　#define　W　75　#define　WAIT_TIME　500　//定义direction的每个值代表的方向　#define　UP　0　#define　DOWN　1　#define　LEFT　2　#define　RIGHT　3　int　a　[　H　][　W　];　//地图数组　int　s　[　H　*　W　][　2　];　//蛇身坐标数组　int　sLength　;　//蛇的长度　int　direction　;　//蛇的方向　bool　eated　=　false　;　//标记是否吃到食物　void　init　()　//程序开始时的初始化操作　{