这个游戏我认为是很考验思维含量的,毕竟登上了最强大脑的舞台。
然而写这个程序也累(主要有一个大bug没找出来,详见后面的分析)。
EasyX 图形界面版:【C++ 程序】 数字推盘游戏(15-puzzle)(EasyX图形界面)
程序
//This is a simple 15-puzzle game.
#include <iostream>
#include <vector>
#include <Windows.h>
#include <string>
#include <random>
#include <ctime>
#include <conio.h>
using namespace std;
int sx = 3, sy = 3; // int connot be replaced by unsigned
vector<vector<char>> p = {
{
'1','2','3','4'},
{
'5','6','7','8'},
{
'9','A','B','C'},
{
'D','E','F',' '}};
vector<vector<char>> p0 = p; // the finished state
void change(int n)
{
switch (n)
{
case 1: // up
if (sx + 1 <= 3)
{
p[sx][sy] = p[sx + 1][sy];
p[sx + 1][sy] = ' ';
++sx;
}
break;
case 2: // down
if (sx - 1 >=