#include
#include
#include
#include
#include
//#include
//#include
using namespace std;
#define up 'w'
#define down 's'
#define left 'a'
#define right 'd'
char name[20]; // 儲存使用者名稱 有興趣可以製作登入系統
int score = 0; // 分數
char click = 1; // 記錄敲下的鍵盤按鍵
int speed = 10; // 速度 其實是延遲的毫秒數
class snake
snake(int x, int y)
~snake(){}
};int footx, footy; // 存放蛇尾
// 宣告存放貪吃蛇的集合列表
listlist_snake;
/*list.assign() 給list賦值 list.back() 返回最後乙個元素
list.begin() 返回指向第乙個元素的迭代器 list.clear() 刪除所有元素
list.empty() 如果list是空的則返回true list.end() 返回末尾的迭代器
list.erase() 刪除乙個元素 list.front() 返回第乙個元素
list.get_allocator() 返回list的配置器 list.insert() 插入乙個元素到list中
list.max_size() 返回list能容納的最大元素數量 list.merge() 合併兩個list
list.pop_back() 刪除最後乙個元素 list.pop_front() 刪除第乙個元素
list.push_back() 在list的末尾新增乙個元素 list.push_front() 在list的頭部新增乙個元素
list.rbegin() 返回指向第乙個元素的逆向迭代器 list.remove() 從list刪除元素
list.remove_if() 按指定條件刪除元素 list.rend() 指向list末尾的逆向迭代器
list.resize() 改變list的大小 list.reverse() 把list的元素倒轉
list.size() 返回list中的元素個數 list.sort() 給list排序
list.splice() 合併兩個list list.swap() 交換兩個list
list.unique() 刪除list中重複的元素*/
// 食物類
class food
food;
class controller
// 刪除指定位置的內容
void gotodelete(int x, int y)
} controller;
int main()
// 歡迎介面
void controller::welcome()
void controller :: gotoxy(int x, int y) // 移動游標到指定位置
// 圍牆列印
void controller::creategraph()
for (i = 1; i < 26; i++)
gotoxy(63, 8);
cout << "你好" << name << ", 歡迎進入遊戲世界";
gotoxy(63, 13);
cout << "當前分數:" << score;
gotoxy(63, 18);
cout << "源辰資訊科技提供";
// 初始化蛇
snake head = snake(16, 15); // 初始化蛇頭
snake body = snake(16, 16); // 第一節蛇身
snake foot = snake(16, 17); // 蛇尾
list_snake.push_back(head); // 在列表的末尾新增乙個元素
list_snake.push_back(body);
list_snake.push_back(foot);
// 列印蛇
list:: iterator lt; // 宣告乙個貪吃蛇型別的集合迭代器lt
snake sk;
for (lt = list_snake.begin(); lt != list_snake.end(); lt ++)
}// 建立食物
void controller :: createfood()
list:: iterator lt; // 宣告乙個貪吃蛇型別的集合迭代器lt
snake sk;
// 遍歷蛇,保證生成的這個食物不在蛇身上
for (lt = list_snake.begin(); lt != list_snake.end(); lt ++)}}
gotoxy(food.x, food.y); // 移動游標到食物位置
cout << "⊙"; // 輸出食物
}// 捕獲滑鼠 遊戲主迴圈
bool controller :: clickcontrol()
movingbody(); // 移動蛇
eating(); // 吃食物
}return false;
}// 移動蛇
void controller :: movingbody()
if (x != head.x || y != head.y)
// 蛇速度控制,分數越高,速度越快
int count = score / 10;
if (count <= 10) speed = 150;
else if (count > 10 && count <= 20) speed = 100;
else if (count > 20 && count <= 40) speed = 50;
else speed = 10;
sleep(speed);
}// 吃到食物處理 新增乙個尾巴
void controller :: eating()
}// 判斷是否遊戲結束
bool controller :: judge()
list:: iterator lt; // 宣告乙個貪吃蛇型別的集合迭代器lt
snake sk;
// 遍歷蛇,判斷蛇頭有沒有跟其他部分重合
for (lt = ++ list_snake.begin(); lt != list_snake.end(); lt ++)
}return false;
}void controller :: finish(int x)
system("cls");
showcopy();
gotoxy(20, 10);
cout << "歡迎來到貪吃蛇遊戲";
gotoxy(20, 14);
cout << "遊戲結束...";
gotoxy(20, 18);
cout << "最終得分為: " << score;
控制台版貪吃蛇
include include include include include 地圖大小 define map size 20 全域性螢幕輸出快取區控制代碼 handle g houtput 地圖屬性 struct mapnode s nodetype e type 全域性地圖資料 mapnode ...
C 控制台貪吃蛇
軟體實訓作品,現放出個人源 供需要的同學參考 int startx 8 x起點 const int starty 4 y起點 const int rangex 60 x範圍 const int rangey 20 y範圍 const int endx startx rangex x終點 const ...
C 控制台貪吃蛇
大二下的遊戲程式設計第乙個小作業,以此篇記錄一下,感謝李仕老師的循循善誘和同學們的熱情討論。include include include using namespace std define leftborder 3 define topborder 3 bool gameover,died 遊戲...