当前位置: 首页 > news >正文

滨海做网站需要多少钱广东响应式网站

滨海做网站需要多少钱,广东响应式网站,天山路街道网站建设,最好用的手机优化软件C自学精简实践教程 目录(必读) 目录 主要考察 需求 输入文件 运行效果 实现思路 枚举类型 enum class 启动代码 输入文件data.txt 的内容 参考答案 学生实现的效果 主要考察 模块划分 文本文件读取 UI与业务分离 控制台交互 数据抽象 需求 用户输入字母表示方…C自学精简实践教程 目录(必读) 目录 主要考察 需求 输入文件 运行效果 实现思路 枚举类型 enum class 启动代码 输入文件data.txt 的内容 参考答案 学生实现的效果 主要考察 模块划分 文本文件读取 UI与业务分离 控制台交互 数据抽象 需求 用户输入字母表示方向实现贪吃蛇游戏。 规则碰到边缘和碰到蛇自己都算游戏结束。 输入文件 第一行包括两个整数表示游戏棋盘大小。分别表示行数和列数。 后面的内容是一个行数乘以列数的二维数组。 数组的元素为0表示这里没有食物也没有蛇的身体。 数组的元素为 表示蛇的头。 数组元素为 # 表示蛇的身体。 程序启动一开始运行的时候蛇没有身体只有头。 运行效果 实现思路 正式实现代码Snake.cpp只有180行不到。 枚举类型 enum class enum class 通常用来提供字面值常量。也就是一些固定值。比如表示方向的东、南、西、北。表示空间的上、下、左、右、前、后。 启动代码 #include list #include utility #include fstream #include sstream #include iostream #include random//随机数 #include chrono//日期时间 using namespace std;class Snake {// 游戏的任意位置 只有三种情况什么也没有蛇的身体食物enum class MatrixValueEnum{NOTHING 0, SNAKE_BODY #, FOOD 2}; public:// 从文件中加载界面数据存放到内部容器中再根据容器内容绘制界面bool LoadPlayDataFromFile(const std::string file);// 开始游戏void Play(void); private:// 用户输入一个字符e/s/f/d决定将蛇的头部往哪个方向移动bool GoAhead(char userInputDirection);// 核心函数// 移动蛇的头的坐标(x,y) (x,y) (i,j)bool GoAhead(int i, int j);//撞到墙壁或者蛇自己的身体就结束游戏bool IsGameOver(int, int) const;// 获取蛇的头的坐标std::pairint, int GetCurrentPosition(void) const;// 计算蛇的头移动一次后的新坐标std::pairint, int GetNextPosition(int, int) const;// 打印贪吃蛇游戏void PrintMatrix(void) const;// 判断 (i,j) 处是否是一个食物bool ExistFood(int i, int j) const;// 在界面上生成一个新的食物给蛇吃void CreateFood(void); private:std::vectorstd::vectorchar m_playMatrix;// 整个游戏的数据二维数组std::liststd::pairint, int m_snakeBody;// 蛇的身体数据 };bool Snake::LoadPlayDataFromFile(const std::string file) {std::ifstream fin(file);if (!fin){std::cout can not open file file endl;return false;}std::string line;std::getline(fin, line);std::istringstream iss(line);// 字符串流 https://zhuanlan.zhihu.com/p/441027904int row 0, column 0;//读取行数和列数//(1) your codefor (size_t i 0; i row; i){std::vectorchar lineData;std::getline(fin, line);std::istringstream issLineData(line);for (size_t j 0; j column; j){char data;//读取一个元素// (2) your code//将组成蛇的头#存放到蛇m_snakeBody容器中//在文件里一开始蛇的身体只有一个头需要把这个数据存起来//(3) your code 判断两个char相等即可// 参考https://zhuanlan.zhihu.com/p/357348144}//将第一行数据存放到二维数组中作为第一维的一个元素子数组//(4) your code}if (m_snakeBody.size() ! 1){cout snake body is empty! init game failed. endl;return false;}return true; }bool Snake::IsGameOver(int x, int y) const {//判断游戏是否已经结束了// x y 是蛇的头打算要去的目的地这个目的地会导致gomeover// 比如超出了游戏界面下标越界// 比如撞到了蛇的身体//(5) your codereturn true; } std::pairint, int Snake::GetCurrentPosition(void) const {//返回蛇 的头的坐标是m_snakeBody的第一个元素的值//6 your code 下面的代码需要自己修改不可以直接使用std::pairint, int front;return front; } std::pairint, int Snake::GetNextPosition(int i, int j) const {//根据蛇的头的位置以及一个移动的向量 (i,j) 得到蛇头部打算要去的新目的地的坐标auto old GetCurrentPosition();//(7) your code 下面的代码需要自己修改不可以直接使用int x 0;int y 0;return std::make_pair(x, y); } bool Snake::ExistFood(int i, int j) const {//返回 坐标(i,j)处是否是有蛇的食物可以吃//(8) your code 下面的代码需要自己修改不可以直接使用return false; } void Snake::CreateFood(void) {// 生成一个新的食物给蛇来吃// 随机生成一个新的位置但是这个位置可能已经是蛇的身体了// 所以需要用一个循环不断的重复在一个新生成的随机位置放置食物// 直到放置成功为止do{unsigned seed std::chrono::system_clock::now().time_since_epoch().count();std::mt19937 g(seed); // mt19937 is a standard mersenne_twister_engine//生成新的随机的坐标//随机数的用法https://blog.csdn.net/calmreason/article/details/72655060//(9) your code 下面的代码需要自己修改不可以直接使用int x 0;int y 0;// 在新坐标处放置一个食物记得检查可以放才能放// 一旦放好记得退出循环让程序继续执行//(10) your code} while (true); } bool Snake::GoAhead(char userInputDirection) {switch (userInputDirection){case w:case W:return GoAhead(-1, 0);//upcase a:case A:return GoAhead(0, -1);//leftcase d:case D:return GoAhead(0, 1);//rightcase s:case S:return GoAhead(1, 0);//downdefault:return true;} } bool Snake::GoAhead(int i, int j) {auto nextPosition GetNextPosition(i, j);//垂直方向x不变竖直方向y减少1// 首先判断游戏是否已经结束if (IsGameOver(nextPosition.first, nextPosition.second)){return false;}// 判断nextPosition 处是否有食物// 如果有食物就吃掉这个食物// 并生成一个新的食物if (ExistFood(nextPosition.first, nextPosition.second)){// (11) your code//直接吃掉尾巴不用移动m_playMatrix[nextPosition.first][nextPosition.second] static_castchar(MatrixValueEnum::SNAKE_BODY);CreateFood();//随机生成一个食物}// 如果 nextPosition 处没有食物就移动蛇的身体else{// (12) your code//尾巴移动 auto tail m_snakeBody.back();m_playMatrix[tail.first][tail.second] static_castchar(MatrixValueEnum::NOTHING);m_snakeBody.pop_back();} }void Snake::Play(void) {CreateFood();//随机生成一个食物while (true){/*清屏这不是C的一部分是系统调用。这个语句执行的快慢与代码无关与控制台用户自己设置的缓冲区大小有关。*/system(cls);PrintMatrix();std::cout direction: W(up) A(left) S(down) D(right)\n;std::cout $: food\n;std::cout : snake head\n;std::cout #: snake tail\n;char direction;std::cin direction;//往前走一步如果判断无法往前走到用户指定的位置就退出程序// 13 your codeif (!GoAhead(direction)){std::cout Game Over! std::endl;break;}} } void Snake::PrintMatrix(void) const {auto headPosition m_snakeBody.front();for (size_t i 0; i m_playMatrix.size(); i){for (size_t j 0; j m_playMatrix[i].size(); j){if (i headPosition.first j headPosition.second){std::cout ;}else if (m_playMatrix[i][j] static_castchar(MatrixValueEnum::FOOD)){std::cout $ ;}else if (m_playMatrix[i][j] static_castchar(MatrixValueEnum::NOTHING)){std::cout _ ;}else{std::cout m_playMatrix[i][j] ;}}std::cout std::endl;} }int main(int argc, char** argv) {Snake snake;if (snake.LoadPlayDataFromFile(data.txt)){snake.Play();}return 0; }输入文件data.txt 的内容 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 # 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 参考答案 贪吃蛇(控制台版)答案 其他参考 Qt版本的一个贪吃蛇实现 Qt Snake C 学生实现的效果 视频资源加载失败 视频资源加载失败
http://www.yutouwan.com/news/389220/

相关文章:

  • 网站开发的功能需求怎么写宿迁经济技术开发区
  • 沈阳企业网站建站seo关键词分析
  • 做网站广告公司联系方式污网站公司网站
  • 网站平台代理wordpress用户只能一年内使用
  • 公益网站 做公益赚钱上海市建设局网站
  • h5手机网站实例老王传奇新开网站
  • 网站多语言模块湖北seo公司
  • 哪家做网站公司最好南京江宁网站建设
  • mysql数据库建设网站大学生网站建设心得
  • 广东建设工程注册执业中心网站北京网站开发公司哪家好
  • 电子商务网站策划书模板网站地图的好处
  • 物流网站建设相关的问题wordpress信息导出
  • 深圳网站建设哪家比较好聊城做网站
  • 学校网站需求邢台集团网站建设报价
  • 青岛做网站的公司哪家好浅笑云主机
  • 企业建网站需要准备哪些资料呢潍坊建设工程信息网站
  • 无锡营销型网站网站代码优化方案
  • 建设工程信息查询哪个网站好网络推广内容包括什么
  • 专业做网站的公司 郑州咖搭姆少儿编程加盟
  • 做摄影网站的目的是什么意思大健康网站怎么样做
  • 龙文网站建设做公司网站的价格
  • wordpress网站案例网站服务器配置参考指南
  • 网站怎样做推广网站怎么seo
  • 外贸自建站可以自己做网站吗工程公司取名大全
  • 网站建设和建议头像制作免费软件
  • 柳州网站建设公各大招聘网站
  • 广东城乡住房建设厅网站公司网站建设的现状
  • 做wps的网站赚钱公司招聘做哪家网站
  • 网站开发的基本技术路线网站建设与管理自考重点
  • 织梦网站案例网站建设要学哪些东西