Linux字符设备驱动与杂项设备驱动
字符设备驱动 graph LR A[字符设备驱动框架]-->B1[驱动初始化] B1[驱动初始化]-->C1[分配设备号] C1[分配设备号]-->D1[静态分配设备号] D1[静态分配设备号]-->E(register_chrdev_region) C1[分配设备号]-->D2[动态分配设备号] D2[动态分配设备号]-->F(alloc_chrdev_region) C1[分配设备号]-->D3[操作设备号dev_t] D3[操作设备号dev_t]-->Z1(MAJOR提取主设备号) D3[操作设备号dev_t]-->Z2(MINOR提取主设备号) D3[操作设备号dev_t]-->Z3(MKDRV将..
更多人机对弈
背景 小时候在FC上玩过象棋游戏,印象最深的就是那个老头,每次走棋贼慢同时棋力也特高。一直想了解下人机对弈的算法,看了几篇文章后,发现基本的套路都是一样的,自己写了一个小时候玩的两口吃一口的小游戏。 棋类AI基本步骤(以下都是基于两口吃一口这个小游戏) 局面生成:棋子种类、开局位置 // 5x5 棋盘,黑方和白方初始时都有5颗棋子 /* 0 1 2 3 4 ┌─────────┐ 0│○─○─○─○─○│ 1│├─┼─┼─┼─┤│ 2│├─┼─┼─┼─┤│ 3│├─┼─┼─┼─┤│ 4│●─●─●─●─●│ └─────────┘ */ std::string GenBoard(int row, int col, int colNum, int rowNum, std::map<..
更多踩内存
对于C/C++程序员来说,踩内存问题是最难分析定位的,往往问题的源头都比较隐蔽,让人很难排查出问题的根源所在。
更多