-
Notifications
You must be signed in to change notification settings - Fork 1
/
menu.rb
109 lines (98 loc) · 2.47 KB
/
menu.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#!/usr/bin/ruby
require 'io/console'
class MenuBase
def initialize
@aOptions = [[],[]]
end
def add_option(name,function)
@aOptions[0].push(function)
@aOptions[1].push(name)
end
def select(row)
@aOptions[0][row].call
end
def print_options(row)
@aOptions[1].each_with_index {
|x, index|
if (index===row)
puts "> #{x} <"
else
puts " #{x} "
end
}
end
def print(row)
cls
puts "+-----------------------------+"
puts "| chidraqul9 |"
puts "+-----------------------------+"
puts "| q=quit w,s=choose e=select |"
puts "+-----------------------------+"
print_options(row)
puts ""
puts "row: #{row}"
end
def keypresses(row)
c = STDIN.getch
if (c === "q")
exit
elsif (c === "e")
select(row)
elsif (c === "w")
if (row > 0)
row -= 1
end
elsif (c === "s")
if (row < @aOptions[0].count - 1)
row += 1
end
end
return row
end
def main(row=0)
loop do
print(row)
row = keypresses(row)
end
end
end
class Options < MenuBase
def initialize
@aOptions = [[],[]]
add_option("back", Proc.new { menu_main })
add_option("world size", Proc.new{
cls
puts "world size:"
$WORLD_SIZE_X = gets.chomp.to_i
})
end
def print(row)
cls
puts "+-----------------------------+"
puts "| Options |"
puts "+-----------------------------+"
puts "| q=quit w,s=choose e=select |"
puts "+-----------------------------+"
print_options(row)
puts ""
puts "row: #{row}"
end
end
class MainMenu < MenuBase
def initialize
@aOptions = [[],[]]
add_option("start", Proc.new { game_main })
add_option("options", Proc.new { options_main })
end
def print(row)
cls
puts "+-----------------------------+"
puts "| chidraqul9 |"
puts "+-----------------------------+"
puts "| q=quit w,s=choose e=select |"
puts "+-----------------------------+"
print_options(row)
puts ""
puts "row: #{row}"
end
end