Newer
Older
Ruby / CardBattle.rb
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

hanasi = [["_Me_:あぁ CBO欲しいな〜",
           "(AR画面の中央に「¥100000円」という文字が表示されている)",
           "ピンポーン!",
           "_Me_:うん? 誰が来たんだろう?",
           "ガチャ",
           "陽翔:_Me_ 久しぶり〜",
           "_Me_:陽翔お兄ちゃんか〜",
           "(陽翔お兄ちゃん(本名は青空陽翔)は_Call_が小さい頃から一緒に遊んでくれている近所のお兄ちゃんだ)",
           "_Me_:陽翔お兄ちゃん まだARコンタクト買ってないの〜",
           "(陽翔お兄ちゃんは 今どきARコンタクトじゃなくて旧式のARグラスを使っている変わり者だ)",
           "陽翔:これがお気に入りなんだよ",
           "陽翔:そんなことより _Me_にプレゼントがあるんだよ",
           "(するとAR画面に「陽翔様からのプレゼントです」と書かれCBOのダウンロードチケットが届いた)",
           "_Me_:えー いいの!? これ高いんじゃ",
           "陽翔:いいんだよ さぁ一緒に遊ぼうよ",
           "(その時 陽翔お兄ちゃんが顔をしかめた)",
           "陽翔:あぁ ごめんな 仕事のメールが きちゃった また今度遊ぼうな",
           "(そう言うと早足で部屋を去っていった)",
           "_Me_:うーん とりあえず 遊んでみようかな",
           "_Me_:最初にキャラネームを決めるんだ 何にしようかな〜",]]

#MEMO aozora  yoto 青空 陽翔 yozora  aoto 夜空 蒼翔

status = ["","","",""]

point = [0]

aummaryQ = [["プレイ","パスワード"],["男","女"],["俺","僕","私"],["カードボックス","カードショップ","オンラインバトル","トーナメント","お知らせ"],[],["カードボックスから手持ちに移す","手持ちからカードボックスに移す"]] 

card = []

cardbox = []

cardlist = [["ヘルスアップ",5,0,0,0,0,0],["ソードスラッシュ",0,0,5,0,0,0],["マジックミサイル",0,0,0,0,5,0]]
#[0=カード名][1=回復値][2=最大体力増加値][3=攻撃力][4=防御力][5=魔法攻撃力][6=魔法防御力]
#カードの能力値

def question(choices,text,z)
  x = 0
  y = -1
  if z == 2
    while x < choices.length
      printf("%s",choices[x],x)
      x += 1
    end
  elsif z == 3
    while x < choices.length
      printf("%s",choices[x][0],x)
      x += 1
    end
  elsif z == 4
    while x < choices.length
      printf("%s(%d)",choices[x][0],x)
      x += 1
    end
    print("\n")
    print text
    while y < 0 || y >= choices.length
      y = Curses.getch
    end
    y = y.to_i
    
  else
    while x < choices.length
      printf("%s(%d)",choices[x],x)
      x += 1
    end
    print("\n")
    while y < 0 || y >= choices.length
      print text
      y = gets
      if y == "\n"
        redo
      end
      y = y.to_i
    end
    if z == 0
      y = choices[y]
    end
  end
end

def talk(hanasi,status,z)
  if z == 0
    for i in hanasi
      puts(i.sub("_Me_",status[0])
             .sub("_Seibetu_",status[1])
             .sub("_Call_",status[2])
             .sub("_Chara_",status[3]))
      gets
    end
  elsif z == 1
    for i in hanasi
      puts i
      gets
    end
  end
end


while true
  select = question(aummaryQ[0],"選択:",0)

  if select == "あとがき"

    
  elsif select == "パスワード"
    puts("パスワードを入力してください")
    print("パスワード:")
    x = get.chomp
    if x == "administrator" || x == "管理者"
      puts("スーパーアカウントの使用を許可")
      puts("制限を すべて解除します")
      aummaryQ[0] << "あとがき"
      redo
    end

  elsif select == "プレイ"
    puts("カードバトルRPG")
    print("\n")
    puts("初期設定")
    puts("※あとから 変更はできません")
    print("\n")
    puts("名前を決めてください")
    while status[0] == ""
      print("名前…")
      status[0] = gets.chomp
    end
    print("\n")
    status[1] = question(aummaryQ[1],"性別:",0)
    print("\n")
    status[2] = question(aummaryQ[2],"一人称:",0)
    print("\n")
    talk(hanasi[0],status,0)

    puts("ダウンロードして頂きありがとうございます")
    puts("はじめに キャラネーム を決めてください")
    puts("※あとから 変更はできません")
    while status[3] == ""
      print("キャラネーム…")
      status[3] = gets.chomp
    end 
    
    while true
      select = question(aummaryQ[3],"選択:",0)
      
      if select == "カードボックス"
        if 0 == card.length
          puts("手持ちにカードはありません")
        else
          question(card,0,3)
        end
        print("\n")
        if 0 == cardbox.length
          puts("カードボックスにカードはありません")
        else
          question(cardbox,0,3)
        end
        select = question(aummaryQ[5],"選択:",1)
        if select == "カードボックスから手持ちに移す"
          if card.length == 30
            puts("手持ちが いっぱいです")
            puts("何かのカードをカードボックスに移してからしてください")
          else
            select = cardbox[question(card,"移す",4)]
            card << cardbox[selecr]
            cardbox[select] = nil
          end
          
        elsif select == "手持ちからカードボックスに移す"
          select = card[question(cardbox,"移す",4)]
          cardbox << card[selecr]
          card[select] = nil
        end
        
      elsif select == "カードショップ"
        
      elsif select == "オンラインバトル"
        
      elsif select == "トーナメント"
        if aummaryQ[4].length == 0
          puts("大会への出場資格がありません")
        else
          select = question(aummaryQ[4],"選択:",0)
          if select == "地域大会"
          elsif select == "県大会"
          elsif select == "地方大会"
          elsif select == "日本大会"
          elsif select == "アジア大会"
          elsif select == "世界大会"
          end
        end
        
      elsif select == "お知らせ"
        puts("〜第二回CBO頂上決戦〜 近日開催! X月X日")
        puts("現チャンピオンCharacterName:'夜空蒼翔'(よぞら あおと)")
      end
    end
  end
end