最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Qt實現(xiàn)卡牌對對碰游戲(附demo)

 更新時間:2023年10月29日 15:11:28   作者:FreeLikeTheWind.  
本文主要介紹了Qt實現(xiàn)卡牌對對碰游戲,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

效果

閑來無事,實現(xiàn)一個對對碰游戲,卡牌樣式是火影動漫

玩法

  • 啟動游戲,進入第一關(guān)卡,所有卡牌都為未翻開狀態(tài),即背面朝上;
  • 點擊卡牌,則將卡牌翻開;
  • 如果當前翻開的卡牌和上一次翻開的卡牌不一致,則1s后,將兩張卡牌再次背面朝上;
  • 如果當前翻開的卡牌和上一次翻開的卡牌一致,則兩張卡牌都會正面朝上;
  • 全部翻開,本官通關(guān),則進去下一關(guān)卡。

UI

上一張初始UI圖:

再上一張通關(guān)圖:

示例

可以加個啟動界面;

根據(jù)分類原則,后期可以加一些菜單及快捷工具操作,比如選關(guān)卡,關(guān)卡通關(guān)耗時等操作,因此主窗口選擇QMainWidow,如果想樣式美觀,可自定義重寫QMainWidow;

因為是不同關(guān)卡,所以選擇??丶鳛橹醒氪绑w,可進行界面切換;

也可以只有一個頁面,根據(jù)關(guān)卡,動態(tài)刷新;將關(guān)卡作為一個類;

將關(guān)卡中的各個項作為一個類;

因為得創(chuàng)建,因此后來可以使用工廠模式進行關(guān)卡及項創(chuàng)建;

通過定時器與鼠標事件進行界面卡牌打開及關(guān)閉;通關(guān)后,提示。

由于界面展現(xiàn)效果不好,以下是部分實現(xiàn)代碼,代碼鏈接在下方1,可下載

item.h

#ifndef ITEM_H
#define ITEM_H

#include <QLabel>

class Step;

namespace Ui {
class Item;
}
// 在關(guān)卡中創(chuàng)建的項
class Item : public QLabel
{
    Q_OBJECT

public:
    explicit Item(const QString& strItem, Step* pStep, QWidget *parent = nullptr);
    ~Item();
	// 是否翻開
    void setOpen(bool b){m_bIsOpen = b;}
    bool open(){return m_bIsOpen;}

protected:
	// 觸發(fā)鼠標事件
    virtual void mouseReleaseEvent(QMouseEvent *ev) override;
    virtual void mousePressEvent(QMouseEvent *ev) override;

private:
    Ui::Item *ui;

    Step*       m_pStep;

    bool        m_bIsOpen = false;
};

#endif // ITEM_H

step.h

#ifndef STEP_H
#define STEP_H

#include <QWidget>
// 類前置
QT_FORWARD_DECLARE_CLASS(Item)

namespace Ui {
class Step;
}

class Step : public QWidget
{
    Q_OBJECT

public:
    explicit Step(const QString& strStepPath, QWidget *parent = nullptr);
    ~Step();
	// 設(shè)置上一個點擊的item
    void setPreviousItem(Item* pItem){m_pItemPrevious = pItem;}
    Item* item(){return m_pItemPrevious;}

    bool check();
private:
    // 初始化關(guān)卡
    QList<QStringList> initStep(const QString& strStepPath);

    // 初始化項
    void initItem(const QList<QStringList>& listSL);

    // 創(chuàng)建關(guān)卡內(nèi)的項
    Item *createItem(const QString& strItem);

private:
    Ui::Step *ui;

    Item*       m_pItemPrevious = nullptr;    // 上一個Item
};

#endif // STEP_H

mainWindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

class QStackedWidget;

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

private:
    // 初始化關(guān)卡配置文件
    void init();

private:
    Ui::MainWindow *ui;

    QStackedWidget*         m_pSW;
};

#endif // MAINWINDOW_H

代碼鏈接

卡牌對對碰: https://gitcode.net/MrHHHHHH/qt-_card/-/blob/master/FlipTheCardGame.rar  

到此這篇關(guān)于Qt實現(xiàn)卡牌對對碰游戲(附demo)的文章就介紹到這了,更多相關(guān)Qt 卡牌對對碰內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++中constexpr 與 explicit關(guān)鍵字使用實戰(zhàn)樣例

    C++中constexpr 與 explicit關(guān)鍵字使用實戰(zhàn)樣例

    文章詳細介紹了constexpr和explicit關(guān)鍵字在C++中的用途和用法,constexpr用于聲明實體可以在編譯期求值,而explicit用于阻止不期望的隱式類型轉(zhuǎn)換,本文結(jié)合實例代碼介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • 在C語言中調(diào)用C++做的動態(tài)鏈接庫

    在C語言中調(diào)用C++做的動態(tài)鏈接庫

    如果你有一個c++做的動態(tài)鏈接庫.so文件,而你只有一些相關(guān)類的聲明,那么你如何用c調(diào)用呢,別著急,本文通過一個小小的例子,讓你能夠很爽的搞定.
    2016-05-05
  • 淺談C/C++中指針和數(shù)組的不同

    淺談C/C++中指針和數(shù)組的不同

    本文主要解析了C/C++中數(shù)組和指針的區(qū)別,文章簡單易懂,對各位的工作學(xué)習(xí)有所幫助,有需求的朋友可以了解下
    2020-05-05
  • OpenCV實現(xiàn)簡單套索工具

    OpenCV實現(xiàn)簡單套索工具

    這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)簡單套索工具,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C語言之函數(shù)返回值與參數(shù)傳遞案例教程

    C語言之函數(shù)返回值與參數(shù)傳遞案例教程

    這篇文章主要介紹了C語言之函數(shù)返回值與參數(shù)傳遞案例教程,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言簡析指針用途

    C語言簡析指針用途

    C語言這門課程在計算機的基礎(chǔ)教學(xué)中一直占有比較重要的地位,然而要想突破C語言的學(xué)習(xí),對指針的掌握是非常重要的,本文將具體針對指針的基礎(chǔ)做詳盡的介紹
    2022-07-07
  • C++17之std::visit的具體使用

    C++17之std::visit的具體使用

    本文主要介紹了C++17之std::visit的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C++實現(xiàn)一鍵關(guān)閉桌面的示例代碼

    C++實現(xiàn)一鍵關(guān)閉桌面的示例代碼

    這篇文章主要為大家詳細介紹了如何利用C++實現(xiàn)一鍵關(guān)閉桌面的功能,文中的示例代碼講解詳細,具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解一下
    2023-07-07
  • C語言 詳細講解邏輯運算符的使用

    C語言 詳細講解邏輯運算符的使用

    在C語言中,邏輯運算符有&&、||、!;&&表示“與”的意思,需要兩端的表達式的值都為true,該式的值才為true。||表示“或”的意思,兩端的表達式的值只要有一端為true,該式的值就為true。!表示“非”的意思,將該式的真值換成相反的真值,即false和true互換
    2022-04-04
  • C++可變參數(shù)的實現(xiàn)方法

    C++可變參數(shù)的實現(xiàn)方法

    可變參數(shù)給編程帶來了很大的方便,在享受它帶來的方便的同時,很有必要了解一下其實現(xiàn)方式,在了解編程語言的同時,也可以擴展編程的思路。
    2013-03-03

最新評論

上蔡县| 普兰县| 板桥市| 施秉县| 曲阳县| 江油市| 平阳县| 太湖县| 仪征市| 东阳市| 砀山县| 乐安县| 吉林省| 阿巴嘎旗| 怀化市| 赫章县| 襄城县| 衡阳市| 和龙市| 井陉县| 措勤县| 濮阳市| 收藏| 桓仁| 闵行区| 永丰县| 嘉黎县| 静安区| 略阳县| 漠河县| 华蓥市| 曲阜市| 大安市| 米林县| 上犹县| 大同市| 湖南省| 桐城市| 博罗县| 大余县| 安仁县|