扫雷游戏中的算法:Union Find 和 Flood Fill

讲讲我在实现扫雷游戏时用到的算法,包括 Knuth shuffle、Union Find 和 Flood Fill。

可以在GitHub下载体验,Emoji Mines 是一年前就完成的作品。今天把雷生成的算法改了改,游戏体验变好许多,遂又向女胖友推销自己游戏(笑

在阅读之前假设你已可以熟悉扫雷的游戏规则。为了方便描述,将扫雷游戏中的方块分为:空白方块(即周围都没有雷方块的方块)、数字方块和雷方块。

Read More

Manjaro安装小记&使用体验

5 月的时候,还记得那个夜晚,我激动得睡不着,因为安装了新的系统 Manjaro😂。现在已经使用了一个多月,体验很好,比垃圾 Windows 好是肯定的,比 Ubuntu 稳定,软件包更新也更快。感觉可以养老了,不想折腾。

Read More

RTOS设计与实现

介绍基于 AVR 的 RTOS 的设计和实现,名为 ROS。

GitHub 地址

Read More

AbstractQueuedSynchronizer

AQS 是用来构建锁和同步工具的基本框架。本文主要基于 AQS 作者 Doug Lea 的论文The java.util.concurrent Synchronizer Framework 和 JDK 1.8 的文档。

Java并发-目录

Read More

K-th 问题

在面试的时候碰到的问题,总结一下。这类问题有以下几种形式,但本质上是一样:

接下来以第一个问题的形式来分析和编码,即 “求第 k 个最大的数”

Read More

Minecraft Modded Server

最近搭建了一个 Minecraft Mod 服
服务器地址可以加Telegram群后获取😂

Read More

Spring Security 架构

原文:Spring Security Architecture

译者:LeeR

Read More

数据结构-二叉树

  • 二叉树的第 i 层最多有$2^{i-1}$个节点

  • 深度为 h 的二叉树最多有$2^h - 1$个节点。定义根节点深度为1。

  • $n_0$(度为 0 的节点,叶子节点),$n_1$(度为 1 的节点),$n_2$(度为 2 的节点),有 $n_0 = n_2 + 1$

1
2
3
n0+n1+n2-1 = 0*n0+1*n1+2*n2

n0 = n2+1

Read More

单线程和多线程下的ConcurrentModificationException

这个寒假看的《Java并发编程实战》终于派上了用场,今天搬砖过程中遇到了ConcurrentModificationException,结果还是不会。之后晚上回去恶补一波,写此文章。

JCP -> 《Java并发编程实战》

Read More

JPA、Hibernate、Spring Data JPA 傻傻分不清?

JPA、Hibernate、Spring Data JPA 三者的联系和不同:
Hibernate is a JPA implementation, while Spring Data JPA is a JPA Data Access Abstraction.
With Spring Data, you may use Hibernate, Eclipse Link or any other JPA provider.

Read More