分享发现 简单 (古老) 密码锁教程及代码

anletian · 2017年03月28日 · 最后由 MadLeo 回复于 2018年12月09日 · 2335 次阅读
本帖已被设为精华帖!

观看声明:在观看本教程前,请保持室内明亮,以免近视,如果视力不佳,请佩戴好氪金狗护目镜。请勿在设备附近放可乐、雪碧、冰红茶、红牛、妹汁、风油精等饮料,以防不慎打翻。请保持正确坐姿。切勿跪键盘、搓衣板、榴莲垫板等会造成自我伤害的姿势。最后,以上声明纯属扯淡,你爱躺着我也管不着。

然后是来自阿尔法科技馆的传送门:

http://www.iwzyx.com/chapters/530

请观看完的同学们回到座位上,我们开始上课了。

下面,我开始简单介绍一下这个密码锁的功能,很简单: 1.四位密码,输错一个重来 2.输错N的N次方指定次数后,会出现一个提示,当然这个提示可以根据你们自己的喜好去掉,或者做个改进 3.有完没完该放代码了!

现在让我们来看看这个密码锁是如何被编写的:

==========================================<( ̄ˇ ̄)/我是一条分割线=======================================================

<:MD.Codetrue=0

<:MD.Errortimes=0

这里有个密码锁

正确密码是4位

如果输错一位,那就必须清空重新输入


[密码锁]

请输入密码:_ _ _ _

[|]
(b)1(/b) (b)2(/b) (b)3(/b)
(b)4(/b) (b)5(/b) (b)6(/b)
(b)7(/b) (b)8(/b) (b)9(/b)
(b)10(/b) (b)11(/b) (b)12(/b)
选:1
选:2
选:3
选:4
选:5
选:6
选:7
选:8
选:9
选:*
选:0
选:#

[1]

=: if(MD.Codetrue == 3) game_jumpto("第四位密码解锁成功") ; else game_jumpto("Fail")

[第四位密码解锁成功]

<u>3</u> <u>5</u> <u>7</u> <u>1</u>

跳:成功
[2]

跳:Fail
[3]

=: if(MD.Codetrue == 0) game_jumpto("第一位密码解锁成功") ; else game_jumpto("Fail")

[第一位密码解锁成功]

<:MD.Codetrue=1

<u>3</u> _ _ _

跳:密码锁

[4]

跳:Fail


[5]
=: if(MD.Codetrue == 1) game_jumpto("第二位密码解锁成功") ; else game_jumpto("Fail")

[第二位密码解锁成功]

<:MD.Codetrue=2

<u>3</u> <u>5</u> _ _

跳:密码锁

[6]
跳:Fail
[7]
=: if(MD.Codetrue ==2) game_jumpto("第三位密码解锁成功") ; else game_jumpto("Fail")

[第三位密码解锁成功]

<:MD.Codetrue=3

<u>3</u> <u>5</u> <u>7</u> _

跳:密码锁


[8]

跳:Fail
[9]

跳:Fail
[*]

跳:Fail
[0]

跳:Fail

[#]

跳:Fail

[Fail]

密码错误!

<:MD.Codetrue=0

>: MD.Errortimes += 1;

=: if(MD.Errortimes >= 6) game_jumpto("思考") ; else game_jumpto("密码锁")

跳:密码锁

[思考]

需要提示吗?

选:提示答案
选:再试试看

[提示答案]

密码是:3571

跳:密码锁
[再试试看]

<:MD.Errortimes=0

跳:密码锁

[成功]

密码正确!

==========================================我可是有底线的╭(╯^╰)╮=======================================================

我说下这个锁编译的大体思路: 核心: 设立一个值,用于判断密码输入正确的个数,就是它(¬_¬):<:MD.Codetrue=0

这个值的作用是: 1.保证密码的顺序性:

=: if(MD.Codetrue == 0) game_jumpto("第一位密码解锁成功") ; else game_jumpto("Fail")

如果正确数值为0,则正确输入数值为1,否则跳入失败区([Fail]),清空密码正确个数个屁!明明一个都还没对!

[Fail]

密码错误!


<:MD.Codetrue=0

输入正确密码个数被清空,重来吧

但是第一个密码输入正确的话就到这里了:

[第一位密码解锁成功]

<:MD.Codetrue=1

然后再被转跳回键盘:

跳:密码锁

然后开始输入下一个数字:

=: if(MD.Codetrue == 1) game_jumpto("第二位密码解锁成功") ; else game_jumpto("Fail")

如果第一个都没猜对(第一个没对的话,那么MD.Codetrue =0的),就想跳过,那么这个代码就会把你丢到失败区内

在第一个对的前提下,第二个输入对的时候,

[第二位密码解锁成功]

<:MD.Codetrue=2

按照上面的思路以此类推

2.保证满足正确密码个数后,锁(其实是开宝箱)被打开: 附加功能: 对输入错误次数赋值(想想没毛病,输入成功了,我干嘛还跳回去不开宝箱?深井冰例外)

设置错误数值达到某个条件的时候会发生什么事情,以这个程序为例子:

[Fail]

密码错误!

<:MD.Codetrue=0

>: MD.Errortimes += 1;

=: if(MD.Errortimes >= 6) game_jumpto("思考") ; else game_jumpto("密码锁")

跳:密码锁

[思考]

需要提示吗?

选:提示答案
选:再试试看

[提示答案]

密码是:3571

跳:密码锁
[再试试看]

<:MD.Errortimes=0

跳:密码锁

这里Errortimes这个值是错误次数,每次输入错误跳到失败区([Fail])时,你的次数都会被增加→>: MD.Errortimes += 1; 设立到达指定次数,发生事件:=: if(MD.Errortimes >= 6) game_jumpto("思考") ; else game_jumpto("密码锁") 这里是到达6次时,启动思考提示:

[思考]

需要提示吗?

选:提示答案
选:再试试看

[提示答案]

密码是:3571

跳:密码锁
[再试试看]

<:MD.Errortimes=0

跳:密码锁

这里可以选择提示,然后玩家看到正确密码并输入,因为没有<:MD.Errortimes=0代码,所以再次错误时,还是会提示。(给马鹿们提供方便) 如果不想查看,就会清空错误次数<:MD.Errortimes=0让玩家接着尝试6次再提示(60次我相信玩家大概会点查看密码吧) 在这个设计上,我考虑到,如果一个密码锁就卡着玩家,那么我再多几个密码锁,游戏不就本末倒置了?玩家把注意力放在密码锁上,而不是游戏本身,于是你的游戏名无论多么华丽,总是被一个名字掩盖:“开锁王”“密码锁2”“昆特3”

当然,这个设置还可以改成其他的,比如没有输入就可以直接跳过,或者解锁失败宝箱爆炸GG~~或者被外星人绑走做解剖马鹿实验~~我只是提供一个思路,具体怎么操作还是看你们自己。

应用篇: 咳咳,【敲黑板】讲重点了,拿出笔开始画! 这么长(大概1.1千字Σ( ° △ °|||)︴)的代码,让你们去编写肯定感觉很累,感觉到很长了吗?很长就对了,这可真不是人能写出来的如果直接复制密码又永远是3571,于是该怎么呢?

好了,我来总结一下(真想画个程序运行判断图,可是基础计算机课上学的绘画方式都忘了╮(╯▽╰)╭):

先建立一个基础框架包含

1.输入区:

[密码锁]

请输入密码:_ _ _ _

[|]
(b)1(/b) (b)2(/b) (b)3(/b)
(b)4(/b) (b)5(/b) (b)6(/b)
(b)7(/b) (b)8(/b) (b)9(/b)
(b)10(/b) (b)11(/b) (b)12(/b)
选:1
选:2
选:3
选:4
选:5
选:6
选:7
选:8
选:9
选:*
选:0
选:#

(这里#什么的牛鬼蛇神可以去掉,如果你不作为密码的话,我放在这里只是凑数和美观) **2.输入错误的重置区域:(错误区)*

[Fail]

密码错误!

<:MD.Codetrue=0

跳:密码锁

把你的正确输入个数清零

3.成功解锁区域:(成功区)

[成功]

密码正确!

仿佛写了一段废话 用于开锁 4.有效条件设置:

=: if(MD.Codetrue == 0) game_jumpto("第一位密码解锁成功") ; else game_jumpto("Fail")

[第一位密码解锁成功]

<:MD.Codetrue=1

跳:密码锁
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
=: if(MD.Codetrue == 1) game_jumpto("第二位密码解锁成功") ; else game_jumpto("Fail")

[第二位密码解锁成功]

<:MD.Codetrue=2

跳:密码锁
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
=: if(MD.Codetrue ==2) game_jumpto("第三位密码解锁成功") ; else game_jumpto("Fail")

[第三位密码解锁成功]

<:MD.Codetrue=3

跳:密码锁
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
=: if(MD.Codetrue == 3) game_jumpto("第四位密码解锁成功") ; else game_jumpto("Fail")

[第四位密码解锁成功]

跳:成功

每一段放在你看的爽你想设置密码的数字下面

如果你要设置输入显示: 就像我在前面代码写的,把每次显示填入:有效条件设置 中就行了

其实上面都不是重点

偷懒方法: 把我上面代码赋值一下改一改就行咯~ 不过改代码还有要注意的几点: 1.一些英文代码后面必须空一行 2.多空一行,注意书写,有的必须切换英文输入法输入代码 3.还是多空行!血的教训啊!

还有什么吗……?

嗯,关于这种密码锁,比较简陋,错在一些缺点,比如密码不能为重复数字比如:0240、8888这种

不过新版的锁将彻底解决这个问题,并且还自带数字显示,只是目前还在试验阶段,不过转轮式的新密码锁我已经设计出来了,它是依托于一个小小的点。先不扯这么多了,我累啦~午睡一会儿,有什么问题给我在下面留言吧,看到就会回复。

共收到 4 条回复

超级厉害了我的哥!

啥嘛,我都没看懂😂😂😂😂😂

3 这是类似于 的吗

爱死大大你了!

anletian [新玩具] 输入式完美密码锁,上线! 中提及了此贴 05月21日 09:47
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册