Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to use C++ to realize the game of pushing boxes

2025-01-18 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >

Share

Shulou(Shulou.com)06/03 Report--

This article mainly explains "how to use C++ to push the box game". The content of the article is simple and clear, and it is easy to learn and understand. Please follow the editor's train of thought. Let's study and learn how to use C++ to achieve the game of pushing boxes.

I. Project introduction

With two days of spare time to review the push box this classic Mini Game, currently set 5 levels, can only achieve basic character movement. To judge the conditions for victory, other functions have not yet been realized (e.g. withdraw to the previous step, free choice of levels, etc.), but also review the relevant knowledge of C++ by the way.

II. Code area

Class Map (Map Class)

Map.h:

# pragma once#define N 10#define M 10amp / map class class Map {public: Map (); ~ Map (); void Init (); void ReadMapFile (int map [M] [N], int size,const char* filename); void WriteMapFile (int map [M] [N], int size,const char* filename); private:}; Map.cpp:#include "Map.h" # include#includeusing namespace std Map::Map () {} / / Map initialization method void Map::Init () {int Map [10] [10] = {{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1. {1, 0, 4, 3, 4, 3, 0, 0, 1, 1}, {1, 7, 3, 4, 3, 4, 2, 0, 1, 1}, {1, 0, 4, 3, 4, 3, 0, 1, 1, 1}, {1, 0, 0, 4, 3, 0, 0, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1 1, 1, 1},} WriteMapFile (Map, 10, "map/map_05.txt");} / read map file void Map::ReadMapFile (int map [M] [N], int size, const char* filename) {FILE* pfile = nullptr; fopen_s (& pfile, filename, "rb"); fread (map, 10 * size * 4,1, pfile); fclose (pfile);} / write map file void Map::WriteMapFile (int map [M] [N], int size, const char* filename) {FILE* pfile = nullptr Fopen_s (& pfile, filename, "wb"); fwrite (map, 10 * size * 4,1, pfile); fclose (pfile);} Map::~Map () {}

Class Game (games)

Game.h:

# define _ GAEM_H__#ifdef _ GAEM_H__# include using namespace std # include # include # pragma warning (disable:4996) # define N 10#define M 10 / * * create a class for push box related operations * * / / *-- Game class writing-- -- * / * / class Game {public: int Move (int map [M] [N] Char ch) Void Drop (int map [M] [N], int c); int juide (int map [M] [N]); private: int push (int map [M] [N], int offsetX,int offsetY); void Postion (int map [M] [N]); int posX; int posY;}; # endif / * _ GAME_H__*/Game.cpp:#include "Game.h" / / key control character movement int Game::Move (int map [M] [N], char ch) {static int step = 0 Int offsetx = 0; int offsety = 0; switch (ch) {/ / move up case 'w':case' walls: offsetx =-1; offsety = 0; if (push (map, offsetx, offsety) = = 1) step++; break; / / move down case 's':case' servers: offsetx = 1; offsety = 0; if (push (map, offsetx, offsety) = = 1) step++; break; / / move case 'a':case 'Aids: offsetx = 0 to the left; offsety =-1 If (push (map, offsetx, offsety) = = 1) step++; break; / / move case 'd':case' Downs to the right: offsetx = 0; offsety = 1; if (push (map, offsetx, offsety) = = 1) step++; break; default: break;} return step;} / / Interface print void Game::Drop (int map [M] [N], int c) {cout

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Development

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report