网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月05日漏签0天
c4droid吧 关注:42,798贴子:262,853
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1 2 下一页 尾页
  • 29回复贴,共2页
  • ,跳到 页  
<<返回c4droid吧
>0< 加载中...

27行贪吃蛇,其他全用类封装

  • 只看楼主
  • 收藏

  • 回复
  • 姐姐的团子
  • 高手寂寞
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
由于C++还没学完,只是在思考编程思想,这次用类写了个贪吃蛇,功能还不错,可以自由控制游戏多种属性,
这是主函数~~~~~
/*main.cpp*/
#include "tanchi.h"
int main() {
bool quit = false;
Rect Window {
5, 3 , 40, 10};
Map map(Window, "+");
Food food(&Window, "卐");
Snake snake(Window, "a", "b", "c");
snake.Init();
char walk = '6';
while (!quit) {
while (kbhit() != 0) {
char ch = getche();
if (ch == '2' || ch == '4' || ch == '6' || ch == '8')
walk = ch;
}
if (snake.move(food, walk) == -1) {
cout << "游戏结束" << endl;
quit = true;
}
food.shown();
snake.shown();
map.shown();
clrscr();
usleep(500000);
}
}


  • 姐姐的团子
  • 高手寂寞
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
// 因为食物需要控制出现的范围,所以来个Rect,食物的样子是charfood
Food(Rect * areas, string charfood) {
food.x = 1;
food.y = 1; // 初始化是个好习惯
srand(time(NULL));
area = areas;
cfo = charfood;
do {
food.x = rand() % area->w - 1;
food.y = rand() % area->h - 1;
}
while (food.x <= area->x || food.y <= area->y);
}
// 生成随机的食物
void New() {
food.x = 1;
food.y = 1;
srand(time(NULL));
do {
food.x = rand() % area->w - 1;
food.y = rand() % area->h - 1;
}
while (food.x <= area->x || food.y <= area->y);
}
// 用于更新食物坐标
void shown() {
gotoxy(food.x, food.y);
cout << cfo;
}
// 显示食物
coor getfood() {
return food;
}
// 让Snake获取食物坐标,用于Snake类来判断是否吃到食物
private:
Rect * area; // 一个范围
coor food; // 食物坐标
string cfo; // 食物的样子
};
// 定义Snake类
class Snake {
public:
// 初始化设置蛇的活动区域,头,身体,尾巴的样子
Snake(Rect win, string a, string b, string c):Window(win),


2025-09-05 04:07:46
广告
不感兴趣
开通SVIP免广告
  • 姐姐的团子
  • 高手寂寞
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Hsign(a),
Bsign(b), Tsign(c) {
}
int move(Food & d, char direction) {
head[3] = head[2];
head[2] = head[1];
head[1] = head[0];
head[0] = new coor;
head[0]->x = head[1]->x;
head[0]->y = head[1]->y;
if (direction == '2')
head[0]->y--;
if (direction == '8')
head[0]->y++;
if (direction == '4')
head[0]->x--;
if (direction == '6')
head[0]->x++;
// 让身体移动
if (head[0]->x == d.getfood().x && head[0]->y == d.getfood().y)
d.New();
// 判断是否吃到食物,如果吃到,则更新食物坐标
if ((head[0]->x == Window.x) || (head[0]->x == Window.w)
|| (head[0]->y == Window.y) || (head[0]->y == Window.h))
return -1;
}
// 判断是否撞墙
// 下面初始化蛇的位置
void Init() {
head[0] = new coor;
head[1] = new coor;
head[2] = new coor;
head[0]->x = Window.x + (Window.w / 2);
head[0]->y = Window.y + (Window.h / 2);
head[1]->x = (head[0]->x) - 1;
head[1]->y = (head[0]->y);
head[2]->x = (head[1]->x) - 1;
head[2


  • 姐姐的团子
  • 高手寂寞
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
]->y = (head[1]->y);
}
// 显示蛇的位置
void shown() {
gotoxy(head[3]->x, head[3]->y);
cout << " ";
gotoxy(head[2]->x, head[2]->y);
cout << Tsign;
gotoxy(head[1]->x, head[1]->y);
cout << Bsign;
gotoxy(head[0]->x, head[0]->y);
cout << Hsign;
}
private:
Rect Window;
coor *head[4]; // head[0]是头,head[1]是身体,head[2]是尾巴
string Hsign, Bsign, Tsign; // 定义了蛇的样子
};


  • 姐姐的团子
  • 高手寂寞
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
大家注意一下上下文的衔接


  • 姐姐的团子
  • 高手寂寞
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
c4droid运行完美


  • 2002a1116
  • 孤独求败
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不能算27行,类也要算进去
做的不错
====祝top gear早日回归====


  • 断翅天使12138
  • 大名鼎鼎
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
c4怎么编译c++,用什么编译器


2025-09-05 04:01:46
广告
不感兴趣
开通SVIP免广告
  • 李登淳
  • 大哲
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
同8楼,但是似乎说类也要算进去的话…我那2000多行的CGL


  • 姐姐的团子
  • 高手寂寞
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
请教大神,谁能跟我讲一下预编译和条件编译是咋回事


  • 姐姐的团子
  • 高手寂寞
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我把蛇变长的功能也加进去


  • 姐姐的团子
  • 高手寂寞
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
谁来跟我讲讲c++


  • lx716930jp
  • 外星人
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你升级太快了。


  • stbzx518
  • 外星人
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
是c++程序吗?


2025-09-05 03:55:46
广告
不感兴趣
开通SVIP免广告
  • _柒月初七
  • 大哲
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
最好用引用,你这样直接传对象会发生大量构造和析构


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 29回复贴,共2页
  • ,跳到 页  
<<返回c4droid吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示