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

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

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

效果

閑來無事,實(shí)現(xiàn)一個(gè)對(duì)對(duì)碰游戲,卡牌樣式是火影動(dòng)漫。

玩法

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

UI

上一張初始UI圖:

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

示例

可以加個(gè)啟動(dòng)界面;

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

因?yàn)槭遣煌P(guān)卡,所以選擇棧控件作為中央窗體,可進(jìn)行界面切換;

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

將關(guān)卡中的各個(gè)項(xiàng)作為一個(gè)類;

因?yàn)榈脛?chuàng)建,因此后來可以使用工廠模式進(jìn)行關(guān)卡及項(xiàng)創(chuàng)建;

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

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

item.h

#ifndef ITEM_H
#define ITEM_H

#include <QLabel>

class Step;

namespace Ui {
class Item;
}
// 在關(guān)卡中創(chuàng)建的項(xià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ā)鼠標(biāo)事件
    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è)置上一個(gè)點(diǎn)擊的item
    void setPreviousItem(Item* pItem){m_pItemPrevious = pItem;}
    Item* item(){return m_pItemPrevious;}

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

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

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

private:
    Ui::Step *ui;

    Item*       m_pItemPrevious = nullptr;    // 上一個(gè)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

代碼鏈接

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

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

相關(guān)文章

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

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

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

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

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

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

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

    OpenCV實(shí)現(xiàn)簡(jiǎn)單套索工具

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

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

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

    C語言簡(jiǎn)析指針用途

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

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

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

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

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

    C語言 詳細(xì)講解邏輯運(yùn)算符的使用

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

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

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

最新評(píng)論

沽源县| 桓仁| 鞍山市| 永寿县| 天全县| 阿克陶县| 金川县| 永年县| 徐水县| 二手房| 渝北区| 霍邱县| 木里| 鲁甸县| 兰考县| 海安县| 庆阳市| 张家界市| 井研县| 嘉禾县| 台南县| 宁安市| 长治市| 信阳市| 洪雅县| 莫力| 扎赉特旗| 通道| 观塘区| 湘阴县| 镇巴县| 凤翔县| 台湾省| 竹山县| 宁津县| 平昌县| 屏边| 陇南市| 赤水市| 山东省| 灌阳县|