diff --git a/debug-j2138-2.rb b/debug-j2138-2.rb index 8a37b61..0c84ba1 100755 --- a/debug-j2138-2.rb +++ b/debug-j2138-2.rb @@ -7,12 +7,14 @@ # 間違っている部分を修正してください。 gyou = 1 +mae = 0 while gyou <= 9 - retsu = 1 - printf("%2d | ", retsu) + retsu =1 + printf("%2d | ", retsu+mae) while retsu <= 9 printf("%4d ", (retsu+=1)*gyou) end gyou += 1 puts + mae+=1 end diff --git a/grupu/RPG.rb b/grupu/RPG.rb new file mode 100644 index 0000000..09e7ec1 --- /dev/null +++ b/grupu/RPG.rb @@ -0,0 +1,970 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +require 'csv' + +class RPG + def initialize + @@story = {"ゲーム説明" => ["ゲーム説明","このゲームはメニューで行動を選択して遊びます", + "ステータスを見る・宿屋へ行く・武器屋へ行く・教会へ行く・探索へ行くの中から好きなのを選びます", + "ステータスを見るは今の自分のステータスを見ることができます", + "HP=体力 MP=魔力・魔法防御力 ATS=攻撃力 MAT=魔法攻撃力 DEF=防御力 DEX=素早さ AGI=器用さ LUK=運", + "宿屋はGを支払うとHP・MPが回復します", + "武器屋は武器・防具を購入することができます", + "教会はセーブをすることができます", + "探索は魔物の生息地に行き 戦いをします", + "戦いは行動を選択して魔物を倒します", + "死んでしまったら'GAMEOVER'でGを失い村・街からやり直しです", + "目標は魔王を倒すこと!", + "じゃぁクリア目指して頑張ってね", + "※このゲームは共同制作作品です"], + + "クレジットタイトル" => ["クレジットタイトル(スタッフロール)","システム","村井侑平 澤田羽衣", + "システムアドバイザー","佐藤隆之助 阿部光峻", + "広瀬雄二様 東北公益文科大学の皆様", + "シナリオ","村井侑平 高橋真翔 佐藤風斗 佐藤然", + "シナリオアドバイザー","佐藤隆之助 澤田羽衣 疋田琉莉 阿部光峻", + "グラフィック","村井侑平", + "この作品に関わった すべての方に感謝の意を申し上げます", + "制作","「#みんなでゲームを作ろう」の会"], + + "目覚め" => ["\e[96m_me_:う、うっ", + "\e[96;2m(強い頭痛を感じ_jibun_は意識を失った)", + "\e[96;2m(目覚めると そこは見知らぬ村だった)", + "\e[96m_me_:こ、ここは どこ?", + "\e[96;2m(その瞬間すべてを思い出した)", + "\e[96;2m(剣術や魔法 世界のことわり)", + "\e[96;2m(そして魔王を倒さなければ ならないという強い使命感を覚えた)", + "\e[96m_me_:魔王を倒さなければ", + "\e[96m_me_:なぜだか わからないけど そんな気がする", + "\e[96m_me_:あっ そして ここは どこなんだろう", + "\e[96,2m(近くの村人らしき男の人に声をかけた)", + "\e[96m_me_:すみません ここが どこか わかりますか", + "\e[2m村人:何いってるんだい?", + "\e[2m村人:ここは「パクス村」ディーヴァス川のほとりにある小さな農村さ", + "\e[2m村人:ここが初めてなら注意しておくけど「ポルタ平原」には魔物が出るから用意なしには行くなよ", + "\e[2m村人:最近プリーンビーストロードってのが現れて魔物が増えたんだけどな", + "\e[2m村人:森にも近づけなくて困ってるんだよ", + "\e[2m村人:まぁ旅 人なら宿屋で休んでいきな", + "\e[96m_me_:あっ _jibun_ お金持ってないんですけど", + "\e[2m村人:なんだお前さん一文無しかよ", + "\e[2m村人:しかたねーなー ここで会ったのも何かの縁だ", + "\e[2m村人:30Gやるから あとは魔物でも倒して自分で稼げ", + "(_me_は村人から30Gをもらった)", + "\e[2m村人:じゃぁな", + "\e[96,2m(_me_:とりあえずポルタ平原を探索しようかな)"], + + "プリーンビーストロード戦闘前" => ["\e96m_me_:うわっ", + "\e[96,2m(_jibun_の2倍ほどの四足歩行の巨体が姿を現した)", + "\e[91mプリーンビーストロード:@※ ※※ &※ &@ ×@ @& @%゛$$ ¥※ ※※ #%", + "\e[91mプリーンビーストロード:×% △& @%゛□$ △$ $% %$"], + + "プリーンビーストロード勝利後" => ["\e[96m_me_:今のが\e[91mプリーンビーストロード\e[96mかな", + "\e[96m_me_:死ぬかと思った...", + "\e[96m_me_:この辺りで できることは もうあんまりないし", + "\e[96m_me_:最寄りの町に移動しようかな", + "(パクス村を出てしばらくして)", + "\e[96m_me_:あっ 村だ", + "\e[96,2m(近くに見えた村人らしき女の人に声をかけた)", + "\e[96m_me_:すみません 最寄りの町への道を教えてほしいんですが", + "\e[2m村人:ここから一番近いのは北東に行った先の鉱山都市〇〇だよ", + "\e[2m村人:でも強力な魔物が住み着いちまったみたいで 道中は危険だよ", + "\e[2m村人:かと言って他の町は馬車で一月かかるんだよな", + "\e[2m村人:魔物が住んじまったせいで踏んだり蹴ったりだよ", + "\e[2m村人:しばらく居るつもりなら歓迎するよ", + "\e[2m村人:ここは〇〇村 森の中の小さな農村だよ", + "(そう言って村人は去っていった)", + "\e[96,2m(_me_:町に行くためには無理にでも森を抜けないとな)"] + } + + x = ["たいあたり"],["たいあたり"]*2+["突進"],["突進"],["魔法:闇の刃"],["たいあたり"]*2+["突進"],["魔法:飛礫"]*3+["たいあたり"]+["突進"]*7,["ヒール"]+["たいあたり"]*2,["パンチ"]*3,["魔法:リーフカッター"],["パンチ"]*13+["魔法:リーフカッター"]*6+["回復:ヒール"] + e = CSV.read("enemy.csv",:headers => true,:converters => :numeric) + for i in e["name"] + i.gsub!("|","\e") + end + n = e["name"] + hP = e["HP"] + mP = e["MP"] + aTS = e["ATS"] + mAT = e["MAT"] + dEF = e["DEF"] + mDF = e["MDF"] + dEX = e["DEX"] + aGI = e["AGI"] + lUK = e["LUK"] + g = e["G"] + eXP = e["EXP"] + + @@enemy = {"name" => n, + "HP" => hP, + "MAXHP" => hP, + "MP" => mP, + "MAXMP" => mP, + "ATS" => aTS, + "MAT" => mAT, + "DEF" => dEF, + "MDF" => mDF, + "DEX" => dEX, + "AGI" => aGI, + "LUK" => lUK, + "G" => g, + "EXP" => eXP} + + @@enemy["攻撃"] = x + @@enemy["エンカウント数"] = [0]*@@enemy["name"].length + @@enemy["勝利数"] = [0]*@@enemy["name"].length + @@enemy["敗北数"] = [0]*@@enemy["name"].length + + @@probability = [0]*99 + [4],[0]*67 + [2]*30 + [4]*3,[0]*45 + [2]*40 + [3]*20 + [4]*5,[0]*7 + [2]*65 + [3]*20 + [4]*8 + + @@choices = {"プレイetc" => ["はじめから","つづきから","ゲーム説明","クレジットタイトル"], + "ロード" => ["ロードする","タイトルに戻る"], + "性別" => ["男","女"], + "一人称" => ["俺","僕","私"], + "メニュー" => ["ステータスを見る","アイテムを見る","装備を見る","宿屋に行く","武器屋に行く","アイテムショップに行く","教会に行く","探索に行く"], + "使うor使わない" => ["使う","使わない"], + "宿屋" => ["泊まる10G","泊まらない"], + "教会" => ["祈りを捧げる[セーブ]"], + "バトル" => ["攻撃","アイテム","逃げる"], + "進むor戻る" => ["深部に進む","拠点に戻る"] + } + + @item = [] + + @@itemlist = [] + + @area = ["エリア1:ポルタ平原"] + + @attack = ["剣技:スラッシュ"] + + @@attack_list = {"剣技:スラッシュ" => [1,0,3,0],"たいあたり" => [2,1,1,0],"突進" => [3,1,0,0], + "魔法:闇の刃" => [3,0,2,0,0],"魔法:飛礫" => [3,0,3,2,1], + "魔法:マジックミサイル" => [1,0,1,0,1],"パンチ" => [1,1,2,3], + "剣技:疾風斬り" => [2,0,2,1],"魔法:ファイアーボール" => [3,0,3,0,0], + "回復:ヒール" => [5,5],"魔法:リーフカッター" => [3,0,3,1,0], + "Command:何もしない" => nil, + "回復Command:Soul Regeneration" => [10000,0], + "攻撃Command:Delete Life" => [10000,0,10000,10000] #<=管理者特権 + } + + @@skill = CSV.read("skill.csv",:headers => true) + @attack_ckeck = [0,0,-1,-1] + + @@shop_list = ["薬草",5,0],["傷薬",10,1],["マジックポーション",20,2],["MPポーション",20,2] + @@item_list = {"薬草" => [5,0], + "傷薬" => [10,0], + "マジックポーション" => [15,5], + "MPポーション" => [0,20]} + @sobi = [0,0] + @@sobi_list = {"武器:木刀" => [],"防具:木製の防具" => []} + + @@pass = {"スーパーアカウント" => ["\e[93m\"ADMINISTRATOR\"\e[m","\e[92m\"HEALER\"\e[m"], + "管理者" => ["管理者","administrator","ADMINISTRATOR"], + "ヒーラー" => ["ヒーラー","HEALER","healer"]} + + @@key = ["name","性別","一人称","Lv","EXP","処理用EXP","前回のLvUP必要EXP","G","HP","MAXHP","MP","MAXMP","ATS","MAT","DEF","DEX","AGI","LUK","バトル数","勝利数","敗北数","逃走数"] + + end + + def question(choices,mold) + kaisu = 0 + select = -1 + if mold == "hyozi" + while kaisu < choices.length + printf("%s ",choices[kaisu]) + print("\e[m") + kaisu += 1 + end + else + while kaisu < choices.length + printf("%s(%d) ",choices[kaisu],kaisu) + print("\e[m") + kaisu += 1 + end + end + print("\n") + while select < 0 || select >= choices.length #回答の仕分け + print("選択:") + select = gets.chomp + if select == "" || check(select) == false + redo + end + select = select.to_i + end + if mold == "moji" + @select = choices[select] + return choices[select] + elsif mold == "suji" + @select = select + return select + else + puts"questionメソッドでスペルミスしてるようだ" + end + end + + def talk(story,mold = "置き換え") + print("\n") + if not story == "なし" + if mold == "置き換え" + for i in @@story[story] + puts(i.gsub("_me_",@status["name"]) + .gsub("_jibun_",@status["一人称"]) + .gsub("_seibetu_",@status["性別"]) + ) + print("\e[m") + gets + end + elsif mold == "読み上げ" + for i in @@story[story] + puts i + print("\e[m") + gets + end + end + end + end + + def check(h) + number = ["1","2","3","4","5","6","6","7","8","9","0"] + x = h.split("") + n = 0 + for i in x + if false == number.include?(x[n]) + return false + end + n += 1 + end + return true + end + + + def first + while true + question(@@choices["プレイetc"],"moji") + if @select == "はじめから" + print("\n") + puts("初期設定"+"="*42) + print("\n") + puts("PLの名前を決めてください") + name = "" + while name == "" + print("name…") + name = gets.chomp + if @@pass["管理者"].include?(name) == true + @status = {"Lv" => "\e[93m\"ADMINISTRATOR\"\e[m", + "EXP" => 0, + "処理用EXP" => 0, + "LvUP必要EXP" => 8, + "前回のLvUP必要EXP" => 0, + "G" => 100000000, + "HP" => 100000000, + "MP" => 100000000, + "ATS" => 100000000, + "MAT" => 100000000, + "DEF" => 100000000, + "MDF" => 100000000, + "DEX" => 100000000, + "AGI" => 100000000, + "LUK" => 100000000 + } + @attack << "Command:何もしない" + @attack << "攻撃Command:Delete Life" + puts('コード"管理者"を認証しました') + puts("スーパーアカウントの使用を許可します") + x = "OK" + redo + + elsif @@pass["ヒーラー"].include?(name) == true + @status = {"Lv" => "\e[92m\"HEALER\"\e[m", + "EXP" => 0, + "処理用EXP" => 0, + "LvUP必要EXP" => 8, + "前回のLvUP必要EXP" => 0, + "G" => 30, + "HP" => 100000000, + "MP" => 3, + "ATS" => 8, + "MAT" => 5, + "DEF" => 5, + "MDF" => 3, + "DEX" => 20, + "AGI" => 15, + "LUK" => 1 + } + @attack << "Command:何もしない" + @attack << "回復Command:Soul Regeneration" + puts('コード"ヒーラー"を認証しました') + puts("スーパーアカウントの使用を許可します") + x = "OK" + redo + end + end + + if x.nil? == true + @status = {"Lv" => 1, + "EXP" => 0, + "処理用EXP" => 0, + "LvUP必要EXP" => 8, + "前回のLvUP必要EXP" => 0, + "G" => 30, + "HP" => 20, + "MP" => 3, + "ATS" => 8, + "MAT" => 5, + "DEF" => 5, + "MDF" => 3, + "DEX" => 20, + "AGI" => 15, + "LUK" => 1 + } + end + @status["name"] = name + @status["バトル数"] = 0 + @status["勝利数"] = 0 + @status["敗北数"] = 0 + @status["逃走数"] = 0 + @status["MAXHP"] = @status["HP"] + @status["MAXMP"] = @status["MP"] + print("\n") + puts("性別を決めてください") + @status["性別"] = question(@@choices["性別"],"moji") + print("\n") + puts("一人称を決めてください") + @status["一人称"] = question(@@choices["一人称"],"moji") + talk("目覚め") + menu + + elsif @select == "つづきから" + redo + puts("セーブデータが ない場合はプログラムが強制終了されますが よろしいですか") + question(@@choices["ロード"],"moji") + if @select == "タイトルに戻る" + redo + end + data = CSV.read("RPG.csv") + @status = data["ステータス"] + @item = data["アイテム"] + menu + elsif @select == "ゲーム説明" + talk("ゲーム説明","読み上げ") + + elsif @select == "クレジットタイトル" + talk("クレジットタイトル","読み上げ") + + end + end + end + + def display + print("\n") + puts("="*50) + printf("name:%s Lv.%s ",@status["name"],@status["Lv"]) + if @status["EXP"].nil? == false + printf("EXP:%d %dG\n",@status["EXP"],@status["G"]) + printf("HP:%d/%d MP:%d/%d",@status["HP"],@status["MAXHP"],@status["MP"],@status["MAXMP"]) + else + print("%sG\n",@status["G"]) + print("HP:%s MP:%s",@status["HP"],@status["MP"]) + end + printf("ATS:%s MAT:%s DEF:%s MDF:%s DEX:%s AGI:%s LUK:%s",@status["ATS"],@status["MAT"],@status["DEF"],@status["MDF"],@status["DEX"],@status["AGI"],@status["LUK"]) + print("\n") + puts("="*50) + print("\n") + end + + def item + print("\n") + puts("="*50) + if @item.length == 0 + puts("所持アイテムはありません") + else + while true + x = @item + ["戻る"] + question(x,"suji") + n = @select + i = x[n] + if x[n] == x[-1] + @select = "戻る" + return + end + if question(@@choices["使うor使わない"],"moji") == "使う" + @status["HP"] += @@item_list[i][0] + @status["MP"] += @@item_list[i][1] + if @status["HP"] > @status["MAXHP"] + @status["HP"] = @status["MAXHP"] + end + if @status["MP"] > @status["MAXMP"] + @status["MP"] = @status["MAXMP"] + end + @item.delete_at(n) + puts("="*50) + print("\n") + break + else + redo + end + end + end + puts("="*50) + print("\n") + end + + def kyoukai + return + question(@@choices["教会"]+["戻る"],"moji") + if @select == "祈りを捧げる[セーブ]" + print("Praying(Saving)") + dot(["."]*3,1) + + items = @item.join("/") + + data = [] + n = 0 + for i in @@key + data << @status[i] + end + data << items + p data + CSV.open("RPG.csv","w") do |c| + data.each{|row| c << row} + end + + elsif @select == "戻る" + return + end + end + + def yadoya + puts("宿屋の主人:一泊10Gだよ") + if question(@@choices["宿屋"],"moji") == "泊まる10G" + if not @status["G"] >= 10 + puts("宿屋の主人:お前 金持ってないのか!?") + puts("宿屋の主人:冷やかしは帰れ!!") + return + else + @status["G"] -= 10 + end + @status["HP"] = @status["MAXHP"] + @status["MP"] = @status["MAXMP"] + print("Sleeping") + dot(["."]*3,1) + print("\n") + else + puts("宿屋の主人:なんだ 泊まんねーのかよ") + end + end + + def item_shop + puts("店の店主:どれを買う?") + x = 0 + a = [] + b = [] + for i in @area + y = /クリア/ !~ i + if y == false + x += 1 + end + end + for i in @@shop_list + if i[2] <= x + a << i[0] + b << i[1] + end + end + question(a+["戻る"],"suji") + if @select == a.length + return + end + if @status["G"] >= b[@select] + @status["G"] -= b[@select] + @item << a[@select] + puts("店の店主:ありがとな また買ってくれ") + else + puts("店の店主:こら お金もないのに 買うと言わない!") + end + end + + def dot(dot,matu) + for i in dot + print i + sleep(matu) + end + end + + def tansaku + x = @area + ["戻る"] + select = question(x,"moji") + if select == "エリア1:ポルタ平原" + battle(0,3,select,5,"プリーンビーストロード戦闘前","プリーンビーストロード勝利後") + end + end + + def encounter(list) + return list[rand(list.length)] + end + + def battle(s,e,area,boss,t1,t2) + for n in @@probability[s..e] + @teki = encounter(n) + sleep(rand(40)/10) + @status["バトル数"] += 1 + @@enemy["エンカウント数"][@teki] += 1 + game + if @result == "勝ち" + print("\n") + printf("%s\e[mに勝った!\n",@@enemy["name"][@teki]) + print("\n") + x = @@enemy["EXP"][@teki] + ((@@enemy["EXP"][@teki]/10).floor * (rand(3) + 1) + (rand(3) + 1)) + @status["EXP"] += x + @status["処理用EXP"] += x + @status["G"] += @@enemy["G"][@teki] + ((@@enemy["G"][@teki]/10).floor * (rand(3) + 1) + (rand(3) + 1)) + @status["勝利数"] += 1 + @@enemy["勝利数"][@teki] += 1 + level + elsif @result == "負け" + gameovre #GAMEOVREのメソッド + @status["HP"] = @status["MAXHP"] #HP全快 + @status["MP"] = @status["MAXMP"] #MP全快 + @status["G"] -= ((@status["G"]/10).floor + 10)#Gを減らす + if @status["G"] < 0 #Gが0未満になった場合 + @status["G"] = 0 + end + @status["敗北数"] += 1 + @@enemy["敗北数"][@teki] += 1 + return + elsif @result == "逃走" + @status["逃走数"] += 1 + return + end + question(@@choices["進むor戻る"],"moji") + if @select == "拠点に戻る" + return + end + end + x = /クリア/ !~ area + if false == x + puts("もう先には行けなさそうだ") + return + end + puts("この先から禍々しい気配がする") + question(@@choices["進むor戻る"],"moji") + if @select == "深部に進む" + @teki = boss + talk(t1) + game + if @result == "勝ち" + print("\n") + printf("%sの主 %s\e[mに勝った!\n",area,@@enemy["name"][@teki]) + print("\n") + x = @@enemy["EXP"][@teki] + ((@@enemy["EXP"][@teki]/10).floor * (rand(3) + 1) + (rand(3) + 1)) + @status["EXP"] += x + @status["処理用EXP"] += x + @status["G"] += @@enemy["G"][@teki] + ((@@enemy["G"][@teki]/10).floor * (rand(3) + 1) + (rand(3) + 1)) + @status["勝利数"] += 1 + @@enemy["勝利数"][@teki] += 1 + level + elsif @result == "負け" + gameovre #GAMEOVREのメソッド + @status["HP"] = @status["MAXHP"] #HP全快 + @status["MP"] = @status["MAXMP"] #MP全快 + @status["G"] -= ((@status["G"]/5).floor + 30)#Gを減らす + if @status["G"] < 0 #Gが0未満になった場合 + @status["G"] = 0 + end + @status["敗北数"] += 1 + @@enemy["敗北数"][@teki] += 1 + return + end + talk(t2) + addition(area) + end + end + + def gameovre + puts("GAMEOVER") + picture = spawn "display -geometry +0+0 gameover.png" + gets + Process.kill(:INT,picture) + end + + def syouhai + if @@enemy["HP"][@teki] <= 0 || @status["HP"] <= 0 || @result == "逃走" + return true + end + return false + end + + def game + print("戦闘") + dot(["="]*20,0.01) + print("\n") + @@enemy["HP"][@teki] = @@enemy["MAXHP"][@teki] + printf("%s\e[mが現れた",@@enemy["name"][@teki]) + turn = rand(2) + @result = "戦闘" + while true + if @status["DEX"] > @@enemy["DEX"][@teki] + myturn + if syouhai == true + break + end + enemyturn + elsif @status["DEX"] < @@enemy["DEX"][@teki] + enemyturn + if syouhai == true + break + end + myturn + elsif @status["DEX"] == @@enemy["DEX"][@teki] + if ture == 0 + myturn + if syouhai == true + break + end + enemyturn + else + enemyturn + if syouhai == true + break + end + myturn + end + end + if syouhai == true + break + end + end + if @status["HP"] <= 0 + @result = "負け" + elsif @@enemy["HP"][@teki] <= 0 + @result = "勝ち" + end + end + + def enemyturn + @turn = "敵" + x = ["攻撃","剣技","魔法","魔剣","回復"] + @waza = encounter(@@enemy["攻撃"][@teki]) + type = x.index(@waza[0..1]) + puts @waza + if type == 2 + magic + elsif type == 3 + magic_sword + elsif type == 4 + heal + else + sword + end + end + + def sword + if @turn == "敵" + @damage = @@enemy["ATS"][@teki] + @@attack_list[@waza][0] - ((@status["DEF"] / 2).floor) + @@enemy["HP"][@teki] -= @@attack_list[@waza][1] + if @damage <= 0 + @damae = 0 + @damage += 1 + @damage += (@@attack_list[@waza][0]/10).floor + end + if rand((@@enemy["AGI"][@teki]*2+@@enemy["DEX"][@teki]+@@enemy["LUK"][@teki]/2).floor*2)+@@attack_list[@waza][-2] > rand(((@status["DEX"]*2+@status["AGI"]+@status["LUK"]/2).floor/2).floor) + if rand(((@@enemy["AGI"][@teki]*2+@@enemy["DEX"][@teki]+@@enemy["LUK"][@teki]/2).floor/4).floor)+@@attack_list[@waza][-1] > rand((@status["DEX"]*2+@status["AGI"]+@status["LUK"]/2).floor) + @damage = (@damage*1.5).floor + end + @status["HP"] -= @damage + else + @damage = 0 + end + elsif @turn == "PL" + @damage = @status["ATS"] + @@attack_list[@waza][0] - ((@@enemy["DEF"][@teki] / 2).floor) + @status["HP"] -= @@attack_list[@waza][1] + if @damage <= 0 + @damage = 0 + @damage += 1 + @damage += (@@attack_list[@waza][0]/10).floor + end + if rand((@status["AGI"]*2+@status["DEX"]+@status["LUK"]/2).floor*2)+@@attack_list[@waza][-2] > rand(((@@enemy["DEX"][@teki]*2+@@enemy["AGI"][@teki]+@@enemy["LUK"][@teki]/2).floor/2).floor) + if rand(((@status["AGI"]*2+@status["DEX"]+@status["LUK"]/2).floor/4).floor)+@@attack_list[@waza][-1] > rand((@@enemy["DEX"][@teki]*2+@@enemy["AGI"][@teki]+@@enemy["LUK"][@teki]/2).floor) + @damage = (@damage*1.5).floor + end + else + @damage = 0 + end + @@enemy["HP"][@teki] -= @damage + end + process + end + + def magic + mp = @@attack_list[@waza][2] + rand(4) + if @turn == "敵" + if mp > @@enemy["MP"][@teki] + mp = @@attack_list[@waza][2] + end + if mp > @@enemy["MP"][@teki] + mp = @@enemy["MP"][@teki] + end + @damage = @@enemy["MAT"][@teki] * ((mp/2).floor +1) + @@attack_list[@waza][0] - (@status["MDF"]/3).floor - (@status["MP"]/5).floor + @@enemy["MP"][@teki] -= mp + @@enemy["HP"][@teki] -= @@attack_list[@waza][1] + if @damage <= 0 + @damage = 0 + @damage += 1 + @damage += (@@attacl_list[@waza][0]/10).floor + end + if rand((@@enemy["AGI"][@teki]*2+@@enemy["DEX"][@teki]+@@enemy["LUK"][@teki]/2).floor*2)+@@attack_list[@waza][-2] > rand(((@status["DEX"]*2+@status["AGI"]+@status["LUK"]/2).floor/2).floor) + if rand(((@@enemy["AGI"][@teki]*2+@@enemy["DEX"][@teki]+@@enemy["LUK"][@teki]/2).floor/4).floor)+@@attack_list[@waza][-1] > rand((@status["DEX"]*2+@status["AGI"]+@status["LUK"]/2).floor) + @damage = (@damage*1.5).floor + end + @status["HP"] -= @damage + else + @damage = 0 + end + + elsif @turn == "PL" + if mp > @status["MP"] + mp = @@attack_list[2] + end + if mp > @status["MP"] + mp = @status["MP"] + end + @damage = @status["MAT"] * ((mp/2).floor +1) + @@attack_list[@waza][0] - (@@enemy["MDF"][@teki]/3).floor - (@@enemy["MP"][@teki]/5).floor + @status["MP"] -= mp + @status["HP"] -= @@attack_list[@waza][1] + if @damage <= 0 + @damage = 0 + @damage += 1 + @damage += (@@attacl_list[@waza][0]/10).floor + end + if rand((@status["AGI"]*2+@status["DEX"]+@status["LUK"]/2).floor*2)+@@attack_list[@waza][-2] > rand(((@@enemy["DEX"][@teki]*2+@@enemy["AGI"][@teki]+@@enemy["LUK"][@teki]/2).floor/2).floor) + if rand(((@status["AGI"]*2+@status["DEX"]+@status["LUK"]/2).floor/4).floor)+@@attack_list[@waza][-1] > rand((@@enemy["DEX"][@teki]*2+@@enemy["AGI"][@teki]+@@enemy["LUK"][@teki]/2).floor) + @damage = (@damage*1.5).floor + end + else + @damage = 0 + end + @@enemy["HP"][@teki] -= @damage + end + process + end + + def magic_sword + mp = @@attack_list[@waza][2] + rand(4) + if @turn == "敵" + if mp > @@enemy["MP"][@teki] + mp = @@attack_list[@waza][2] + end + if mp > @@enemy["MP"][@teki] + mp = @@enemy["MP"][@teki] + end + @damage = ((@@enemy["MAT"][@teki]/3).floor + (@@enemy["ATS"][@teki]/2).floor) * ((mp/2).floor +1) * (@@attack_list[@waza][0]/5).floor - (@status["MDF"]/5).floor - (@status["MP"]/8).floor - (@status["DEF"]/3).floor + @@enemy["MP"][@teki] -= mp + @@enemy["HP"][@teki] -= @@attack_list[@waza][1] + if @damage <= 0 + @damage = 0 + @damage += 1 + @damage += (@@attacl_list[@waza][0]/10).floor + end + if rand((@@enemy["AGI"][@teki]*2+@@enemy["DEX"][@teki]+@@enemy["LUK"][@teki]/2).floor*2)+@@attack_list[@waza][-2] > rand(((@status["DEX"]*2+@status["AGI"]+@status["LUK"]/2).floor/2).floor) + if rand(((@@enemy["AGI"][@teki]*2+@@enemy["DEX"][@teki]+@@enemy["LUK"][@teki]/2).floor/4).floor)+@@attack_list[@waza][-1] > rand((@status["DEX"]*2+@status["AGI"]+@status["LUK"]/2).floor) + @damage = (@damage*1.5).floor + end + @status["HP"] -= @damage + else + @damage = 0 + end + elsif @turn == "PL" + if mp > @status["MP"] + mp = @@attack_list[@waza][2] + end + if mp > @status["MP"] + mp = @status["MP"] + end + @damage = (@status["MAT"]/3).floor + (@status["ATS"]/2).floor * ((mp/2).floor +1) * (@@attack_list[@waza][0]/5).floor - (@@enemy["MDF"][@teki]/5).floor - (@@enemy["MP"][@teki]/8).floor - (@@enemy["DEF"]/3).floor + @status["MP"] -= mp + @status["HP"] -= @@attack_list[@waza][1] + if @damage <= 0 + @damage = 0 + @damage += 1 + @damage += (@@attacl_list[@waza][0]/10).floor + end + if rand((@status["AGI"]*2+@status["DEX"]+@status["LUK"]/2).floor*2)+@@attack_list[@waza][-2] > rand(((@@enemy["DEX"][@teki]*2+@@enemy["AGI"][@teki]+@@enemy["LUK"][@teki]/2).floor/2).floor) + if rand(((@status["AGI"]*2+@status["DEX"]+@status["LUK"]/2).floor/4).floor)+@@attack_list[@waza][-1] > rand((@@enemy["DEX"][@teki]*2+@@enemy["AGI"][@teki]+@@enemy["LUK"][@teki]/2).floor) + @damage = (@damage*1.5).floor + end + else + @damage = 0 + end + @@enemy["HP"][@teki] -= @damage + end + process + end + + def heal + mp = @@attack_list[@waza][1] + rand(4) + if @turn == "敵" + if mp > @@enemy["MP"][@teki] + mp = @@attack_list[@waza][1] + end + if mp > @@enemy["MP"][@teki] + mp = @@enemy["MP"][@teki] + end + @damage = @@attack_list[@waza][0] + mp + rand(4) + @@enemy["HP"][@teki] += @smgw + if @@enemy["HP"][@teki] > @@enemy["MAXHP"][@teki] + @@enemy["HP"][@teki] = @@enemy["MAXHP"][@teki] + end + elsif @turn == "PL" + if mp > @status["MP"] + mp = @@attack_list[@waza][1] + end + if mp > @status["MP"] + mp = @status["MP"] + end + @damage = @@attack_list[@waza][0] + mp + rand(4) + @status["HP"] += @damage + if @status["HP"] > @status["MAXHP"] + @status["HP"] = @status["MAXHP"] + end + end + process("回復") + end + + def myturn + display + while true + question(@@choices["バトル"],"moji") + if @select == "攻撃" + x = @attack + ["戻る"] + @waza = question(x,"moji") + if @waza == "戻る" + redo + end + puts @waza + @turn = "PL" + x = ["攻撃","剣技","魔法","魔剣","回復"] + if not @waza == "Command:何もしない" + type = x.index(@waza[0..1]) + if type == 2 + magic + elsif type == 3 + magic_sword + elsif type == 4 + heal + else + sword + end + end + print("\n") + return + elsif @select == "アイテム" + item + if not @select == "戻る" + break + end + elsif @select == "逃げる" + x = /ボス/ !~ @@enemy["name"][@teki] + if not x == false + if rand((@status["DEF"] + @status["LUK"])*2) > rand(@@enemy["DEX"][@teki]+@@enemy["LUK"][@teki]) + puts("逃げ切れた") + @result = "逃走" + return + else + puts("逃げ切れなかった") + return + end + else + puts("逃げ切れなかった") + return + end + end + end + end + + def level + if not @status["Lv"] == 99 && @@pass["スーパーアカウント"].include?(@status["Lv"]) == true + while 0 >= @status["LvUP必要EXP"]-@status["処理用EXP"] + puts("レベルアップ!") + @status["Lv"] += 1 + printf("Lv%s→Lv%s\n",@status["Lv"]-1,@status["Lv"]) + @status["処理用EXP"] -= @status["LvUP必要EXP"] + @status["前回のLvUP必要EXP"] = @status["LvUP必要EXP"] + @status["LvUP必要EXP"] = (@status["前回のLvUP必要EXP"]*1.1).ceil + @status["MAXHP"] = (@status["MAXHP"]*1.053).ceil + @status["MAXMP"] = (@status["MAXMP"]*1.044).ceil + @status["ATS"] = (@status["ATS"]*1.05).ceil + @status["MAT"] = (@status["MAT"]*1.035).ceil + @status["DEF"] = (@status["DEF"]*1.043).ceil + @status["MDF"] = (@status["MDF"]*1.04).ceil + @status["DEX"] = (@status["DEX"]*1.045).ceil + @status["AGI"] = (@status["AGI"]*1.045).ceil + @status["LUK"] = @status["Lv"] + if not @@skill[@status["Lv"].to_s][0] == nil + for i in @@skill[@status["Lv"].to_s] + @attack << i + end + end + if @status["Lv"] == 99 + @status["MP"] = 800 + @status["ATS"] = 120 + @status["DEF"] = 150 + @status["DEX"] = 250 + @status["AGI"] = 200 + end + end + end + display + end + + def addition(mold) + if mold == "エリア1:ポルタ平原" + @area[0] = "エリア1:ポルタ平原(クリア)" + @area[1] = "〇〇森" + end + end + + def achievement + if @@enemy["勝利数"][0]+@@enemy["勝利数"][1]*2 >= 50 + @area << "ダンジョン:スライムの巣" + @area.sort! + end + end + + def process(mold = "無") + if mold == "他" + elsif @damage == 0 + puts("ミス") + elsif mold == "回復" + printf("回復した\n",@damage) + else + printf("%dダメージ!\n",@damage) + end + end + + def menu + while true + select = question(@@choices["メニュー"],"moji") + print("\n") + if select == "ステータスを見る" + display + elsif select == "アイテムを見る" + item + elsif select == "装備を見る" + + elsif select == "宿屋に行く" + yadoya + elsif select == "武器屋に行く" + + elsif select == "アイテムショップに行く" + item_shop + elsif select == "教会に行く" + kyoukai + elsif select == "探索に行く" + tansaku + end + end + end +end + +x = RPG.new +x.first diff --git a/grupu/enemy.csv b/grupu/enemy.csv new file mode 100644 index 0000000..d2d77f4 --- /dev/null +++ b/grupu/enemy.csv @@ -0,0 +1,10 @@ +name,番号,HP,MP,ATS,MAT,DEF,MDF,DEX,AGI,LUK,G,EXP,仮name,仮HP,仮MP,仮ATS,仮MAT,仮DEF,仮MDF,仮DEX,仮AGI,仮LUK,仮G,仮EXP,コメント +リトルスライム,0,12,8,5,0,7,4,12,8,1,5,3,ダンジョンボス:[91mキングスライム,100,80,40,30,50,50,80,35,25,60,40, +スライム,1,25,12,10,8,15,10,28,18,15,12,12,|[93mゴールデンスライム,30,30,15,10,30,30,60,20,15,45,20, +デーモンビースト,2,20,5,6,0,10,7,30,10,3,10,7,メタルスライム,30,30,15,10,50,50,60,20,15,20,25, +黒い影,3,15,20,0,8,15,20,40,20,5,15,12,,,,,,,,,,,,, +|[93mリトルゴールデンスライム,4,15,15,8,0,25,25,8,8,5,30,12,ストーンゴーレム,40,40,20,20,30,25,25,30,15,20,20, +エリアボス:|[91mプリーンビーストロード,5,40,20,18,10,25,20,60,30,10,40,35,,,,,,,,,,,,, +リトルグリーンスライム,6,20,20,8,8,10,8,30,20,8,8,6,八咫烏(やたがらす),,,,,,,,,,,,三本足のからす鳥海山の神(大物忌神)の遣い +ウッドゴーレム,7,25,25,10,10,18,15,25,25,10,12,12,霊鳥,2236,,,,,,,,,,,鳥海山には霊鳥が住むと言われている +エリアボス:|[91mジャイアントウッドゴーレム,8,80,60,30,20,35,30,50,45,20,60,50,,,,,,,,,,,,, diff --git a/grupu/gameover.png b/grupu/gameover.png new file mode 100644 index 0000000..56184e8 --- /dev/null +++ b/grupu/gameover.png Binary files differ diff --git a/grupu/kiku.rb b/grupu/kiku.rb deleted file mode 100755 index a219ebf..0000000 --- a/grupu/kiku.rb +++ /dev/null @@ -1,148 +0,0 @@ -#!/usr/bin/env ruby -# -*- coding: utf-8 -*- - -osusi=[] #寿司用の配列 -agemono=[] #サイドメニュー用の配列 -okasi=[] #デザート用の配列 -saido_a=%w(0:フライドポテト 1:鶏の唐揚) -saido_b=%w(0:タコの唐揚げ 1:天ぷらセット) -dezato=%w(1:杏仁豆腐 2:かぼちゃプリン) -totta=%w(杏仁豆腐を取ったよ。 かぼちゃプリンを取ったよ。) -totta_a=%w(フライドポテトを取ったよ。 鶏の唐揚を取ったよ。) -totta_b=%w(タコの唐揚げを取ったよ。 天ぷらセットを取ったよ。) - - -def sabi(bikkuri) #デザートのときは、驚くから bikkuri引数 - puts"わさびはあるかな?・・・。" - puts"モグモグ" - sleep(1) - sabi=["わさび入りだ!ツーン!","わさび抜きだ!なあーんだ"] - srand() - n=rand(2) - printf("%s\n",sabi[n]) - if bikkuri==1 - printf("「%s」ってえーー!?なんでわさび??\n",sabi[n]) - else - #ifから抜ける - end -end - - -def matu - puts"すしはまだ流れて来ないなー" - kita=rand(2) - printf("あ!%sがながれてきたよ!\n",susi[kita]) -end - -def toru - susi=["0:マグロ","1:サーモン","2:たまご","3:マグロ","4:サーモン","5:いくら","6:エビ","7:穴子","8:たまご","9:イカ"] - puts"寿司を取る?" - toru=gets.chomp - tabeta = [] - if toru=="はい" - puts "取りたい番号をれて:" - x = gets.to_i - printf("では、%s取ります。\n",susi[x]) - sabi(2) - osusi.push(susi[x]) - else - puts"では、つぎの寿司を待ちましょう。" - end -end - - -def saido - - - puts"サイドメニューの" - puts saido_a - puts"がながれてきたよ!" - puts"サイドメニューを取る?" - puts"はい いいえ で答えてください" - toru_a=gets.chomp - - if toru_a=="はい" - print"どれを取る?:" - erabu_a=gets.to_i - puts totta_a[erabu_a] - puts"モグモグ" - sleep(1) - sabi(1) - agemono.push(saido[erabu_a]) - else - puts"では、つぎの寿司を待ちましょう。" - end - - puts"サイドメニューの" - puts saido_b - puts"がながれてきたよ!" - puts"サイドメニューを取る?" - print"はい いいえ で答えてください:" - toru_b=gets.chomp - - if toru_b=="はい" - print"どれを取る?:" - erabu_b=gets.to_i - puts totta_b[erabu_b] - puts"モグモグ" - sleep(1) - sabi(1) - agemono.push(saido[erabu_b]) - else - puts"では、つぎの寿司を待ちましょう。" - end -end - - - -def dezato - puts"あ!!デザートパレードだ!!" - puts dezato - puts"がながれてきたよ!" - puts"デザートを取る?" - puts"取る(1)取らない(2)" - print"入力:" - toru=gets.chomp - if toru==1 - puts"どれを取る?" - dore=gets.to_i - puts totta[dore] - puts"モグモグ" - sleep(1) - sabi(1) - okasi.push(dezato[dore]) - else - puts"では、つぎの寿司を待ちましょう。" - end -end - -puts"回転寿司に来たよ!" -sleep(2.5) -puts"おすしを取ろう!" -while true - matu - toru - matu - toru - matu - toru - matu - saido - matu - dezato - puts"会計に行きますか?" - iku=gets.chomp - if iku=="はい" - break - else - redo - end -end -puts"会計に来たよ!" -susinedan=osusi.length -saidonedan=agemono.length -dezatonedan=akasi.length -printf("寿司:%d円\n",susinedan) -printf("サイドメニュー:%d円\n",saidonedan) -printf("デザート:%d円\n",dezatonedan) -printf("代金は%d円です。\n",nedan) diff --git a/grupu/my_gemu_a.rb.png b/grupu/my_gemu_a.rb.png deleted file mode 100644 index 56184e8..0000000 --- a/grupu/my_gemu_a.rb.png +++ /dev/null Binary files differ diff --git a/grupu/skill.csv b/grupu/skill.csv new file mode 100644 index 0000000..0f8d36a --- /dev/null +++ b/grupu/skill.csv @@ -0,0 +1,2 @@ +5 +剣技:疾風斬り diff --git a/kiku_last.rb b/kiku_last.rb new file mode 100755 index 0000000..ecef1c2 --- /dev/null +++ b/kiku_last.rb @@ -0,0 +1,39 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +require'csv' + + +def sentaku(ue,dai_a,dai_b,dai_c,dai_d) + print(" _dai_\n".sub("_dai_",ue)) + print("_doko_(1)\n".sub("_doko_",dai_a)) + print("_doko_(2)\n".sub("_doko_",dai_b)) + print("_doko_(3)\n".sub("_doko_",dai_c)) + print("_doko_(4)\n".sub("_doko_",dai_d)) +end + +kigo = ["終","了","し","ま","す",] + +while true + sentaku("選択","残り物料理","ゴミ・食品ロスミニゲーム","電卓","終了") + print"入力:" + nani=gets.chomp + if nani == 1 + + elsif nani == 2 + require_relative"kiku_quiz" + + elsif nani == 3 + require_relative"dentaku" + + elsif nani == 4 + moji=0 + for i in 1..5 + printf("%s",kigo[moji]) + sleep(1) + print"." + moji+=1 + end + break + end +end diff --git a/score.sq3 b/score.sq3 index 387e7a4..2562a18 100644 --- a/score.sq3 +++ b/score.sq3 Binary files differ diff --git a/seika/dentaku.rb b/seika/dentaku.rb new file mode 100755 index 0000000..c0a2d9b --- /dev/null +++ b/seika/dentaku.rb @@ -0,0 +1,49 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + + +puts"次の対応する番号を(半角で)入れてください。" +sleep(2) +puts"足し算=1 引き算=2 掛け算=3 割り算=4" +banngou = gets.chomp + +if banngou == "1" + puts"足される数を入れてください。" + tasizann1 = gets.chomp.to_i + puts"足す数を入れてください。" + tasizann2 = gets.chomp.to_i + kotae1 = tasizann1 + tasizann2 + printf"答えはズバリ!%dです!\n",kotae1 +end + +if banngou == "2" + puts"引かれる数を入れてください。" + hikizann1 = gets.chomp.to_i + puts"引く数を入れてください。" + hikizann2 = gets.chomp.to_i + kotae2 = hikizann1 - hikizann2 + printf"答えはズバリ!%dです!\n",kotae2 +end + +if banngou == "3" + puts"掛けられる数を入れてくだい。" + kakezann1 = gets.chomp.to_i + puts"掛ける数を入れてください。" + kakezann2 = gets.chomp.to_i + kotae3 = kakezann1 * kakezann2 + printf"答えはズバリ!%dです!\n",kotae3 +end + +if banngou == "4" + puts"割られる数をいれてください。" + warizann1 = gets.chomp.to_i + puts"割る数を入れてくだい。" + warizann2 = gets.chomp.to_i + kotae4 = warizann1 / warizann2 + printf"答えはズバリ!%dです!\n",kotae4 +end + +if banngou == "kurayami2117" + puts"Thank you for Playing!" +end + diff --git a/seika/kiku.rb b/seika/kiku.rb new file mode 100755 index 0000000..a219ebf --- /dev/null +++ b/seika/kiku.rb @@ -0,0 +1,148 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +osusi=[] #寿司用の配列 +agemono=[] #サイドメニュー用の配列 +okasi=[] #デザート用の配列 +saido_a=%w(0:フライドポテト 1:鶏の唐揚) +saido_b=%w(0:タコの唐揚げ 1:天ぷらセット) +dezato=%w(1:杏仁豆腐 2:かぼちゃプリン) +totta=%w(杏仁豆腐を取ったよ。 かぼちゃプリンを取ったよ。) +totta_a=%w(フライドポテトを取ったよ。 鶏の唐揚を取ったよ。) +totta_b=%w(タコの唐揚げを取ったよ。 天ぷらセットを取ったよ。) + + +def sabi(bikkuri) #デザートのときは、驚くから bikkuri引数 + puts"わさびはあるかな?・・・。" + puts"モグモグ" + sleep(1) + sabi=["わさび入りだ!ツーン!","わさび抜きだ!なあーんだ"] + srand() + n=rand(2) + printf("%s\n",sabi[n]) + if bikkuri==1 + printf("「%s」ってえーー!?なんでわさび??\n",sabi[n]) + else + #ifから抜ける + end +end + + +def matu + puts"すしはまだ流れて来ないなー" + kita=rand(2) + printf("あ!%sがながれてきたよ!\n",susi[kita]) +end + +def toru + susi=["0:マグロ","1:サーモン","2:たまご","3:マグロ","4:サーモン","5:いくら","6:エビ","7:穴子","8:たまご","9:イカ"] + puts"寿司を取る?" + toru=gets.chomp + tabeta = [] + if toru=="はい" + puts "取りたい番号をれて:" + x = gets.to_i + printf("では、%s取ります。\n",susi[x]) + sabi(2) + osusi.push(susi[x]) + else + puts"では、つぎの寿司を待ちましょう。" + end +end + + +def saido + + + puts"サイドメニューの" + puts saido_a + puts"がながれてきたよ!" + puts"サイドメニューを取る?" + puts"はい いいえ で答えてください" + toru_a=gets.chomp + + if toru_a=="はい" + print"どれを取る?:" + erabu_a=gets.to_i + puts totta_a[erabu_a] + puts"モグモグ" + sleep(1) + sabi(1) + agemono.push(saido[erabu_a]) + else + puts"では、つぎの寿司を待ちましょう。" + end + + puts"サイドメニューの" + puts saido_b + puts"がながれてきたよ!" + puts"サイドメニューを取る?" + print"はい いいえ で答えてください:" + toru_b=gets.chomp + + if toru_b=="はい" + print"どれを取る?:" + erabu_b=gets.to_i + puts totta_b[erabu_b] + puts"モグモグ" + sleep(1) + sabi(1) + agemono.push(saido[erabu_b]) + else + puts"では、つぎの寿司を待ちましょう。" + end +end + + + +def dezato + puts"あ!!デザートパレードだ!!" + puts dezato + puts"がながれてきたよ!" + puts"デザートを取る?" + puts"取る(1)取らない(2)" + print"入力:" + toru=gets.chomp + if toru==1 + puts"どれを取る?" + dore=gets.to_i + puts totta[dore] + puts"モグモグ" + sleep(1) + sabi(1) + okasi.push(dezato[dore]) + else + puts"では、つぎの寿司を待ちましょう。" + end +end + +puts"回転寿司に来たよ!" +sleep(2.5) +puts"おすしを取ろう!" +while true + matu + toru + matu + toru + matu + toru + matu + saido + matu + dezato + puts"会計に行きますか?" + iku=gets.chomp + if iku=="はい" + break + else + redo + end +end +puts"会計に来たよ!" +susinedan=osusi.length +saidonedan=agemono.length +dezatonedan=akasi.length +printf("寿司:%d円\n",susinedan) +printf("サイドメニュー:%d円\n",saidonedan) +printf("デザート:%d円\n",dezatonedan) +printf("代金は%d円です。\n",nedan) diff --git a/seika/kiku_last.rb b/seika/kiku_last.rb new file mode 100755 index 0000000..3104647 --- /dev/null +++ b/seika/kiku_last.rb @@ -0,0 +1,5 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +require'csv' #require_relative""(後で用) +require'curses' #require_relative"dentaku"(後で用) diff --git a/seika/kiku_quiz.rb b/seika/kiku_quiz.rb new file mode 100755 index 0000000..9ee57c0 --- /dev/null +++ b/seika/kiku_quiz.rb @@ -0,0 +1,85 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +def tyui + osieru=[ + "\e[91m注意事項です。", + "\e[0mここでは、", + "ごみをちゃんと分別しないと\n一向にクリアできません", + "ヒントが出るので頑張ってください", + "人間は、それほど関心がないと", + "こうやって覚えるしかないのです。", + "\e[91mそれに、そうするほど努力しないといけない問題だからからです。", + "\e[0m地球と生物、人間のために、本当に頑張ってください" + ] + + for hyoujisuru in osieru #後で使わないように長い変数にしました + printf("%s\n",hyoujisuru) + g + end +end + +def sentaku(ue,dai_a,dai_b,dai_c,dai_d) + print(" _dai_\n".sub("_dai_",ue)) + print("_doko_(1)\n".sub("_doko_",dai_a)) + print("_doko_(2)\n".sub("_doko_",dai_b)) + print("_doko_(3)\n".sub("_doko_",dai_c)) + print("_doko_(4)\n".sub("_doko_",dai_d)) +end + +while true + sentaku("選択してください","ゴミミニゲーム","藤島 代表的ゴミ箱","リサイクル施設検索","終了") + print"入力:" + erabu=gets.to_i + if erabu==1 + tyui + + suti=[2,3,1,4,5,3,3,5,3,4] + + mondai=["醤油のボトル", "ふろおけ", "もやしの袋", "ガラスのコップ", "磁石にくっつく缶","ポテトチップスの袋", "プラスチック皿", "ジャムのビン", "カイロ(鶴岡市)", "釘" ] + + kotae={"醤油のボトル"=>"ペットボトル", "ふろおけ"=>"燃やす", "もやしの袋"=>"プラ","ガラスのコップ"=>"ガラス・金属・その他", "磁石にくっつく缶"=>"カン・ビン","ポテトチップスの袋"=>"燃やす", "プラスチック皿"=>"燃やす","ジャムのビン"=>"カン・ビン", "カイロ(鶴岡市)"=>"燃やす","釘"=>"ガラス・金属・その他" } + + setume=["醤油ボトルは、PETなのでペットに捨てられます。\nですが、洗ってからです","風呂桶は、容器包装類ではないです。\nまた、熱すると固くなるプラスチックなので、リサイクルができません","プラスチック容器包装類のリサイクルは、汚れ・食品の\e4mかたまり\e0mがついていなければリサイクルできます。","ガラスなので、ビンではなく、「ガラス」に入れます。","そもそもカンなので「カン・ビン」に入れます。素材はわかりますね?","ポテチの袋は、油やアルミがついているのでプラにできません","プラの皿は、熱すると固くなるプラなのでリサイクル不可です。","ジャムのビンは、洗ってラベルを取ってビンです。洗えるからです。","鶴岡市は、カイロを焼却炉で燃やせるので燃やすでいいです。田んぼに巻くのもいいすよ。(許可得てから)","釘は、金属なのでガラス・金属・その他に入れます。"] + + ka = spawn "display -geometry +0+0 kan.png" + ki = spawn "display -geometry +0+305 kinzoku.png" + pe = spawn "display -geometry +260+210 petto.png" + pu = spawn "display -geometry +720+0 pura.png" + m = spawn "display -geometry +720+305 moeru.png" + + ten=0 + seikai=kotae[mondai[ten]] + while ten < 10 + printf("\e[1m第%d問!\n",ten+1) + gets + print mondai[ten] + print"を捨てようとしています。\nどのゴミ箱に入れる?" + print"入力:" + poi=gets.to_i + if poi==suti[ten] + print("\e[102m正解!\n") + printf("\e[0m%s\n",setume[ten]) + ten+=1 + else + print"\e[90m不正解...。" + gets + kari=mondai[ten] + print"\e[0m答えは" + print kotae[kari] + end + g + end + elsif erabu==4 + print"." + sleep(0.3) + print"." + sleep(0.3) + print"." + sleep(0.3) + print("\e[5mポイ捨ては、絶対にしないでください\n") + print"プツン" + break + end +end +