赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 4953 |
最后登录 | 2016-10-22 |
在线时间 | 129 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 129 小时
- 注册时间
- 2010-8-19
- 帖子
- 33
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
前几天想写一个关于24点算法的小游戏,今天调试了很多次,也改了很多地方,但还是有问题,花了很长时间还是没找到怎么错了,实在是无能了,所以就只有找各位大神求助啦。因为没有加上括号所以运算都是从左到右运算,实例中另四个数分别为8,7,3,3, @number_=[8,7,3,3] 运算错误见图片
不管怎么样,先谢谢啦。先贴出脚本。
- class Moni
- def main
- $data_actors = load_data("Data/Actors.rxdata")
- $data_classes = load_data("Data/Classes.rxdata")
- $data_skills = load_data("Data/Skills.rxdata")
- $data_items = load_data("Data/Items.rxdata")
- $data_weapons = load_data("Data/Weapons.rxdata")
- $data_armors = load_data("Data/Armors.rxdata")
- $data_enemies = load_data("Data/Enemies.rxdata")
- $data_troops = load_data("Data/Troops.rxdata")
- $data_states = load_data("Data/States.rxdata")
- $data_animations = load_data("Data/Animations.rxdata")
- $data_tilesets = load_data("Data/Tilesets.rxdata")
- $data_common_events = load_data("Data/CommonEvents.rxdata")
- $data_system = load_data("Data/System.rxdata")
- $game_temp = Game_Temp.new
- $game_system = Game_System.new
- $game_switches = Game_Switches.new
- $game_variables = Game_Variables.new
- $game_self_switches = Game_SelfSwitches.new
- $game_screen = Game_Screen.new
- $game_actors = Game_Actors.new
- $game_party = Game_Party.new
- $game_troop = Game_Troop.new
- $game_map = Game_Map.new
- $game_player = Game_Player.new
- @number_s=["+","-","*","/"]##加减乘除
- @number_=[]#####四个数字存放
- @show_=[]###显示数字
- @break_=0###全部中断循环(满足一个相加减乘除等于24就跳出循环等待按键)
- for i in 0..3###
- @show_[i]=Sprite.new
- @show_[i].bitmap= Bitmap.new(40,40)
- @show_[i].bitmap.draw_text(0,0,40,40,(@number_[i]=(rand(9)).to_i).to_s)
- @show_[i].x=100+20*i
- @show_[i].y=200
- end
- @number_=[8,7,3,3]
- Graphics.transition
- loop do
- Graphics.update
- Input.update
- update
- if $scene!=self
- break
- end
- end
- Graphics.freeze
- for i in 0..3
- @show_[i].dispose
- @shoe_[i].bitmap.dispose
- end
- end
- def update
- if Input.trigger?(Input::C)
- @break_=0
- for i in 0..3
- @show_[i].bitmap.clear
- # @show_[i].bitmap.draw_text(0,0,40,40,(@number_[i]=rand(9)).to_s)
- @show_[i].bitmap.draw_text(0,0,40,40,(@number_[i].to_s))
- end
- @i=0##第一个数循环下标
- @j=0##第二个数循环下标
- @n=0##第三个数循环下标
- @m=0##第四个数循环下标
- @i_=0##第一个数
- @j_=0##第二个数
- @n_=0##第三个数
- @m_=0##第四个数
- @re=0#计算总数
- @re__=0####输出第三个数前@re结果保存(复位)
- @re___=0##输出第四个数前@re结果保存
- @re_=0##输出第二个数前@re结果保存
- @ij_=0##数1和数2的运算
- @jm_=0##数2和数3的运算
- @mn_=0##数3和数4的运算
- for @i in 0..3#第一个数的输入
- if @break_==1##当结果为24时中断
- break
- end
- @i_=@number_[@i]
- @re_=@i_
- @re=@re_#记录数据(第二个数以前的算数结果)
- for @j in 0..3#第二个数的输入
- if @break_==1
- break
- end
- @j_=@number_[@j]
- if @j!=@i #第一个数不等于第二个数
- for @su_ in 0..3##################################第一次运算
- if @break_==1
- break
- end
- @j__=1###记录此时除数为0同@n__、@m__
- @ij_=@number_s[@su_]##保留算式(+、-、*、/)
- case @su_
- when 0 ##为加法
- @re=@re+@j_
- when 1 ##为减法
- @re=@re-@j_
- when 2 ##为乘法
- @re=@re*@j_
- when 3 ##为除法
- if @j_!=0##除数不为零
- @re=@re/@j_##@re为计算结果
- else
- @re=0
- @j__=0
- end
- end
- @re__=@re#########################记录数据(第三个数以前的算数结果)
- for @m in 0..3##第三个数输入
- if @break_==1
- break
- end
- @m_=@number_[@m]
- if @m!=@j&&@m!=@i
- for @su__ in 0..3#########################第二次运算
- if @break_==1
- break
- end
- @m__=1
- @jm_=@number_s[@su__]
- case @su__
- when 0
- @re=@m_+@re
- when 1
- @re=@re-@m_
- when 2
- @re=@m_*@re
- when 3
- if @m_!=0
- @re=@re/@m_
- else
- @re=0
- @m__=0
- end
- end
- @re___=@re##################记录数据(第四个数以前的算数结果
- for @n in 0..3###第四个数的输入
- if @break_==1
- break
- end
- @n_=@number_[@n]
- if @n!=@m&&@n!=@i&&@n!=@j
- for @su___ in 0..3#################第三次运算
- @n__=1
- @mn_=@number_s[@su___]
- case @su___
- when 0
- @re=@re+@n_
- when 1
- @re=@re-@n_
- when 2
- @re=@re*@n_
- when 3
- if @n_!=0
- @re=@re/@n_
- else
- @re=0
- @n__=0
- end
- end
- if @j__==0||@n__==0||@m__==0##(如果有0为被除数的话就直接另结果为0)
- @re=0
- end
- if @re==24###结果为24时输出计算过程
- if @result_!=nil
- @result_.dispose
- @result_.bitmap.clear
- @re
- end
- @result_ = Sprite.new
- @result_.bitmap = Bitmap.new(640,480)
- @result_.bitmap.draw_text(100,100,640,480,@i_.to_s+@ij_.to_s+@j_.to_s+@jm_.to_s+@m_.to_s+@mn_.to_s+@n_.to_s)
- @result_.x=100
- @result_.y=100
- @break_=1
- break
- else
- if @su___!=3||@n!=3
- @re=@re___
- elsif (@su___==3&&@n==3&&@m!=3)||(@su___==3&&@n==3&&@su__!=3)
- @re=@re__
- elsif (@su__==3&&@m==3&&@j!=3)||(@su__==3&&@m==3&&@su_!=3)
- @re=@re_
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
复制代码
24.rar
(228.73 KB, 下载次数: 6)
写的有点乱,如果有什么我写的不清楚的地方,就提出来,谢谢啦! |
|