国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【開發(fā)Log】C++QT連連看

這篇具有很好參考價值的文章主要介紹了【開發(fā)Log】C++QT連連看。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.10

開發(fā)的初衷是閑來無事開了把寵物連連看,然后發(fā)現(xiàn)打了幾遍第一關(guān)都過不去,于是想自己寫個,這樣就可以任意使用提示次數(shù)了(bushi。其實今天正好是老媽生日,問了下老媽她竟然還玩連連看,還ak了orz。于是乎,想寫個上強度版給老媽作生日禮物2333

1.12

昨天出去玩了,今天開工。邊玩游戲邊寫效率實在不高,找了素材,到晚上才寫完30%的ui、

界面用的QGraphicsView,QGraphicsScene,QGraphicsPixmapItem這一套寫的,不太熟當(dāng)練習(xí)了。

1.13

主要寫了一下消除的算法。

連連看消除的規(guī)則是,對于兩個要消除的元素,判斷它們之間是否存在一條折角不超過三次的路徑。

代碼實現(xiàn)上,對于選中的兩個元素的坐標(biāo)(a,b)和(c,d),先考慮折角次數(shù)為三的情況,我們?nèi)ッ杜e中間那個線段。

【開發(fā)Log】C++QT連連看

比方上圖,就是去枚舉第二類線段,然后判斷一下線段2兩端是否能直達(dá)兩個目標(biāo)點。思考一下,可以發(fā)現(xiàn)需要枚舉的第二類線段,有一些特點,首先一定是直的(廢話233),這樣它的兩個端點的橫或縱坐標(biāo)必有一個相同,再者兩端的坐標(biāo)(u0,v0),(u1,v1),對于(u0,v0),u0和v0至少有一折=者等于a/b/c/d。

折角次數(shù)為三的情況解決了,其實折角次數(shù)為二的,可以看成其中兩個個點重合了。

設(shè)地圖為n*m的矩陣,有用的端點大概是2(n+m)個,有用線段大概是【開發(fā)Log】C++QT連連看個,check一條線段暴力的話是(n+m)的(就模擬走一遍是不是通的),可以用樹狀數(shù)組維護(hù)前綴和優(yōu)化到O(logn+logm),不過n,m很小就沒必要優(yōu)化了(主要太懶了233)??偟囊淮闻袛嗍欠裼薪?,大概是【開發(fā)Log】C++QT連連看,一般n,m大概都是在[10,20]間,跑起來很快,100ms綽綽有余。(寫許久算法題,已經(jīng)形成了寫什么都要控制在1s內(nèi)的習(xí)慣了2333)。

講個思路,代碼又丑又長就不貼了。。。

感覺主要是ui和一些交互費點功夫,需要查資料實現(xiàn),算法甚至不用優(yōu)化233.

1.14

先貼個進(jìn)度吧,截止到昨天,非常丑陋的框架。。

【開發(fā)Log】C++QT連連看

昨晚寫完消除的算法后,就想了好一會對于選中圖案的顯示問題,果然是被交互干爛了。今天用QPainter試了好久發(fā)現(xiàn)一直顯示不了選中框,查了下發(fā)現(xiàn)QPainter只能在窗口上繪畫,而我選用的是Scence那一套。后來發(fā)現(xiàn)Scence有自帶的addline。

改進(jìn)了一下ui,按鈕背景原來可以改透明的。。。

改進(jìn)了下消除算法,昨天寫的有bug,現(xiàn)在版本是優(yōu)先輸出折角點最少的合法方案。否則可以兩個點,非要三個點(含重疊點),輸出的方案很奇怪。

提示功能,本質(zhì)上也是枚舉所有可行方案,如果純暴力的話,n*m的矩陣,有【開發(fā)Log】C++QT連連看對坐標(biāo)要檢查,檢查的復(fù)雜度上面提過,大概是【開發(fā)Log】C++QT連連看, 這樣總的復(fù)雜度是【開發(fā)Log】C++QT連連看,n=100就爆炸了,要跑10秒(雖然n=100很少見),反正看這個復(fù)雜度很不爽,于是乎思考一下優(yōu)化。

對面每個位置(x,y),維護(hù)四個數(shù)組,分別是(x,y)向左/右/上/下可以無障礙延伸哪里

【開發(fā)Log】C++QT連連看

如上圖,對于打星的檸檬,上面是青蘋果,左邊是洋蔥,右邊是檸檬,下面是菠蘿,每個位置都維護(hù)這么一個信息。這是【開發(fā)Log】C++QT連連看的。

對于一條線段的情況,只要對每個位置看右邊和下面的元素,是否和自己相同。這是O(nm)的

對于兩條線段的情況,也就是一個"L"的情況,我們枚舉拐角點,然后判斷上左、上右、下左、下右元素是否有相同的情況。

【開發(fā)Log】C++QT連連看

對面三條線段的情況,如上圖。我們枚舉中間的線段(即黑線),然后合法的情況,只能上面兩個點匹配下面兩個點,這是【開發(fā)Log】C++QT連連看的,主要瓶頸是枚舉中間線段。

這樣總復(fù)雜度【開發(fā)Log】C++QT連連看,少了一層n/m,雖然沒優(yōu)化多少。。。感覺這能出成題啊2333

對于scence界面的維護(hù)很麻煩,需要維護(hù)界面上每個東西的指針。。如果這個scence(要一直用的話).

ok,今天就到這里。大的東西還剩倒計時,roll牌,關(guān)卡間的聯(lián)通,還有些ui的優(yōu)化,還有交互,明天再說。

1.17

update on 4:14 am

逃課一天+回家一天(剛到家

【開發(fā)Log】C++QT連連看

貼一下,目前進(jìn)度,已經(jīng)具備雛形了。右邊有提示、洗牌和倒計時,還有通關(guān)成功、通關(guān)失敗的畫面。

倒計時用QPainter和QTimer畫的,洗牌的話就是重新隨機初始化一遍圖,不過u1s1隨機出兩個相鄰且相同的元素的可能性有點高啊,理論上概率是【開發(fā)Log】C++QT連連看,算了一下n = 15時候,概率差不多為52%,那似乎是正常的。。。

試了下難度,時限1min,圖案種類21種,10*10的矩陣,我還開了無限次roll,都過不了???大概還剩十幾個塊,老年手速,沒道具的話感覺非常困難啊。

顏色相差比較大,眼睛一掃就能把某種給都觀察到,比如這里面的藍(lán)莓的顏色就很鮮明;對比檸檬、菠蘿、香蕉還有梨,就不容易一眼掃完233。

想起來音效和背景音樂還沒弄??,進(jìn)度--(悲。

啊這,下午在搞關(guān)卡模式,順便測了一下,又發(fā)現(xiàn)消除算法和提示算是寫了兩個神筆錯誤QAQ。

關(guān)卡變動影響矩陣各種參數(shù)(大小、圖案種類等),一開始把level當(dāng)做參數(shù)傳給各部分包括ui,的方法,然后還是那個問題,在scence上創(chuàng)建的窗口似乎沒有直接函數(shù)可以刪掉,所以我每次的界面其實覆蓋在上次的界面上,然后按鈕很奇怪,對于相同的按鈕,最先創(chuàng)建的是在上面的,然后每次實際點擊的按鈕都是第一關(guān)的。。??税胩欤缓髶Q方法了——把level當(dāng)做static變量,這樣無論是按鈕覆蓋或者按鈕是初始化一次,都可以解決上面出現(xiàn)的問題。比較懶,就寫了每次重新new一個按鈕覆蓋到界面上了,^^。

發(fā)現(xiàn)沒裝多媒體模塊->下載器需要升級->不搞了。。

到這就完工了233.

貼一下效果圖吧,可以自動檢測死局情況,關(guān)卡參數(shù)都是能改的,下圖地圖是比較easy的情關(guān)卡。

【開發(fā)Log】C++QT連連看
【開發(fā)Log】C++QT連連看
【開發(fā)Log】C++QT連連看
【開發(fā)Log】C++QT連連看
【開發(fā)Log】C++QT連連看

已上傳gitee,鏈接:https://gitee.com/z1033093940/other.git文章來源地址http://www.zghlxwxcb.cn/news/detail-426549.html

到了這里,關(guān)于【開發(fā)Log】C++QT連連看的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 基于Java的連連看游戲設(shè)計與實現(xiàn)

    基于Java的連連看游戲設(shè)計與實現(xiàn)

    目錄 一、連連看開發(fā)背景 二、Java游戲開發(fā) 1.現(xiàn)狀 2.Java日益趨向成熟 3.Java在網(wǎng)絡(luò)方面的良好表現(xiàn) 4.游戲速度 三、連連看開發(fā)環(huán)境 四、技術(shù)介紹 Java swing 五、連連看所用畫圖方法 1.簡介 2.描述 3.方法 注意: 六、連連看游戲設(shè)計 1.功能模塊 2.玩家面向游戲體驗 七、連連看游戲

    2024年02月04日
    瀏覽(20)
  • Android實訓(xùn)1_動物連連看游戲界面制作_線性布局

    Android實訓(xùn)1_動物連連看游戲界面制作_線性布局

    實訓(xùn)1 ?動物連連看游戲界面制作 【實訓(xùn)名稱】 動物連連看游戲界面制作 【實訓(xùn)效果】 【實訓(xùn)目的】 掌握Android中線性布局的使用 【實訓(xùn)素材】 drawable-hdpi文件夾: 【實訓(xùn)素材CSDN資源鏈接】 https://download.csdn.net/download/xiaohui_student/88351533?spm=1001.2014.3001.5503 【準(zhǔn)備工作】 創(chuàng)建

    2024年02月08日
    瀏覽(23)
  • Python基礎(chǔ)教程——貪吃蛇、連連看小游戲(完整版,附源碼)

    Python基礎(chǔ)教程——貪吃蛇、連連看小游戲(完整版,附源碼)

    1. 案例介紹 貪吃蛇是一款經(jīng)典的益智游戲,簡單又耐玩。該游戲通過控制蛇頭方向吃蛋,從而使得蛇變得越來越長。 通過上下左右方向鍵控制蛇的方向,尋找吃的東西,每吃一口就能得到一定的積分,而且蛇的身子會越吃越長,身子越長玩的難度就越大,不能碰墻,不能咬

    2024年02月04日
    瀏覽(18)
  • Android Studio實現(xiàn)連連看小游戲,比比看誰過關(guān)最快~

    Android Studio實現(xiàn)連連看小游戲,比比看誰過關(guān)最快~

    這是一款基于Android studio開發(fā)的連連看小游戲。主要實現(xiàn)的功能有: 難度設(shè)置 打亂重排 排行榜 計時器 背景音樂 消除音效 主要應(yīng)用的技術(shù)如下: Fragment碎片 Service服務(wù) Menu菜單 自定義view Java反射 handler消息機制 BroadcastReceiver 多線程 SQLiteOpenHelper SharedPreferences Bitmap ViewPager Me

    2023年04月08日
    瀏覽(68)
  • Python 一步一步教你用pyglet制作“彩色方塊連連看”游戲

    Python 一步一步教你用pyglet制作“彩色方塊連連看”游戲

    目錄 彩色方塊連連看 第一步 第二步 第三步 第四步 第五步 第六步 第七步 動態(tài)效果展示 小結(jié) 本篇除了介紹怎樣用pyglet制作連連看游戲,還將介紹如果使用自定義庫colorlib,用它來描繪游戲中多種顏色的彩色方塊。自定義庫colorlib的由來,另請閱讀《python 教你如何創(chuàng)建一個自

    2024年04月08日
    瀏覽(55)
  • Python 一步一步教你用pyglet制作“彩色方塊連連看”游戲(續(xù))

    Python 一步一步教你用pyglet制作“彩色方塊連連看”游戲(續(xù))

    上期講到相同的色塊連接,鏈接見:?Python 一步一步教你用pyglet制作“彩色方塊連連看”游戲-CSDN博客 續(xù)上期,接下來要實現(xiàn)相鄰方塊的連線: 首先來進(jìn)一步擴展 行列的類: class RC: ? ? def __init__(self, r=0, c=0): ? ? ? ? self.r, self.c = r, c ? ? def __repr__(self): ? ? ? ? return f\\\'Rc

    2024年04月08日
    瀏覽(25)
  • Qt擴展-Log4Qt 簡介及配置

    Qt擴展-Log4Qt 簡介及配置

    日志是程序調(diào)試和溯源問題的一個必不可少的好手段,我們可以用系統(tǒng)的log像 QDebug庫,但是為了更快的開發(fā),我們可以用更好的工具,比如說,Log4Qt是基于Qt寫的一個日志庫。也是使用Qt框架的Apache Software Foundation Log4j包的c++移植版。它的目的是供開源和商業(yè)Qt項目使用。好像

    2024年02月07日
    瀏覽(38)
  • Log4Qt日志框架(1)- 引入到QT中

    Log4Qt日志框架(1)- 引入到QT中

    Log4Qt日志框架(2)-深入分析和使用 github:https://github.com/MEONMedical/Log4Qt 官方(版本較老):https://sourceforge.net/projects/log4qt/ CSDN(0積分):https://download.csdn.net/download/qq_40666149/88233421 Log4Qt 是一個基于 Qt 的日志庫,它是 Apache log4j 的一個移植版本。Log4Qt 旨在為 Qt 應(yīng)用程序提供一個

    2024年02月11日
    瀏覽(20)
  • log4qt庫的使用

    log4qt庫的使用

    Log4Qt是一個用于Qt應(yīng)用程序的開源日志記錄庫。它是基于Apache Log4j的C++實現(xiàn),并提供了一種靈活和可配置的方式來記錄應(yīng)用程序的日志信息。 Log4Qt允許你在應(yīng)用程序中定義日志記錄器、日志級別和日志輸出目標(biāo),并根據(jù)需要進(jìn)行動態(tài)配置。它支持多個日志記錄器以及不同的日

    2024年02月08日
    瀏覽(18)
  • 使用C++和QT實現(xiàn)Log自定義日志系統(tǒng)

    使用C++和QT實現(xiàn)Log自定義日志系統(tǒng)

    使用QT的qInstallMessageHandler函數(shù)結(jié)合qDebug,qInfo實現(xiàn)自定義的日志系統(tǒng) 輸出日志到文件和控制臺 自動檢測日志文件大小 自動更新日志文件修改日期 自動備份 自動刪除一個月前的日志文件 支持多線程程序 支持?jǐn)U展,可輸出日志到數(shù)據(jù)庫,網(wǎng)絡(luò),或服務(wù)器 支持?jǐn)U展,可使用co

    2024年02月05日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包