只是为了把 Steam 游戏放到开始屏幕上

Reading Time: 4 minutes 很久以前, 我有一个梦想, 我的开始菜单上能直接固定一些 steam 游戏的磁贴. 然后我苦苦地寻找, 发现了这篇知乎文章, 然后我忍痛剁手, 花了我六块大洋, 买了这个叫 Steam Tiles 的 UWP 应用, 而这一切, 只是噩梦的开始. 初次使用这个 UWP 应用, 它就刷新了我的三观. 一个功能如此简单的应用居然能这么卡. 它需要读你安装 steam 游戏的目录, 然后从里面寻找合适大小的图片来制作磁贴, 也允许用户自定义图片, 可以从 url 下载图片, 可以从本地选取图片文件, 允许用户改变图片的位置, 大小, 以及磁贴的背景色. 听起来很美好, 该自定义的都能自定义. 但是事…

麻将图片生成器 – Mahjim

Reading Time: 2 minutes 这两天由于拿到了一个麻将图包, 运用了一些编译原理课上学的知识, 动手实现了一个简单的麻将图片生成器. 项目地址在这里, 同时也在自己的服务器上部署了一个demo. 这里简单聊聊这个小工具. 名字 Mahjong, 是麻将这个游戏的一种英文表示方法, 由于雀魂叫 majsoul, 这里就只用到 j 为止, 加上图片 image 的 im, 就成了 mahjim, 这个命名可以说是很没有新意了. 思路 基础 首先要解决的就是如何用字符串表示麻将的问题. 天凤有比较完整的记牌方式: – m=萬子, p=筒子, s=索子, z=字牌, 0=赤 – 一般形=4面子1雀頭 / 標…

铺砖问题

Reading Time: 3 minutes 这是昨天读 <<挑战程序设计竞赛>> 的时候看到的一个状态压缩动态规划, 书上写的文字内容其实挺好懂的, 但是初次读程序的时候花了一些时间才完全理解了这个题. 实际上我并没有在网上找到过这个程序的正确解释, 我写这篇文章的时候找到的三个解释 (解释一 解释二 解释三) 都有一定的问题 前两个解释属于完全没有看懂书上在写啥的, 而解释三提供了一种额外的解法, 参考了 hiho1048, 但是 hiho1048 这个题的列数 m 最多只有5, 所以可以使用一个 $O(nm(2^{m})^2)$ 的做法. 但是书上这个题的 m 是15, 解释三的做法是一定超时的. 由于这个状…

关于 lambda 和 返回值优化

Reading Time: 6 minutes 这里整理一些关于 c++ 中的匿名函数的知识. << C++ primer >> 上有的内容就不在重述了. 这里重点讲一些 primer 上 可能 没有的东西. 捕获的时机 primer 向我们介绍到: 有两种捕获变量的方式, 值捕获和引用捕获. 其中: … 与参数不同, 被捕获的变量的值是在 lambda 创建时拷贝, 而不是调用时拷贝 … 如果我们采用引用方式捕获一个变量, 就必须确保被引用的对象在 lambda 执行的时候是存在的. lambda捕获的都是局部变量, 这些变量在函数结束后就不复存在了. … 我们看一段代码: au…