中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

專門教人做點心的網(wǎng)站下載微信

專門教人做點心的網(wǎng)站,下載微信,開網(wǎng)店流程圖文詳解,寶安做網(wǎng)站的一、題目 貪吃蛇游戲機制是通過控制蛇上下左右移動并吃到食物得分。 蛇頭碰到墻壁或者碰到蛇身就游戲結(jié)束。 食物隨機生成,蛇吃到食物之后蛇身變長,蛇速加快。 二、算法 1. 初始化游戲地圖并打印,地圖的邊緣是墻,地圖的每個坐…

一、題目

貪吃蛇游戲機制是通過控制蛇上下左右移動并吃到食物得分。

蛇頭碰到墻壁或者碰到蛇身就游戲結(jié)束。

食物隨機生成,蛇吃到食物之后蛇身變長,蛇速加快。

二、算法

1. 初始化游戲地圖并打印,地圖的邊緣是墻,地圖的每個坐標(biāo)都有屬性(EMPTY、WALL、FOOD、HEAD、BODY),通過<Window.h>庫里面的函數(shù)控制光標(biāo)跳轉(zhuǎn)和顏色。

2. 初始化蛇,蛇是一個單獨的類,類里面的屬性有蛇頭、蛇身、長度、速度,蛇頭一個SnakeNode節(jié)點,蛇身是一個SnakeNode指針,每個SnakeNode都是一個x、y坐標(biāo),用于表示蛇在地圖上的位置。

3. 隨機生成食物,蛇移動的下一步如果是食物則得分,若下一步是墻壁或蛇身則游戲失敗。

4. 通過鍵盤輸入控制方向,若鍵盤沒有輸入則保持方向不變。

三、代碼

#define _CRT_SECURE_NO_WARNINGS 1#pragma warning (disable:4996)
#include <iostream>
#include <Windows.h>
#include <conio.h>
#include <ctime>
#include <vector>
using namespace std;#define ROW 22
#define COL 42#define EMPTY 0
#define WALL  1
#define FOOD  2
#define HEAD  3
#define BODY  4#define COL_WALL  6
#define COL_FOOD  12
#define COL_SNAKE 10#define UP 72
#define DOWN 80
#define LEFT 75
#define RIGHT 77
#define SPACE 32
#define ESC 27
#define ENTER 13int g_map[ROW][COL] = { 0 };
int g_grade = 0;void CursorJump(int x, int y)
{COORD pos;    //定義光標(biāo)位置的結(jié)構(gòu)體變量pos.X = x;pos.Y = y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);        //設(shè)置光標(biāo)位置
}void Color(int x)
{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x);    //設(shè)置顏色// 6——土黃色    7——白色    10——綠色    12——紅色
}void SysInit()
{srand((unsigned int)time(NULL));system("title 貪吃蛇");system("mode con cols=84 lines=23");    //設(shè)置終端窗口大小CONSOLE_CURSOR_INFO curInfo;    //光標(biāo)信息結(jié)構(gòu)體變量curInfo.dwSize = 1;curInfo.bVisible = FALSE;        //光標(biāo)光標(biāo)隱藏不可見SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &curInfo);    //設(shè)置光標(biāo)信息
}void MapInit()
{for (int i = 0; i < ROW; ++i){for (int j = 0; j < COL; ++j){CursorJump(2 * j, i);if (i == 0 || i == ROW - 1 || j == 0 || j == COL - 1){Color(COL_WALL);g_map[i][j] = WALL;cout << "■";}else{g_map[i][j] = EMPTY;cout << "  ";}}}Color(7);CursorJump(0, ROW);cout << "當(dāng)前得分是:" << g_grade;
}void RandFood()
{int row, col;do{row = rand() % ROW;col = rand() % COL;} while (g_map[row][col] != EMPTY);g_map[row][col] = FOOD;Color(COL_FOOD);CursorJump(2 * col, row);cout << "●";
}class Snack
{
public:Snack(){len = 2;rate = 3000;head.x = COL / 2;head.y = ROW / 2;g_map[head.y][head.x] = HEAD;body.resize(ROW * COL, Pos(0, 0));for (int i = 0; i < len; ++i){body[i].x = head.x - i - 1;body[i].y = head.y;g_map[body[i].y][body[i].x] == BODY;}}void PrintSnake(int flag){if (flag){// 打印蛇Color(COL_SNAKE);CursorJump(2 * head.x, head.y);cout << "◆";for (int i = 0; i < len; ++i){CursorJump(2 * body[i].x, body[i].y);cout << "◇";}}else{// 覆蓋蛇if (body[len - 1].x != 0){CursorJump(2 * body[len - 1].x, body[len - 1].y);cout << "  ";}}}void Judge(int x, int y){if (g_map[head.y + y][head.x + x] == FOOD){// 得分g_grade += 10;len++;if (rate > 1000)rate -= 50;Color(7);CursorJump(0, ROW);cout << "當(dāng)前得分是:" << g_grade;RandFood();}else if (g_map[head.y + y][head.x + x] == WALL|| g_map[head.y + y][head.x + x] == BODY){// 失敗Sleep(2000);Color(7);system("cls");cout << "           GAME OVER!          " << endl;cout << "            游戲失敗!          " << endl;exit(0);}}void Move(int x, int y){Judge(x, y);PrintSnake(0);int tail = len - 1;g_map[body[tail].y][body[tail].x] = EMPTY;while (tail > 0){body[tail].x = body[tail - 1].x;body[tail].y = body[tail - 1].y;--tail;}body[0].x = head.x;body[0].y = head.y;g_map[body[0].y][body[0].x] = BODY;head.x += x;head.y += y;g_map[head.y][head.x] = HEAD;PrintSnake(1);}void Run(int x, int y){int t = 0;while (1){if (t == 0)t = rate;while (--t){if (kbhit() != 0)break;}if (t == 0)Move(x, y);elsebreak;}}void Play(){int dir = RIGHT;int old = dir;while (1){switch (dir){case 'w':case 'W':case UP:Run(0, -1);old = dir;break;case 's':case 'S':case DOWN:Run(0, 1);old = dir;break;case 'a':case 'A':case LEFT:Run(-1, 0);old = dir;break;case 'd':case 'D':case RIGHT:Run(1, 0);old = dir;break;case SPACE:system("pause>nul");break;case ESC:system("cls");cout << "   ESC 退出游戲" << endl;exit(0);}dir = getch();switch (dir){case 'w':case 'W':case UP:case 's':case 'S':case DOWN:if (old == UP || old == DOWN)dir = old;break;case 'a':case 'A':case LEFT:case 'd':case 'D':case RIGHT:if (old == LEFT || old == RIGHT)dir = old;break;case SPACE:case ESC:break;default:dir = old;}}}private:struct Pos{int x, y;Pos() {}Pos(int x1, int y1): x(x1), y(y1){}};Pos head;vector<Pos> body;int len;int rate;
};int main()
{SysInit();MapInit();RandFood();Snack s;s.Play();return 0;
}

四、測試

http://m.risenshineclean.com/news/61401.html

相關(guān)文章:

  • wordpress 筆記本網(wǎng)站seo策劃方案實例
  • 專業(yè)網(wǎng)站建設(shè)哪家權(quán)威微信指數(shù)怎么看
  • 打開一張圖片后點擊跳轉(zhuǎn)到網(wǎng)站怎么做百度指數(shù)預(yù)測
  • 六合哪家做網(wǎng)站建設(shè)網(wǎng)站 軟件
  • 美食網(wǎng)站設(shè)計方案丈哥seo博客工具
  • 廣州最好的商城網(wǎng)站制作百度2023免費下載
  • 做卡盟開端網(wǎng)站要多少錢網(wǎng)站seo診斷報告
  • 深圳網(wǎng)站開發(fā)antnw互聯(lián)網(wǎng)網(wǎng)絡(luò)推廣
  • 招商加盟網(wǎng)站推廣方案公司域名注冊查詢
  • 攀枝花住房和城鄉(xiāng)建設(shè)廳網(wǎng)站三只松鼠營銷案例分析
  • 東莞網(wǎng)站建設(shè)公司制作網(wǎng)站網(wǎng)絡(luò)推廣深圳有效渠道
  • 吉林省住房建設(shè)廳網(wǎng)站seo診斷工具有哪些
  • 紹興網(wǎng)站建設(shè)設(shè)計google推廣專員招聘
  • 做電子商務(wù)網(wǎng)站多少錢推廣注冊app拿傭金
  • 網(wǎng)站制作職業(yè)黃金網(wǎng)站軟件免費
  • 做設(shè)計的素材網(wǎng)站有哪些什么是推廣
  • 網(wǎng)站開發(fā)標(biāo)準(zhǔn)合同seo咨詢茂名
  • 網(wǎng)站設(shè)計制作哪家服務(wù)好太原關(guān)鍵詞排名提升
  • 網(wǎng)站自己推廣怎么做廈門百度代理公司
  • 萊蕪金點子廣告電子版2024seo網(wǎng)站推廣價格
  • 網(wǎng)站工作溝通及建設(shè)seo培訓(xùn)教程
  • 峰峰專業(yè)做網(wǎng)站網(wǎng)絡(luò)安全培訓(xùn)
  • 做網(wǎng)站有哪些公司好友鏈出售
  • 軟件庫合集資料網(wǎng)站網(wǎng)店買賣有哪些平臺
  • 中電建鐵路建設(shè)公司網(wǎng)站網(wǎng)頁設(shè)計代碼
  • 網(wǎng)站審批需要什么手續(xù)東莞優(yōu)化seo
  • 內(nèi)蒙包頭網(wǎng)站開發(fā)公司培訓(xùn)課程有哪些
  • 網(wǎng)站開發(fā)平均工資湖南百度seo
  • 云免網(wǎng)站空間外貿(mào)網(wǎng)絡(luò)推廣經(jīng)驗
  • 網(wǎng)站優(yōu)化建設(shè)哈爾濱3322免費域名注冊