diff --git a/RPG.rb b/RPG.rb new file mode 100644 index 0000000..86553e1 --- /dev/null +++ b/RPG.rb @@ -0,0 +1,180 @@ +#!/usr/bin/env ruby +# -*- coding: utf-8 -*- + +ability = [10,3,8,5,5,20,15,1] #能力値最大 +#HP(体力)MP(魔力)ATS(攻撃力)MAT(魔法攻撃力)DEF(防御力)DEX(素早さ)AGI(器用さ)LUK(運) + +current = [10,3,] #現在の能力値 + +lv = [1,0] #レベル関連 +#Lv(レベル)EXP(経験値) + +g = 0 + +gamedescription = ["ゲーム説明","このゲームはメニューで行動を選択して遊びます", + "ステータスを見る・宿屋へ行く・武器屋へ行く・教会へ行く・探索へ行くの中から好きなのを選びます", + "ステータスを見るは今の自分のステータスを見ることができます", + "HP=体力 MP=魔力・魔法防御力 ATS=攻撃力 MAT=魔法攻撃力 DEF=防御力 DEX=素早さ AGI=器用さ LUK=運", + "宿屋はGを支払うとHP・MPが回復します", + "武器屋は武器・防具を購入することができます", + "教会はセーブができます", + "探索は魔物の生息地に行き 戦いをします", + "戦いは行動を選択して魔物を倒します", + "死んでしまったら'GAMEOVER'でゲーム終了です", + "続きからでセーブコードを入力したら また始められるから こまめにセーブしてね", + "目標は魔王を倒すこと!", + "じゃぁクリア目指して頑張ってね", + "※このゲームは共同制作作品です"] + +prorogu = ["_me_:う、うっ", + "(強い頭痛を感じ_jibun_は意識を失った)", + "_me_:こ、ここは どこ?", + "(その瞬間すべてを思い出した)", + "(剣術や魔法 世界のことわり)", + "(そして魔王を倒さなければ ならないという強い使命感を覚えた)", + "_me_:魔王を倒さなければ", + "_me_:なぜだか わからないけど そんな気がする", + "_me_:あっ そして ここは どこなんだろう", + "_me_:そこの お方 ここが どこか わかりますか", + "村人:何いってるんだい?", + "村人:ここは「パクス村」ディーヴァス川のほとりにある小さな農村さ", + "村人:ここが初めてなら注意しておくけど「ポルタ平原」には魔物が出るから用意なしには行くなよ", + "村人:じゃぁな", + "_me_:とりあえずポルタ平原を探索しようかな"] +#最初の会話シーン + +credit = ["スタッフロール(クレジットタイトル)","システム","澤田羽衣 村井侑平", + "システムアドバイザー","佐藤隆之助 阿部光峻", + "広瀬雄二様 東北公益文科大学の皆様", + "シナリオ","村井侑平 高橋真翔 佐藤風斗 佐藤然", + "シナリオアドバイザー","佐藤隆之助 澤田羽衣 疋田琉莉 阿部光峻", + "グラフィック","澤田羽衣", + "この作品に関わった すべての方に感謝の意を申し上げます", + "制作","「#みんなでゲームを作ろう」の会"] + +status = [] #[名前、性別、一人称etc.] + +sentaku = ["プレイ","ゲーム説明","クレジットタイトル"] +q1 = ["男","女"] #変数名の最初は大文字NG +q2 = ["俺","僕","私"] + +def question(situmon,list) #質問を出すメソッド + kaisu = 0 + select = -1 + while kaisu < list.length + printf("%s(%d)\n",list[kaisu],kaisu) + kaisu += 1 + end + while select < 0 || select >= list.length #回答の仕分け + print(situmon+":") + select = gets + if select == "\n" + redo + end + select = select.to_i + end + return list[select] #ただ見やすくしてる +end + +def dot(time,kaisu) #「.」のためにいろいろ打ちたくなかったのメソッド + re = 0 + while re < kaisu + sleep(time) + print"." + re += 1 + end +end + +def description(hanasi) + for i in hanasi + puts(i) + gets + end +end + +def story(hanasi,status) #物語のgetsをサボりたいのメソッド + for i in hanasi + puts(i.sub("_me_", status[0]) #subがiのキーワードを + .sub("_jibun_", status[2]) #特定の文字に + .sub("_seibetu_", status[1])) #置き換えてくれる + gets + end +end + +nani = [["名前","性別","一人称"],["Lv","EXP"],["HP","MP"],["ATS","MAT","DEF","DEX","AGI","LUK"], + ["ステータスを見る","宿屋へ行く","武器屋へ行く","教会へ行く","探索へ行く","メニューを閉じる"]] + +def menu(status,nani,lv,ability,current,g) #メニュー画面(仮)のメソッド。 + while true #今のところ見るだけ。選択肢の中身ができたらいじる。 + puts" メニュー" + x = 0 + y = question("行動…",nani[4]) #yはPLの回答を拾ってくる + + if y == "ステータスを見る" + print("\n") + puts" ステータス" + for mystatus in nani[0] #mystatus = ["名前","性別","一人称"] + printf("%s:%s ",mystatus,status[x]) #名前性別一人称 + x += 1 + end + x = 0 + print("\n") + printf("Lv%s ",lv[0]) + printf("EXP:%d ",lv[1]) + printf("所持金:%dG",g) + print("\n") + for mystatus in nani[2] + printf("%s:%d/%d ",mystatus,ability[x],current[x]) + x += 1 + end + x = 2 + for mystatus in nani[3] + printf("%s:%d ",mystatus,ability[x]) + x += 1 + end + print("\n") + elsif y == "メニューを閉じる" #elsifを増やすことでできることを増やす予定 + break + else + print"それは まだできないよ" + end + print"\n" + end +end + + +puts("RPG") +select = question("選択",sentaku) +if select == "ゲーム説明" + description(gamedescription) + select = question("選択",sentaku) +end +if select == "クレジットタイトル" + description(credit) + select = question("選択",sentaku) +end + +if select == "プレイ" + name = "\n" + while name == "\n" #この辺少し変だから真似はよく見てやって + puts("PL名を決めてください") + print("name…") + name = gets + end + name = name.chomp + status << name + status << question("性別を決めてください",q1) + status << question("一人称を決めてください",q2) +end + +puts("ゲームを起動します") +sleep(1) + + +print"Loading" +dot(0.5,3) +sleep(1) +print"\n" +story(prorogu,status) + +menu(status,nani,lv,ability,current,g) diff --git a/f.rb b/f.rb new file mode 100755 index 0000000..35fb240 --- /dev/null +++ b/f.rb @@ -0,0 +1,58 @@ +#!/usr/bin/env ruby +# coding: utf-8 + +def cpu(x) + start=0 + cpu_erabu1 = x[start] + for i in x + cpu_erabu2 = x[i] + if cpu_erabu1[-1] == cpu_erabu2[-1] && cpu_erabu1 != cpu_erabu2 + x.delete[cpu_erabu1] + x.delete[cpu_erabu2] + end + end +end + +def narabi(x) + number = 0 + for i in x + printf("%d枚目:%s\n", number, i) + number += 1 + end +end + +card = ["ハートA","ハート2","ハート3","ハート4","ハート5","ハート6","ハート7","ハート8","ハート9","ハート10","ハートJ","ハートQ","ハートK","クラブA","クラブ2","クラブ3","クラブ4","クラブ5","クラブ6","クラブ7","クラブ8","クラブ9","クラブ10","クラブJ","クラブQ","クラブK","スペードA","スペード2","スペード3","スペード4","スペード5","スペード6","スペード7","スペード8","スペード9","スペード10","スペードJ","スペードQ","スペードK","ダイヤA","ダイヤ2","ダイヤ3","ダイヤ4","ダイヤ5","ダイヤ6","ダイヤ7","ダイヤ8","ダイヤ9","ダイヤ10","ダイヤJ","ダイヤQ","ダイヤK","!JOKER!"].shuffle +a = [] +b = [] +c = [] +d = [] +while card.length>0 +a << card.shift +b << card.shift #ここで配列に入れてカードを配る +#c << card.shift +#d << card.shift +end +while true +n = 0 +for i in a + n+=1 + printf"%d枚目:%s\n",n,i +end +print("何枚目を取りますか?(qを入れたら終了...するといいね。)") +x = gets.to_i-1 +erabu1 = a[x] +printf("選んだカードの数字は%s\n",erabu1[-1]) +y = gets.to_i-1 +erabu2 = a[y] +printf("選んだカードの数字は%s\n",erabu2[-1]) +if erabu1[-1] == erabu2[-1] && erabu1 != erabu2 + a.delete(erabu1) + a.delete(erabu2) + puts a + redo +elsif x == -1 &&y == -1 + break +else + puts"違う。" +end +end