91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-06
  • 語言: 其他
  • 標簽: Qt??拼圖游戲??

資源簡介

利用Qt實現了簡單的拼圖游戲。 打開圖片后,程序將其縮放到 512*512。

資源截圖

代碼片段和文件信息

#include?“imglbl.h“
#include?“qdebug.h“

ImgLbl::ImgLbl(QWidget?*parent)?:
????QLabel(parent)
{
????setFixedSize(513?513);
????setAlignment(Qt::AlignTop?|?Qt::AlignLeft);
????setMouseTracking(true);
????fstX?=?-1;
????fstY?=?-1;
????sndX?=?-1;
????sndY?=?-1;
????Isfst?=?false;
}

void?ImgLbl::changeSLT()
{
????for(int?i?=?0;?i?????{
????????int?x?=?rand()?%?RN?y?=?rand()?%?RN;
????????int?lt?=?TmpSLT[x];
????????TmpSLT[x]?=?TmpSLT[y];
????????TmpSLT[y]?=?lt;
????}
}

bool?ImgLbl::checkSLT()
{
????bool?isSLT?=?true;
????for(int?i?=?0;?i?????{
????????if(TmpSLT[i]?!=?i)
????????????isSLT?=?false;
????}
????return?isSLT;???//按順序排列,返回true
}

void?ImgLbl::init_data()
{
????TmpSLT.clear();
????RawRect.clear();
????fstX?=?-1;
????fstY?=?-1;
????sndX?=?-1;
????sndY?=?-1;
????Isfst?=?false;
}

void?ImgLbl::GetPixmap(QPixmap?_pix)
{
????RawPix?=?_pix.scaled(512?512?Qt::IgnoreAspectRatio?Qt::SmoothTransformation);
????TmpPix?=?RawPix;
????setPixmap(TmpPix);
}

void?ImgLbl::GetLevel(int?i)
{
????init_data();
????lv?=?i;

????int?dn?=?i;??//分割次數
????DN?=?dn;

????int?rn?=?dn?*?dn;???//子圖像數
????RN?=?rn;

????int?d_pix?=?512?/?dn;???//間隔像素
????DPix?=?d_pix;

????RawRect.resize(rn);
????TmpSLT.resize(rn);
????for(int?i?=?0;?i?????{
????????TmpSLT[i]?=?i;

????????int?y?=?i?/?dn?x?=?i?-?(y?*?dn);??//行列
????????y?=?y?*?d_pix;??x?=?x?*?d_pix;
????????QPixmap?pix;
????????pix?=?RawPix.copy(?x?y?d_pix?d_pix?);
????????RawRect[i]?=?pix;
????}

????while(checkSLT())
????????changeSLT();

????TmpPix.fill(Qt::black);
????QPainter?paint(&TmpPix);
????for(int?i?=?0;?i?????{
????????int?y?=?i?/?dn?x?=?i?-?(y?*?dn);??//行列
????????y?=?y?*?d_pix;??x?=?x?*?d_pix;
????????paint.drawPixmap(x?y?d_pix?d_pix?RawRect[TmpSLT[i]]);
????}
????paint.end();

????setPixmap(TmpPix);

}

void?ImgLbl::mousePressEvent(QMouseEvent?*e)
{
????if(!Isfst)
????{
????????//第一點賦值
????????int?x?=?e->pos().x()?/?DPix?y?=?e->pos().y()?/?DPix;
????????fstX?=?x;?fstY?=?y;
????????QPixmap?pix?=?TmpPix;
????????QPainter?paint(&pix);
????????paint.setPen(QPen(Qt::yellow?2));
????????paint.drawRect(?x?*?DPix?-?2?y?*?DPix?-?2?DPix?+?4?DPix?+?4?);
????????paint.end();
????????setPixmap(pix);
????????Isfst?=?true;
????}
????else
????{
????????int?x?=?e->pos().x()?/?DPix?y?=?e->pos().y()?/?DPix;
????????sndX?=?x;?sndY?=?y;
????????int?dst?=?abs(fstX?-?sndX)?+?abs(fstY?-?sndY);??//距離
????????if(dst?==?1)????//行相鄰或列相鄰
????????{
????????????int?lt1?=?fstY?*?DN?+?fstX?lt2?=?sndY?*?DN?+?sndX;
????????????int?lt?=?TmpSLT[lt1];
????????????TmpSLT[lt1]?=?TmpSLT[lt2];
????????????TmpSLT[lt2]?=?lt;

????????????QPainter?paint(&TmpPix);
????????????paint.drawPixmap(fstX?*?DPix?fstY?*?DPix?DPix?DPix?RawRect[TmpSLT[lt1]]);
????????????paint.drawPixmap(sndX?*?DPix?sndY?*?DPix?DPix?DPix?RawRect[TmpSLT[lt2]]);
???????????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????3470??2016-12-23?11:25??JigSawPuzzle0\imglbl.cpp

?????文件????????923??2016-12-23?11:12??JigSawPuzzle0\imglbl.h

?????文件????????420??2016-12-22?21:54??JigSawPuzzle0\JigSawPuzzle0.pro

?????文件??????18242??2016-12-23?11:29??JigSawPuzzle0\JigSawPuzzle0.pro.user

?????文件????????183??2016-12-22?21:52??JigSawPuzzle0\main.cpp

?????文件????????528??2016-12-23?11:16??JigSawPuzzle0\mainwindow.cpp

?????文件????????436??2016-12-23?11:17??JigSawPuzzle0\mainwindow.h

?????文件???????1306??2016-12-23?11:18??JigSawPuzzle0\mainwindow.ui

?????目錄??????????0??2016-12-23?11:29??JigSawPuzzle0

-----------?---------??----------?-----??----

????????????????25508????????????????????9


評論

共有 條評論