资源简介
很古老的游戏,类似大家小时候玩的拼图板。
代码片段和文件信息
#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
相关资源
- QT5 打开一个浏览器和对应的网页
- Qt实现托盘全部常用功能
- QT5应用视频教程
- 拼图游戏自动复原支持3乘3以上易语言
- Qt4迁移至Qt5完全指南
- Qt中文语言包丨PyQt5汉化包附汉化说明
- qt5.1实现的异形按钮(适应图片的形状
- Qt5串口调试助手源码(基本功能)
- VS2010 + Qt5 + Zint库实现各种条码的生成
- opencv4.0+相机标定+Qt5.9
- qca-qt5lib
- Qt实现Winsock网络编程—Tcp服务端和
- Qt5.9.1可执行程序做成可执行文件的步
- qwebsocket使用wss连接工程源码,qt5.7d
- USBCAB.dll、ControlCAN.dll64位库+QT5例程+上
- Qt5自动配置编译环境
- 电力iec104 主站测试工具源码 vs2010+q
- QT5.7.0 交叉编译与移植步骤
- PyQt examples
- Qt5实现无边框可移动可拉伸靠边自动
- 基于Qt5的虚拟键盘
- QT5 HTTP文件到指定目录
- QWT-6.1.4 编译好的 Qt5.12.3 MSVC2015_64 版本
- qt5 arm linuxfb旋转显示非eglfs显示的补丁
- designer_zh_CN.7z
- 创建及调用基于QT5 QML的 DLL举例QML中使
- Qt5 qml 各种功能事例,详细功能见资源
- Qt5_SerialPort.zip
- flash+as3.0九宫格拼图游戏
- FLASH实现拼图游戏
评论
共有 条评论