【贪吃蛇,C++实现】,由简单游戏开始学习OOP,的编程新手

本文介绍了使用C++实现贪吃蛇游戏的过程,通过面向对象编程设计了蛇类、坐标类、游戏管理类等,详细阐述了各个类的功能和相互作用。游戏包括接受键盘输入、检测边界和碰撞、增加分数和等级,以及可能扩展到双人游戏的可能性。
摘要由CSDN通过智能技术生成
{我又来写黑历史了}....
以前学习C语言的时候,老是感觉只能做点数学题什么的(事实程序就是由许多道数学题构成)。
然后最近两个月开始学习C++,接触到OOP,然后感觉视界扩大了(误)特别是最近突然发现好像可以写些小游戏了(大误)。
前天埋头几个小时写了个贪吃蛇,而且成功运行了,但是回头看看代码,虽然使用了类,但还是C语言那套路....类被我当做一个单纯的函数集来使用。于是花了点时间重新构思了下,写下了这篇文章。

第一个类:坐标类
这个类要求
1,有两个变量分别代表X轴和Y轴,这样我们能把光标移动到任意一点。
2,蛇是否会撞到墙壁,就是坐标是否会重叠,所以这个类的对象要能相互比较。

3,构造函数和赋值也是必须的。

头文件:Coordinate.h

#ifndef _COORDINATE_H
#define _COORDINATE_H

class Coordinate
{
public:
	Coordinate(int X, int Y)
	{
		x = X;
		y = Y;
	}
	Coordinate() { }

	bool operator == ( const Coordinate &a )
	{
		return a.x == x&&a.y == y;
	}
	bool operator !=( const Coordinate &a )
	{
		return !(a.x == x&&a.y == y);
	}

	Coordinate &operator=( const Coordinate &a )
	{
		x = a.x;
		y = a.y;
		return *this;
	}

	int x, y;
};

#endif


然后就能用windows的API函数来构建一个函数,这个函数接受一个坐标类的对象,并且把光标移动到该坐标。

头文件:GotoXY.h

#ifndef _GOTOXY_H
#define _GOTOXY_H

#include "Coordinate.h"
#include <Windows.h>

void gotoxy(Coordinate a)
{
	COORD local;
	local.X = a.x;
	local.Y = a.y;
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), local);
}

#endif

第二个类:蛇类
用一种数据结构来储存坐标类的对象,作为蛇的身体。

这里用了STL模板库的<list>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值