自己做的貪吃蛇遊戲,console視窗的,大家沒事的時候就玩玩吧~。
這段時間實在無聊 ,由於期末考的原因,acm落一邊了,等暑期集訓再好好搞,呵呵。閒來無事,就想動手編個小遊戲自己樂著玩兒。早就想編個貪吃蛇,於是就動手了。開始的時候構架出來得很清晰,各類物件敲得很快,大概3個多小時,基本的雛形就有了。然後接下來就是各種細節的處理,這裡很蛋疼,耗費了不少精力,但也學到了不少的東西,對c++有了更清晰的認識。最後就是各種bug,各種修復,雖然現在還存在少許bug,但都不影響遊戲的執行了,試試玩玩吧。
ps:好像這是這個月的第一篇博文呢 = =#
遊戲**:
//***************************//
// snake c++ //
// written by zhsl //
// 2012.6.10 //
//***************************//
#include#include#include#include#include#include#includeconst int width=18,length=58,mid=41; //定義地圖長和寬,mid為中間分界線
const int init_snake_w=4,init_snake_l=5; //蛇初始座標
const int init_scores_w=3,init_scores_l=43; //scores顯示初始位置
const int init_speed_w=8,init_speed_l=43; //speed顯示初始位置
const int speed_cycle=8,speed_lower=30; //設定加速週期和最大速度
const int time_dwell=1000;
/**********自定義資料**********/
struct node_common; //點集
struct node_snake;
int speed_boost[6]=,k=0; //設定加速週期和加速週期點
int dir_x[4]=,dir_y[4]=;
int snake_map[width+1][length+1];
int has_bean;
int speed=200,num_speed=1;
int scores;
int is_gameover=0;
int is_press;
node_common bean;
/**********獲取控制代碼**********/
handle output=getstdhandle(std_output_handle);
handle input=getstdhandle(std_input_handle);
/**********設定游標位置**********/
void setcursor(int x,int y);
setconsolecursorposition(output,cd);
}/**********flash類**********/
class flash
; void init_picture(); //初始化picture
void flash_snake(); //display picture
private:
char character[60],character_len;
char picture[20][160],picture_dis[20][160];
int picture_width,picture_length;
};void flash::init_picture()
void flash::flash_snake()
}/**********snake類**********/
class snake
static int is_lived(int x,int y,node_snake *rear); //snake是否能gameover
void init_snake(); //初始化snake
void move_snake(); //snake移動並display
void change_direct(int d) //改變蛇的移動方向
int get_dir()
node_snake get_head()
node_snake get_rear()
private:
friend void put_snake();
node_snake *head,*rear;
int dir;
};int snake::is_lived(int x,int y,node_snake *rear)
void snake::init_snake()
for(q=rear;q;q=q->next)
}void snake::move_snake()
if(head->x!=bean.x || head->y!=bean.y)
else //吃到bean
setcursor(head->x,head->y);
printf("■");
snake_map[head->y][head->x]=1;
}/**********bean函式**********/
void put_bean() }}
/**********main**********/
int main()
}break;
}if(!has_bean)
sleep(speed);
/**********鍵位響應**********/
if(getasynckeystate(vk_up) && snake.get_dir()!=2 && !is_press)snake.change_direct(0),is_press=1;
if(getasynckeystate(vk_down) && snake.get_dir()!=0 && !is_press)snake.change_direct(2),is_press=1;
if(getasynckeystate(vk_left) && snake.get_dir()!=1 && !is_press)snake.change_direct(3),is_press=1;
if(getasynckeystate(vk_right) && snake.get_dir()!=3 && !is_press)snake.change_direct(1),is_press=1;
is_press=0;
} }return 0;
}
我的第乙個程式
我的第乙個vc程式終於寫完了,花了2周,之前從沒有用vc寫過程式,也沒讀過什麼程式,只是在看書,看了幾百頁 mfc windows程式設計 正好有個機會,老師讓寫個vc程式,就試著寫了。程式的功能是不同地方的access的更新的記錄整合到一台機子上的access中,支援斷網自動連線,用的是socke...
我的第乙個部落格
我是乙個有點脫離時代的年輕人,沒有iphone,不玩微博,沒有崇拜的明星,不是任何人的粉絲。前幾天我的乙個領導告訴我,應該多總結,可以開個微博,把記錄的東西時不時拿出來複習一下,慢慢就會積累出很多財富。所以我開了第乙個部落格,當然遠不如微博那麼新潮。我想感謝我的這位領導,在我的職業生涯中,他是我的領...
我的第乙個c
上機內容 c 程式的編寫和執行 上機目的 掌握簡單c 程式的編輯 編譯 連線和執行的一般過程 我的程式 cpp view plain copy print?程式的版權和版本宣告部分 檔名稱 test.cpp 作 者 徐威楊 完成日期 2014 年 10 月 28 日 版 本 號 v1.0 對任務及求...