Newer
Older
reroad-test / 2020-ryusei / dra-typ.rb
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
require 'curses'
include Curses
init_screen
cbreak
noecho

waza = ["かめはめ波","元気玉","ギャリック砲","どどん波","気円斬","狼牙風風拳","魔貫光殺砲","さよなら天さん","魔封波","如意棒","ギャルのパンティおくれ"]
rwaza = ["kamehameha","gennkidama","gyarikkuhou","dodonnpa","kiennzann","rougahuuhuukenn","makannkousappou","sayonaratennsann","mahuuba","nyoibou","gyarunopannthiokure"]
vs = 0
ok = 0
bad = 0

setpos(1,24)
attron(A_BOLD) do
  addstr("ドラゴンタイピング!!")
end

begin
  setpos(3,18)
  addstr("これから単語が1つずつ出てくっぞ!")
  setpos(4,14)
  addstr("入力は全部”ローマ字”だから気をつけろよ!※ん→nn")
  setpos(5,3)
  addstr("しっかり打ち込めたら<エンターキー>っちゅうのを押して攻撃してくれ!")
  setpos(6,13)
  addstr("<オメーの好きなキー>を押してスタートだ!")
  start = getch
  refresh

  nocbreak
  echo
  Curses.timeout = 10000
  refresh
  while vs < 5
    w = stdscr.subwin(10, 40, 8, 12)
    w.box("|"[0], "+"[0])
    vs += 1
    w.setpos(2, 2)
    w.addstr(sprintf("VS %d",vs))
    i = rand(10)
    w.attron(A_BOLD) do
      w.setpos(2, 10)
      w.addstr(sprintf("%s",waza[i]))
      w.setpos(3, 10)
      w.addstr(sprintf("%s",rwaza[i]))
    end
    w.setpos(5, 10)
    at = w.getstr
    w.clear
    if at == rwaza[i]
      ok += 1
      setpos(10, 55)
      addstr(" すげーぞ!")
    else
      bad += 1
      setpos(10,55)
      addstr("ヤベーぞ...")
    end
    setpos(11,57)
    addstr(sprintf("%d勝 %d敗",ok,bad))
    refresh
  end
  clear
  attron(A_BOLD) do
    if ok == 5
      setpos(7,20)
      addstr("オメーすげーやつだな!おら驚れーたぞ!")
    elsif ok >= 2
      setpos(7,10)
      addstr("惜しかったなー、まだまだ上手くなれると思うとおらワクワクすっぞ!")
    else
      setpos(7,20)
      addstr("おらと一緒に修行、いっちょやってみっか!")
    end
  end
  setpos(9,18)
  addstr("<オメーの好きなキー>を押して終わってくれ!")
  en = getch
  refresh
ensure
  close_screen
end