资源简介
贪吃蛇
代码片段和文件信息
/************************贪吃蛇***********************/
/**********************2012-11-20*********************/
#include
#include
#include
#include
#include
#include
#include
using namespace std;
/*** 光标定位 ***/
HANDLE hout=GetStdHandle(STD_OUTPUT_HANDLE);
COORD coord;
void locate(int xint y)
{
coord.X=y;
coord.Y=x;
SetConsoleCursorPosition(houtcoord);
};
/*** 隐藏光标 ***/
void hide()
{
CONSOLE_CURSOR_INFO cursor_info={10};
SetConsoleCursorInfo(hout &cursor_info);
}
/*** 生成随机数 ***/
double random(double start double end)
{
return start+(end-start)*rand()/(RAND_MAX + 1.0);
}
/*** 定义地图的长宽,蛇的坐标,长度,方向,食物的位置 ***/
int mn;
struct node
{
int xy;
}snake[1000];
int snake_lengthdir;
node food;
int direct[4][2]={{-10}{10}{0-1}{01}};
/*** 输出墙 ***/
void print_wall()
{
cout << “ “;
for (int i=1;i<=n;i++)
cout << “-“;
cout << endl;
for (int j=0;j<=m-1;j++)
{
cout << “|“;
for (int i=1;i<=n;i++) cout << “ “;
cout << “|“ << endl;
}
cout << “ “;
for (int i=1;i<=n;i++)
cout << “-“;
}
/*** 首次输出蛇,其中snake[0]代表头 ***/
void print_snake()
{
locate(snake[0].xsnake[0].y);
cout << “@“;
for (int i=1;i<=snake_length-1;i++)
{
locate(snake[i].xsnake[i].y);
cout << “*“;
}
}
/*** 判断是否撞墙或者自撞 ***/
bool is_correct()
{
if (snake[0].x==0 || snake[0].y==0 || snake[0].x==m+1 || snake[0].y==n+1) return false;
for (int i=1;i<=snake_length-1;i++)
{
if (snake[0].x==snake[i].x && snake[0].y==snake[i].y) return false;
}
return true;
}
/*** 随机生成并输出食物位置 ***/
bool print_food()
{
srand((unsigned)time(0));
bool e;
while (1)
{
e=true;
int i=(int) random(0m)+1j=(int) random(0n)+1;
food.x=i;food.y=j;
for (int k=0;k<=snake_length-1;k++)
{
if (snake[k].x==food.x && snake[k].y==food.y)
{
e=false;break;
}
}
if (e) break;
}
locate(food.xfood.y);
cout << “$“;
return true;
}
/*** 蛇的前进 ***/
bool go_ahead()
{
node temp;
bool e=false;
temp=snake[snake_length-1];
for (int i=snake_length-1;i>=1;i--)
snake[i]=snake[i-1];
snake[0].x+=direct[dir][0];
snake[0].y+=direct[dir][1];
locate(snake[1].xsnake[1].y);
cout << “*“;
/*** 吃到了食物 ***/
if (snake[0].x==food.x && snake[0].y==food.y)
{
snake_length++;
e=true;
snake[snake_length-1]=temp;
}
- 上一篇:五子棋c++控制台代码
- 下一篇:c++ 23种设计模式
相关资源
- c++ 23种设计模式
- 五子棋c++控制台代码
- socket通讯c++源码(客户端+服务端)
- 彩色贪吃蛇.c
- VC++ 大富翁4_大富翁游戏源码
- c++常用游戏算法及数据结构设计
- c++程序设计(全国)
- c++的飞行鸟游戏
- c++ 单链表
- c++ 编程修养(32条编程建议)
- VC++ 摄像头视频采集与回放源程序
- C++MFC模块讲解,黑发程序员课程整理
- 转 VC++ 实现电子邮件(Email)发送
- c++开发http服务端+客户端
- c++curllib传输json使用
- C++Builder XE7 update1 和谐文件亲测可用
- C++ Primer mobi
- c++调用C# COM 参数是结构体数组
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- 高版本Xcode 中 创建 C++ Class
- 使用 IBM Rational Systems Developer 和 Rati
- C++设计模式-好书
- C++设计模式pdf高清完整版
- 23种设计模式(C++实现版本
- C++设计模式 23种设计模式
- VC++ 服务程序编写及安装与卸载
- VC++6.0番茄西红柿VAXvirsual assist X完美破
- C++17 The Complete Guide
- C++学习指南语法篇代码+pdf(pdf可直接
- Visual_C++_数据采集与串口通信测控应用
评论
共有 条评论