算盘 - 珠算脑





5.00/5 (10投票s)
实用的算盘应用 - 计算器和玩具
引言
算盘的起源已不可考,但它在东亚已被使用数千年。这个应用程序重现了中国算盘,被称为suanpan,可以用作高效的计算器,或者作为挑战和精神锻炼的练习。
应用程序
在上面的屏幕截图中,该应用程序处于计算器
模式,如红/黄色按钮中心右侧所示,并且已移动珠子的值相当于1400
。
在下面的屏幕截图中,该应用程序处于练习
模式,用户需要从运行总计中加/减一个随机值。
- 按下练习/计算器按钮以切换模式。
- 按下重置按钮以重置为零(计算器)或重置为上次运行总计(练习)
- 点击珠子以沿各自的杆上滑动它们
这会很有趣...
代码
有两个重要的类
类AbacusBeadsRack
类Abacus_BeadsOrderOfMagnitude
AbacusBeadsRack 类
算盘的每一列(数量级)都有两个部分 - 上半部分称为“天珠”,下半部分称为“地珠”。每个部分由一个珠架组成,该珠架跟踪其自身的Max
珠子数量、Value
(计数珠子的数量)、eType
(天珠
、地珠
)、Base
和Worth
。
类型
-天珠
/地珠
Max
- 珠架中的最大珠子数量由类型
决定(2 或 5)Value
- 当前“计数”的珠子数量Base
- 每个计数珠子bead1
的单位值Worth
-Value*Base
(计数珠子数量 * 珠子的基础值)
类Abacus_BeadsOrderOfMagnitude
各列分别代表一个数量级,从最低有效位(最右侧)到最高有效位(最左侧)。它们由上/下天珠
和地珠
珠架组成。所有列的总和是算盘值,或最终总计。
SweepAndPrune(扫掠与剪枝)
DrawAbacus()
方法按从右到左的顺序绘制每一列,并创建一个SweepAndPrune
数据集,其中包含每个按钮的位置,在var
调用cSP
中。pic_MouseMove()
和pic_MouseClick()
事件处理程序轮询 cSP,以查找鼠标位置下的元素(按钮
或珠子
),该元素位于屏幕上的鼠标下。
历史
- 2023年3月7日:最初发布
- 2023年3月11日:随机数未进行种子设置 - 谜题解决方案低于零或高于 10 亿
- 2023年3月14日 - 添加了最小尺寸,以便在最小化时销毁时不会失败 - 修复了随机练习生成器 - 添加了更好的“?”解决方案按钮
- 2023年3月16日 - 添加了随着玩家分数增加而增加的游戏难度级别 - 改进了按钮图形