用c++实现了一下2048小游戏,没有界面,用控制台显示。
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <stdio.h>
class Game2048 {
public:
Game2048(int _max_score = 2048): max_score(_max_score) {
N = 4;
memset((void*)(matrix[0]), 0, sizeof(matrix));
}
~Game2048() {}
void LeftOperator();
void RightOperator();
void UpOperator();
void DownOperator();
void PrintMatrix(int);
void AddRand();
int Check();
private:
int max_score;
int N;
int matrix[4][4];
int arr[4];
void Move();
void Merge();
void MoveAndMerge();
};
void Game2048::Move()
{
int pos0;
for(pos0 = 0; pos0 < N; ++pos0) {
if(!arr[pos0]) break;
}
for(int i = pos0 + 1; i < N; ++i) {
if(arr[i]) arr[pos0++] = arr[i];
}
while(pos0 < N) {
arr[pos0++] = 0;
}
}
void Game2048::Merge()
{
int pos;
for(pos = 0; pos < N && !arr[pos]; ++pos) {}