微信小程序华容道最优解

以前自己写过搜索华容道的最优解程序,想起来真是效率感人>﹏<,虽然如此,但是全是自己独立完成的,心里还是很高兴的,现在在微信小程序中看到了华容道,决定要再写一次华容道的程序。
这次看了网上的华容道程序,修改自许剑伟先生(福建莆田第十中学)的华容道程序(又是C语言,又是不友好的变量命名,看得我好辛苦≡(▔﹏▔)≡)
程序支持棋子三种移动类型

  1. 同一颗棋子为一步
  2. 直线为一步
  3. 一格为一步

盘面分析

这一步是将图片转为数组盘面,以前是采用取特定的点的颜色,确定棋子的类型,效果不是很好,这次使用的是图片相识算法,用了最简单的图片感知算法,效果非常好,也是因为图片比较简单的关系

基本样本

基本样本来源,包含了所有的横、竖棋子
在这里插入图片描述 在这里插入图片描述

	private final static String[][] HASH_CODE = {
   
	        // 兵
	        {
   "3878EEDACB8BBEA1", "387CCEDACA8BBEA1", "387CCADACA8BBEA1", "387CEADACA8BBEA1", "3878D6DACBC9BE81",
	                "3858D2DACBC9BE81", "3878D6DACB89BEA1", "387CD2DACBC9BEA1"
	        },
	        // 横将
	        {
   "F9FAFB71238283C1", "030200E1F7F5F3FB", "0F0C1199E3E2F7E7", "F7F2F9F8FB720B09", "F9F9FBF3E3E1E0C0"},
	        // 竖将
	        {
   "C793BB9CB05C2E13", "7F7FFBB5980182AE", "EFF72707278DCDDB", "6EB79B075842073B", "DB91ADA1986E7E2A"},
	        // 曹操
	        {
   "E082810E04008FCF"}
	};

示例

在这里插入图片描述

10,  1,  5,  5,
10, 15, 15,  0,
11, 15, 15, 12,
11,  0, 13, 12,
 2,  3, 13,  4

感知哈希算法

1. 缩小图片尺寸

这一步的作用是去除各种图片尺寸和图片比例的差异, 只保留结构、明暗等基本信息

2.转为灰度图片

简化色彩
1,2步直接使用下面代码完成

	BufferedImage part = new BufferedImage(8, 8, BufferedImage.TYPE_BYTE_GRAY);

3.计算平均值

计算所有像素的灰度平均值

	/**
	 * 计算数组平均值
	 * @param rgb
	 * @return
	 */
	public static double average(int[] rgb) {
   
	    double s
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值