Newer
Older
Ruby / ru-retto.rb
#
#

puts("ルーレットです。")
puts("選択肢は何個?(半角数字)")
j=gets.chomp.to_i
puts("ルーレットのリストを入力⇣")
def risuto(w,x)
  printf("%sつ目:",x)
  w==gets.chomp
  puts("")
  return w
end
z=0
sentaku=[]
while z<j
  a=""
  risuto(a,z+1)
  sentaku<<a
  z+=1
end

sleep(0.5)
puts("ルーレットスタート!")
sleep(1)
puts("")
z=0
while z<j
  puts(sentaku[z])
  z+=1
end
z=0
nagasa=[]
while z<j
  nagasa<<sentaku[z].length
end
z=0
nagasa_=nagasa.sort[j-1]-sentaku[0].length
while z<nagasa_
  print(" ")
  z+=1
end
y=0
print("\e[%dA",j-1) #一番上に移動(4行上に行く)
while y<5
  z=0
  while z<4
    print("◀") #◀を表示する
    sleep(0.1)
    print("\e[1D") #◀の手前に行く(1文字左に行く)
    print("\e[0K") #◀を削除する(その行のカーソルより後ろを削除)
    print("\e[1B") #1行下に行く
    print("\e[1D") #1文字左に行く
    z+=1
  end
  print("◀")
  sleep(0.1)
  print("\e[1D") #◀の手前に行く(1文字左に行く)
  print("\e[0K") #◀を削除する(その行のカーソルより後ろを削除)
  print("\e[%dA",j-1) #一番上に移動(j-1行上に行く)
  print("\e[1D") #1文字左に行く
  y+=1
end
y=0
s=0.1
while y<5
  z=0
  while z<4
    print("◀") #◀を表示する
    sleep(s)
    print("\e[1D") #◀の手前に行く(1文字左に行く)
    print("\e[0K") #◀を削除する(その行のカーソルより後ろを削除)
    print("\e[1B") #1行下に行く
    print("\e[1D") #1文字左に行く
    z+=1
  end
  print("◀")
  sleep(s)
  print("\e[1D") #◀の手前に行く(1文字左に行く)
  print("\e[0K") #◀を削除する(その行のカーソルより後ろを削除)
  print("\e[%dA",j-1) #一番上に移動(j-1行上に行く)
  print("\e[1D") #1文字左に行く
  y+=1
  s+=0.1
end
i=""
srand()
h=rand(j-1)
z=0
while z<j
  if h==z
    i=sentaku[z]
  end
  z+=1
end
z=0
while z<h
  print("◀") #◀を表示する
  sleep(0.7)
  print("\e[1D") #◀の手前に行く(1文字左に行く)
  print("\e[0K") #◀を削除する(その行のカーソルより後ろを削除)
  print("\e[1B") #1行下に行く
  print("\e[1D") #1文字左に行く
  z+=1
end
z=0
while z<3
  print("◀") #◀を表示する
  sleep(0.3)
  print("\e[1D") #◀の手前に行く(1文字左に行く)
  print("\e[0K") #◀を削除する(その行のカーソルより後ろを削除)
  print("\e[1D")
  sleep(0.3)
  z+=1
end
print("◀")
printf("\e[%dB",j-h)
puts()
printf("\e[5m選ばれたのは%sでした。",i)