我的第乙個遊戲 SNAKE

2021-06-07 01:20:53 字數 3388 閱讀 7692

自己做的貪吃蛇遊戲,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 對任務及求...