Qt项目__连连看

项目介绍

项目展示:
界面1:

界面1

界面2:

界面2

项目步骤:
		1、创建开始界面窗口
		2、跳转到游戏界面窗口
			2.1、跳转至游戏界面后,游戏界面初始化,即随机绘画图片(PS:需要按坐标依次绘画出坐标,其次连连看的绘画图片一定是成对出现,否则不能够实现游戏的成功)
			2.2、跳转至游戏界面后,开辟线程,该线程中执行进度条的执行和lcd画面的执行 
			2.3、初始化成功后:捕捉鼠标事件,当点击的图片类型一致时,且满足消除规则后,将图片消除(此处采用的是一个数组来进行的,修改数值的值)
			2.4、图片消除后,重新绘制画面,即可实现;且发出信号,设置得分树
		3、当分数为100时或剩余时间为0时,游戏结束。
项目代码:

开始界面窗口头文件

#ifndef START_H
#define START_H

#include <QWidget>
#include <QPaintEvent>
#include <QPainter>
#include <QPen>
#include <QMouseEvent>
#include <QRandomGenerator>
#include <QDebug>
#include "mythread.h"

//设置每一个图标的长宽
const int IMAGE_WIDHT=50;
const int IMAGE_HEIGHT=50;

//行数和列数
const int ROW_COUNT=10;
const int COLUMN_COUNT=10;


namespace Ui {
   
class start;
}

class start : public QWidget
{
   
    Q_OBJECT


public:
    explicit start(QWidget *parent = nullptr);
    ~start();

    void paintEvent(QPaintEvent *event);      //绘画
    void mousePressEvent(QMouseEvent *event); //鼠标点击
    void mouseReleaseEvent(QMouseEvent *event);//鼠标释放
    bool canBeLinked(int, int, int, int);   //判断能否连接函数
    bool inTwoLine(int , int , int , int );
    bool inOneLine(int , int , int , int );
    bool inThreeLine(int, int , int , int );
    void newGame(); // 新游戏
    void initdate();//  图片的初始化
//signals:
//    void Win();

private slots:
    void on_pushButton_clicked();
    void setbol();


private:
    Ui::start *ui;
    bool showGameArea = false;
    QVector<QVector<bool>>* isEmpty;
    int clickCount;     //鼠标点击次数
    int firstClickX;    //点击时的x坐标
    int firstClickY;    //点击时的Y坐标
    int PixmapData[ROW_COUNT][COLUMN_COUNT];   //二维数组,用于记录图片的类型
    int lab_data = 0;       //lad的信号数字显示
    bool win =false;
};

#endif // START_H

开始界面窗口代码:

#include "widget.h"
#include "ui_widget.h"


Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
   
    ui->setupUi(this);
    op = new start;
    setFixedSize(802,639);
}

Widget::~Widget()
{
   
    delete ui;
}


void Widget::on_pushButton_start_clicked()
{
   
    //开始游戏
    this->hide();
    op->show();
}

void Widget::on_pushButton_quit_clicked()
{
   
    this->close();
}

游戏界面窗口代码:

#ifndef START_H
#define START_H

#include 
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值