From e091cb67491cee19deccb51f6d8a52f12e80c66b Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Sun, 20 Sep 2020 20:19:47 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=99=A8=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=B0=8F=E6=95=B0=E7=82=B9=E5=92=8C=E7=A7=91=E5=AD=A6=E8=AE=A1?= =?UTF-8?q?=E6=95=B0=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Zframework/languages.lua | 40 +++++++----------- Zframework/widgetList.lua | 6 ++- parts/scenes.lua | 89 +++++++++++++++++++++++++-------------- 3 files changed, 77 insertions(+), 58 deletions(-) diff --git a/Zframework/languages.lua b/Zframework/languages.lua index 037eb0a0..512b3976 100644 --- a/Zframework/languages.lua +++ b/Zframework/languages.lua @@ -162,11 +162,9 @@ local langList={ _1="1",_2="2",_3="3", _4="4",_5="5",_6="6", _7="7",_8="8",_9="9", - _0="0",["<"]="<",["="]="=", - ["+"]="+", - ["-"]="-", - ["*"]="*", - ["/"]="/", + _0="0",["."]=".",e="e", + ["+"]="+",["-"]="-",["*"]="*",["/"]="/", + ["<"]="<",["="]="=", play="开始", }, main={ @@ -689,11 +687,9 @@ local langList={ _1="1",_2="2",_3="3", _4="4",_5="5",_6="6", _7="7",_8="8",_9="9", - _0="0",["<"]="<",["="]="=", - ["+"]="+", - ["-"]="-", - ["*"]="*", - ["/"]="/", + _0="0",["."]=".",e="e", + ["+"]="+",["-"]="-",["*"]="*",["/"]="/", + ["<"]="<",["="]="=", play="开始", }, main={ @@ -1206,11 +1202,9 @@ local langList={ _1="1",_2="2",_3="3", _4="4",_5="5",_6="6", _7="7",_8="8",_9="9", - _0="0",["<"]="<",["="]="=", - ["+"]="+", - ["-"]="-", - ["*"]="*", - ["/"]="/", + _0="0",["."]=".",e="e", + ["+"]="+",["-"]="-",["*"]="*",["/"]="/", + ["<"]="<",["="]="=", play="Play", }, main={ @@ -1723,11 +1717,9 @@ local langList={ _1="1",_2="2",_3="3", _4="4",_5="5",_6="6", _7="7",_8="8",_9="9", - _0="0",["<"]="<",["="]="=", - ["+"]="+", - ["-"]="-", - ["*"]="*", - ["/"]="/", + _0="0",["."]=".",e="e", + ["+"]="+",["-"]="-",["*"]="*",["/"]="/", + ["<"]="<",["="]="=", play="!!!", }, main={ @@ -2244,11 +2236,9 @@ local langList={ _1="1",_2="2",_3="3", _4="4",_5="5",_6="6", _7="7",_8="8",_9="9", - _0="0",["<"]="<",["="]="=", - ["+"]="+", - ["-"]="-", - ["*"]="*", - ["/"]="/", + _0="0",["."]=".",e="e", + ["+"]="+",["-"]="-",["*"]="*",["/"]="/", + ["<"]="<",["="]="=", play="开始", }, main={ diff --git a/Zframework/widgetList.lua b/Zframework/widgetList.lua index 274bf905..61e6a8fa 100644 --- a/Zframework/widgetList.lua +++ b/Zframework/widgetList.lua @@ -130,12 +130,14 @@ local Widgets={ newKey({name="_8", x=250,y=500,w=90, color="white", font=50,code=pressKey("8")}), newKey({name="_9", x=350,y=500,w=90, color="white", font=50,code=pressKey("9")}), newKey({name="_0", x=150,y=600,w=90, color="white", font=50,code=pressKey("0")}), - newKey({name="<", x=250,y=600,w=90, color="lRed", font=50,code=pressKey("backspace")}), - newKey({name="=", x=350,y=600,w=90, color="lYellow",font=50,code=pressKey("return")}), + newKey({name=".", x=250,y=600,w=90, color="lPurple",font=50,code=pressKey(".")}), + newKey({name="e", x=350,y=600,w=90, color="lPurple",font=50,code=pressKey("e")}), newKey({name="+", x=450,y=300,w=90, color="lBlue", font=50,code=pressKey("+")}), newKey({name="-", x=450,y=400,w=90, color="lBlue", font=50,code=pressKey("-")}), newKey({name="*", x=450,y=500,w=90, color="lBlue", font=50,code=pressKey("*")}), newKey({name="/", x=450,y=600,w=90, color="lBlue", font=50,code=pressKey("/")}), + newKey({name="<", x=550,y=300,w=90, color="lRed", font=50,code=pressKey("backspace")}), + newKey({name="=", x=550,y=400,w=90, color="lYellow",font=50,code=pressKey("return")}), newButton({name="play", x=640,y=600,w=180,h=90, color="lGreen", font=40,code=pressKey("space"),hide=function()return not sceneTemp.pass end}), }, main={ diff --git a/parts/scenes.lua b/parts/scenes.lua index 1fdc7959..1f80670f 100644 --- a/parts/scenes.lua +++ b/parts/scenes.lua @@ -39,7 +39,7 @@ do--calculator BG.set("none") sceneTemp={ reg=false, - val=0, + val="0", sym=false, pass=false, tip=require("parts/getTip"), @@ -47,56 +47,83 @@ do--calculator end mouseDown.calculator=NULL + local function EGG(str) + sceneTemp.reg=str + sceneTemp.sym="=" + end function keyDown.calculator(k) local S=sceneTemp if byte(k)>=48 and byte(k)<=57 then if S.sym=="="then - S.val=tonumber(k) + S.val=k S.sym=false - elseif S.sym then - if not S.reg then - S.reg=S.val - S.val=tonumber(k) - elseif S.val<1e13 then - S.val=S.val*10+tonumber(k) - end + elseif S.sym and not S.reg then + S.reg=S.val + S.val=k else - if S.val<1e13 then - S.val=S.val*10+tonumber(k) + if #S.val<14 then + if S.val=="0"then S.val=""end + S.val=S.val..k end end + elseif k=="."then + if not(find(S.val,".",nil,true)or find(S.val,"e"))then + S.val=S.val.."." + end + elseif k=="e"then + if not find(S.val,"e")then + S.val=S.val.."e" + end elseif k=="backspace"then - if S.val>0 then - S.val=int(S.val/10) - end + S.val=sub(S.val,1,-2) + if S.val==""then S.val="0"end elseif k=="+"or k=="="and kb.isDown("lshift","rshift")then S.sym="+" + S.reg=false elseif k=="-"then S.sym="-" + S.reg=false elseif k=="*"or k=="8"and kb.isDown("lshift","rshift")then S.sym="*" + S.reg=false elseif k=="/"then S.sym="/" + S.reg=false elseif k=="return"then if S.val then if S.sym and S.reg then S.val= - S.sym=="+"and S.reg+S.val or - S.sym=="-"and S.reg-S.val or - S.sym=="*"and S.reg*S.val or - S.sym=="/"and S.reg/S.val or + S.sym=="+"and (tonumber(S.reg)or 0)+tonumber(S.val)or + S.sym=="-"and (tonumber(S.reg)or 0)-tonumber(S.val)or + S.sym=="*"and (tonumber(S.reg)or 0)*tonumber(S.val)or + S.sym=="/"and (tonumber(S.reg)or 0)/tonumber(S.val)or -1 end S.sym="=" S.reg=false - if S.val==600+26 or S.val==196 or S.val==022 or S.val==942 or S.val==238 or S.val==872 or S.val==670 or S.val==114 or S.val==7023 then - S.pass=true - elseif S.val==190000+6022 then - S.pass=true - marking=nil + local v=tonumber(S.val) + if v==600+26 then S.pass=true + elseif v==022 then EGG("T022.Teatube") + elseif v==024 then EGG("S024.Sniraite") + elseif v==114 then EGG("T114.Flyz") + elseif v==127 then EGG("T127.gggf") + elseif v==196 then EGG("T196.蕴空之灵") + elseif v==238 then EGG("T238.模电") + elseif v==274 then EGG("T274.ZZZ") + elseif v==512 then EGG("T512.tatianyi") + elseif v==616 then EGG("T616.Mifu") + elseif v==655 then EGG("T655.ThTsOd") + elseif v==665 then EGG("T665.Tinko") + elseif v==722 then EGG("T0722") + elseif v==872 then EGG("T872.DIAO") + elseif v==942 then EGG("T942.思竣") + elseif v==1905 then EGG("T1905.Rinnya") + elseif v==7023 then EGG("T7023.Miya") + elseif v==190000+6022 then + S.pass,marking=true LOG.print("\68\69\86\58\87\97\116\101\114\109\97\114\107\32\82\101\109\111\118\101\100","message") SFX.play("clear") - elseif S.val==72943816 then + elseif v==72943816 then S.pass=true for name,M in next,Modes do if not modeRanks[name]then @@ -106,22 +133,22 @@ do--calculator FILE.saveUnlock() LOG.print("\68\69\86\58\85\78\76\79\67\75\65\76\76","message") SFX.play("clear_2") - elseif S.val==1379e8+2626e4+1379 then + elseif v==1379e8+2626e4+1379 then S.pass=true SCN.go("debug") - elseif S.val==34494 then + elseif v==34494 then error("This is an error testing message.") - elseif S.val==114514 or S.val==1145141919810 then + elseif v==114514 or v==1145141919810 then error("小鬼自裁请") - elseif S.val==123456789 then + elseif v==123456789 then S.reg=123456789 - S.val=987654321 + v=987654321 end end elseif k=="escape"then - S.val,S.reg,S.sym=0 + S.val,S.reg,S.sym="0" elseif k=="delete"then - S.val=0 + S.val="0" elseif k=="space"and S.pass then SCN.back() end