Newer
Older
Ruby / hanoi.rb
#!/usr/bin/env ruby
# -*- coding:utf-8 -*-
def draw_scr(wa,nai,situ)
  puts("")
  puts(nai*3)
  situ.length.times do |i|
    situ[i].length.times {|k| print(situ[k][i])}
    puts("")
  end
  printf("%sA%sB%sC%s\n","="*(wa+1),"="*(wa*2+2),"="*(wa*2+2),"="*(wa+1))
end
def move(wa,nai,situ)
end
puts("3つの輪のハノイの塔です。一番右の塔に輪を移してください。")
wa=3 #wa=gets.to_i 
nai=" "*(wa+1)+"|"+" "*(wa+1)       #"    |    "
wa1=" "*(wa)+"<1>"+" "*(wa)         #"   <1>   "
wa2=" "*(wa-1)+"<-2->"+" "*(wa-1)   #"  <-2->  "
wa3=" "*(wa-2)+"<--3-->"+" "*(wa-2) #" <--3--> "
situ=[[wa1,wa2,wa3],[nai,nai,nai],[nai,nai,nai]] #状況(situ)は2次元配列で表す(上から順)
#
#    |        |        |    
#   <1>       |        |
#  <-2->      |        |
# <--3-->     |        |    
#====A========B========C====#[[wa1,wa2,wa3],[nai,nai,nai],[nai,nai,nai]]
#
#    |        |        |
#    |        |        |
#   <1>       |        |
# <--3-->   <-2->      |    
#====A========B========C====#[[nai,wa1,wa3],[nai,nai,wa2],[nai,nai,nai]]  みたいに
draw_scr(wa,nai,situ)