原创 【遊戲製作】 從零開始的Qt5貪喫蛇代碼分析

悲傷的現實 離期末第一場考試之剩下32天了,而oop的期中project還有24天截止。此刻,我們剛剛寫完了人生中第一個c++程序,分數類的運算符重載。繼承和多態還沒學。儘管如此,也是時候作爲全裸勇者勇敢地去挑戰大魔王了。 目標

原创 【作業存檔】Dijkstra算法的練習

作爲一個無腦莽撞的少年,完成這次(超簡單的)作業歷經波折。 目標是用函數實現,找到圖中每個點到源所有的加權最短路徑,記錄下總長度(邊的權值和)和條數。如果不相連,總長度爲-1和條數0 dist記錄總長度,count記錄找到了幾條這樣的路

原创 【遊戲製作】 從零開始的Qt5貪吃蛇代碼分析

悲傷的現實 離期末第一場考試之剩下32天了,而oop的期中project還有24天截止。此刻,我們剛剛寫完了人生中第一個c++程序,分數類的運算符重載。繼承和多態還沒學。儘管如此,也是時候作爲全裸勇者勇敢地去挑戰大魔王了。 目標 通過研究

原创 【筆記整理】我們仍未知道那天所用的虛函數的原理

一、什麼是虛函數 在c++的一個類中,如果一個函數前用了virtual關鍵字,那麼這就是一個虛函數 一個非常簡單的示例 private: int i; public: base() : i(0){}; base(i

原创 【遊戲設計】從星露穀物語中學習遊戲製作

毫無疑問,星露穀物語(Stardew Valley)是一款成功的獨立遊戲。它由ConcernedApe單人開發,在兩週內賣出了40多萬份。實現了所有獨立遊戲製作人的夢想,簡直是業界標杆。 如果對以一人之力完成遊戲製作的憂慮猿先生感興趣,

原创 【錯誤記錄】期末複習用

顯然最簡單的解決方法的去掉const 但是根本原因是c.getnu()們不是const類型(既然我只是要讀private值那就const一下就好呀) 一個使用了小黃鴨調試法解決的問題(doge) 看起來非常沒問題 然而

原创 近似算法與K-center問題的解釋不清楚筆記

注:本文作者也沒太搞懂K-center算法 什麼是近似算法? 因爲存在NP-Hard問題,沒有算法能在多項式時間找出最優解。 在設計算法的時候要考慮三個問題:1.最優解 2.快速 3.全部情況 如果三個都考慮,可能沒法在多項式時間內完

原创 【作業存檔】最小生成樹的練習

記,一次非常順利的作業。 說是順利,但其實也用了一個晚上,一邊聽公共關係學的課程,一邊參與小組討論,一邊磕磕絆絆地寫完了。當然沒有一次通過所有測試點,反而是例子都沒過,不過看了看代碼發現了只是粗心的鍋,自己的思路沒大問題。 改了一下

原创 【算法分析】排序算法

堆排序 問:堆排序的最差時間複雜度是多少 答:O(NlogN) 我一開始以爲是N^2,因爲調整一個堆,最壞情況是O(N)(在生成新堆的時候,用數列錯位相減法得到) 我錯在: 調整堆最壞情況的確是O(N),但是每次堆排序只有第一次調整

原创 【作業存檔】堆排序和插入排序的練習

還算順利,有一些小處細節做得不夠好。 代碼還可以更簡潔一點。不過這次做得比較好的地方是嘗試使用了enum。 希望能對排序算法更熟練:) #include<stdio.h> enum{insertion, heap}; void In