| 赞 | 0 |
| VIP | |
| 好人卡 | |
| 积分 | 31 |
| 经验 | |
| 最后登录 | 2016-3-14 |
| 在线时间 | 177 小时 |
- 梦石
- 3
- 星屑
- 50
- 在线时间
- 177 小时
- 注册时间
- 2008-3-21
- 回帖
- 712
|
楼主 |
发表于 2008-11-24 17:20:02
|
显示全部楼层
以下引用一路一风尘于2008-11-24 9:17:26的发言:
既然用到了鼠标,可以连续传递图像,模拟画笔,从截图上似乎是3种颜色?
不晓得你的做法,但正规是将格子转为三进制数字,填入格子对应的位,之后转为十进制显示。
基本做法你说对了,
但每个图形位元有 4 种状态:红、绿、蓝和无图,严格来讲应该是四进制。
转换用的核心语句:
- #--------------------------------------------------------------------------
- # ● 密码变数字
- #--------------------------------------------------------------------------
- def password_to_digit
- # 数字清零,强制相加
- @digitvalue = 0
- for iii in 0...16
- @digitvalue += @block[iii].value * (4 ** iii)
- end
- # 显示结果
- for iii in 0...10
- @digitindi[9 - iii] = @digitvalue % 10
- @digit[9 - iii].bitmap.clear
- @digit[9 - iii].bitmap.draw_text(0, 0, 16, 32, @digitindi[9 - iii].to_s, 1)
- @digitvalue = (@digitvalue / 10).to_i
- end
- end
- #--------------------------------------------------------------------------
- # ● 数字变密码
- #--------------------------------------------------------------------------
- def digit_to_password
- # 数字清零,强制相加
- @digitvalue = 0
- for iii in 0...10
- @digitvalue += @digitindi[9 - iii] * (10 ** iii)
- end
- # 显示结果
- for iii in 0...16
- @block[iii].value = @digitvalue % 4
- @digitvalue = (@digitvalue / 4).to_i
- end
- end
复制代码
|
|