原创 基於EasyX和Raylib的字符陣

字符陣是 EasyX 的經典樣例程序: https://codebus.cn/yangw/character-matrix 使用 raylib 替代 easyx. 除了常規的 API 替換, 還需要額外調用 SwapScreenBuffe

原创 基於EasyX和Raylib的堅持100秒

Raylib 播放音頻毫無壓力, 相比之下 EasyX 需要藉助 Windows API mciString 傳入播放相關的命令, 感覺風格不統一, 不夠優雅。 另一個問題是 clock() 和 CLOCKS_PER_SEC 在 Linu

原创 基於EasyX和Raylib的十字消除

基於 EasyX // 根據《C和C++遊戲趣味編程》第10章 十字消除 寫出 #include <graphics.h> #include <conio.h> // _kbhit() #include <stdio.h> #inclu

原创 基於EasyX和Raylib的貪喫蛇

基於 EasyX // 根據《C和C++遊戲趣味編程》第七章 貪喫蛇 寫出 #include <graphics.h> #include <conio.h> // _kbhit() #include <stdio.h> #include

原创 LLDB備忘錄

收集整理使用 LLDB 過程中發現的問題和解決方法。 1. error: Couldn't allocate space for materialized struct: Couldn't malloc: address space is

原创 簡易貪喫蛇-基於C++和OpenCV的實現

簡易貪喫蛇-基於C++和OpenCV的實現 2022-08-12 11:20:01 1. 目的 做一些 application 方面 demo 的嘗試。 使用 OpenCV 而不是 EasyX 或 SDL 的原因是: 對 OpenCV 比較

原创 C語言getopt()的8個用法

目錄概況例子1例子2例子3例子4例子5例子6例子7例子8 概況 做 CSAPP 的 CacheLab 的第一個門檻是學習使用 getopt() 函數。它是 Linux 下的函數,Windows 先不考慮了。 查詢 getopt 用法的“官方

原创 rgb2gray 的實現和優化

環境和原理說明 測試設備: 小米11, QCOM888. 使用 NDK-r22 編譯器. 使用 OpenCV 的 Mat, imread/imwrite 等基礎設施,以及作爲對照比較性能。 使用 C++ 模板技術: 由於確定了是 RGB 因

原创 最近鄰 resize 的實現和優化

目錄1. 目的1. 影響性能的因素2. 對照: cv::resize 耗時(4ms)3. 實現和優化naive 實現. 19ms第1次優化:提前算索引. 提速 2ms第2次優化:展開最裏層循環中的Mat.ptr到外層. 提速9ms第3次優化

原创 macOS備忘錄

記錄使用 macOS 的一些細節。 1. Finder 文件剪切 一度誤以爲 Finder 不能剪切只能鼠標拖放,一度想找Finder替代品。實際可以剪切: 複製粘貼:cmd+c→cmd+v 剪切粘貼:cmd+c→cmd+option+v

原创 Python的一些工程實踐

1. 文檔 Python 廣泛使用的文檔標準是 Sphinx MarkUp, 主要原因是可以部署在 read the docs 網站上。 VSCode 有相應的插件。 https://stackoverflow.com/questions/

原创 C++的一些工程實踐Tips

1. gdb Linux C/C++ 調試:gdb 基本使用 2. 刷題 pintia 題解 - 浙大版《C語言程序設計(第3版)》題目集 3. 解決-Wunused-variable 如果變量x沒用到,開-Wall會報說變量x沒有用到。消

原创 VSCode使用技巧

記錄個人用到的 VSCode 技能。 0x1 搜索 \t tab 字符 無論是單個文件內搜索,還是全局搜索; 輸入\t 後, 需要 勾選正則匹配(.*那個icon): 0x2 搜索行尾空格字符 \s$ 0x3 使用GitLens插件 可

原创 C++接口設計和代碼重構

書籍 1. C++ API Design 講了接口設計, 文檔(doxygen),測試等方面。 對於從頭編寫基礎庫, 或者沒有基礎庫開發經驗並且需要短期內上手, 有一定實際參考價值。 2. The Mikado Method 所謂Mikad

原创 git rebase 替代 git merge 實現分支合併

目錄0x0 引言0x1 git merge 是怎樣合併分支的0x2 git rebase 是怎麼合併分支的0x3 進一步的操作總結 0x0 引言 網絡上關於 git rebase 使用的教程不少,其中一篇把遠端操作混入了進來,繪製的 com