资源简介
很古老的游戏,类似大家小时候玩的拼图板。

代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include “dialog.h“
#include “ui_dialog.h“
using namespace std;
Dialog::Dialog(QWidget *parent) :
QDialog(parent)
ui(new Ui::Dialog)
{
source_picture_show=false;
ui->setupUi(this);
ui->spinBox->setMinimum(2);
ui->spinBox->setValue(4);
n=ui->spinBox->value();
//n=4;
N=n*n;
a = new int* [n+2];
for(int i=0; i a[i] = new int[n+2];
wsubsize=100;
hsubsize=100;
bak.load(“:/new/prefix1/background3.png“);
Bak=bak;
setbak();
ui->verticalWidget->setGeometry(n*wsubsize10100150);
//wsize=400;
//hsize=400;
//move(10010);
//max_n=5;
//initpicture();
//update();
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::setbak()
{
Bak=Bak.scaled( n*wsubsize n*hsubsizeQt::IgnoreAspectRatio Qt::SmoothTransformation);
QPainter pb(&Bak);
for (int i=0;i<=n*wsubsize/127;i++ )
for (int j=0;j<=n*hsubsize/127;j++)
pb.drawPixmap( i*127 j*127 bak);
}
void Dialog::paintEvent(QPaintEvent *)
{
//move( (QApplication::desktop()->width() - width())/2 (QApplication::desktop()->height() - height())/2);
//()<<“start paint“;
//setFixedHeight(n*hsubsize);
//setFixedWidth(n*wsubsize+100);
int ijp;
QPainter painter(this);
if (source_picture_show)
painter.drawPixmap( 0 0 pix);
else
{
painter.drawPixmap( 0 0 Bak);
for (int l=1;l<=pixmaps.size();l++)
{
i=(l-1)%n+1;
j=(l-1)/n+1;
p=a[i][j]-1;
if (p painter.drawPixmap( (i-1)*wsubsize (j-1)*hsubsize pixmaps[p]);
}
}
}
void Dialog::mousePressEvent(QMouseEvent *m)
{
if (source_picture_show)
return;
else
{
int x = m->pos().x();
int y = m->pos().y();
hit(x/wsubsize+1 y/hsubsize+1);
}
}
void Dialog::hit(int iint j)
{
if (i<1 || j<1 || i>n || j>n)
return;
if (a[i-1][j]==N)
{
a[i-1][j]=a[i][j];
a[i][j]=N;
}
else if (a[i+1][j]==N)
{
a[i+1][j]=a[i][j];
a[i][j]=N;
}
else if (a[i][j-1]==N)
{
a[i][j-1]=a[i][j];
a[i][j]=N;
}
else if (a[i][j+1]==N)
{
a[i][j+1]=a[i][j];
a[i][j]=N;
}
update();
if (check())
{
QMessageBox msgBox(this);
msgBox.setText(tr(“大功告成!“));
msgBox.exec();
//initrandom();
//refresh();
}
}
void Dialog::randomp()
{
for(int i=0; i for(int j=0; j {
if (i==0 || j==0 || i==n+1
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-06-21 12:48 painter01\
文件 116 2012-09-13 12:24 painter01\background3.png
目录 0 2015-06-21 12:49 __MACOSX\
目录 0 2015-06-21 12:49 __MACOSX\painter01\
文件 181 2012-09-13 12:24 __MACOSX\painter01\._background3.png
文件 105 2012-10-13 19:23 painter01\bak.qrc
文件 181 2012-10-13 19:23 __MACOSX\painter01\._bak.qrc
文件 6756 2015-06-21 12:48 painter01\dialog.cpp
文件 871 2012-10-13 22:07 painter01\dialog.h
文件 181 2012-10-13 22:07 __MACOSX\painter01\._dialog.h
文件 2037 2012-10-14 11:24 painter01\dialog.ui
文件 181 2012-10-14 11:24 __MACOSX\painter01\._dialog.ui
文件 296 2015-06-21 12:35 painter01\main.cpp
文件 378 2015-06-21 12:22 painter01\painter01.pro
文件 18812 2015-06-21 12:48 painter01\painter01.pro.user
文件 181 2015-06-21 12:48 __MACOSX\._painter01
相关资源
- QT局域网聊天系统(基于QT5.修改过)
- 拼图游戏源代码 powerbuilder 9.0实例
- 拼图游戏(可自由选择难度)
- 智联网结构化信息拼图处理方法及其
- QT5.5入门与项目实战
- 自动截拼图工具适合做地图等-地图
- 基于FFmpeg4.0.2的AAC编码器
- AndreaMosaicPortable蒙太奇马赛克拼图制作
- mp4_play.zip
- 使用Qt编写的视频监控系统支持Qt4-Q
- Qt 多线程连接数据库——数据库
- 基于Qt5.8+OpenCV3.2的Basler多相机触发开
- 串口调试助手 Qt5版源码
- Qt5的多线程小程序,实现按钮开关线
- 可选难易的安卓拼图游戏.zip
- Foto-Mosaik-Edda(马赛克拼图制作软件)
- Ubuntu16.04中配置Qt5.9.1和OpenCV3.4.0过程
- Collageit拼图软件.安装后即可使用
- Qt pdf poppler
- 基于Qt5的串口调试助手
- Qt类关系图
- 拼图小游戏
- PyQt5编写的大数据应用-高速公路违章
- QT5.9.0实现的QWidget版富文本编辑器
- authorware拼图游戏带计时和不规则图片
- Qt5版NeHe OpenGL教程6-10
- 安卓拼图游戏源码
- QT5下实现基于TCP发送和接接收文件
- SGGS-Google earth拼图工具
- PyQt5_gpl-5.11.3.zip
评论
共有 条评论