Class: Life_for_site
- Inherits:
-
Object
- Object
- Life_for_site
- Defined in:
- lib/life_for_site.rb
Instance Method Summary collapse
- #creating_life ⇒ Object
- #filling_alive ⇒ Object
- #game_over ⇒ Object
- #neighbors(x, y) ⇒ Object
- #next_step ⇒ Object
- #start_life(x_size, y_size) ⇒ Object
Instance Method Details
#creating_life ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/life_for_site.rb', line 45 def creating_life() @life_map = [] (0...@n).each do |i| @life_map[i] = [] (0...@m).each do |j| @life_map[i] << '.' end end @life_map_change = [] (0...@n).each do |i| @life_map_change[i] = [] (0...@m).each do |j| @life_map_change[i] << '.' end end end |
#filling_alive ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/life_for_site.rb', line 33 def filling_alive( ) (0...@n).each do |i| (0...@m).each do |j| if rand(2) == 0 @life_map[i][j] = '.' else @life_map[i][j] = 'X' end end end end |
#game_over ⇒ Object
63 64 65 66 67 |
# File 'lib/life_for_site.rb', line 63 def game_over() if @life_map == @life_map_change return true end end |
#neighbors(x, y) ⇒ Object
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 |
# File 'lib/life_for_site.rb', line 2 def neighbors(x, y) num_n=0 i=x j=y if i>0 && j>0 && @life_map[i-1][j-1] == 'X' num_n+=1 end if i>0 && @life_map[i-1][j] == 'X' num_n+=1 end if i>0 && j<@m && @life_map[i-1][j+1] == 'X' num_n+=1 end if j>0 && @life_map[i][j-1] == 'X' num_n+=1 end if j<(@m-1) && @life_map[i][j+1] == 'X' num_n+=1 end if i<(@n-1) && j>0 && @life_map[i+1][j-1] == 'X' num_n+=1 end if i<(@n-1) && @life_map[i+1][j] == 'X' num_n+=1 end if i<(@n-1) && j<(@m-1) && @life_map[i+1][j+1] == 'X' num_n+=1 end return num_n end |
#next_step ⇒ Object
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 |
# File 'lib/life_for_site.rb', line 69 def next_step() num = 0 (0...@n).each do|i| (0...@m).each do|j| @life_map[i][j] = @life_map_change[i][j] end end (0...@n).each do |i| (0...@m).each do |j| num = neighbors(i,j) if num == 3 && @life_map[i][j] == '.' @life_map_change[i][j] = 'X' elsif (num < 2 || num > 3) && @life_map[i][j] == 'X' @life_map_change[i][j] = '.' else @life_map_change[i][j] = @life_map[i][j] end end end #if @life_map == @life_map_change # puts "\e[H\e[2J" # puts "GAME OVER" # exit #end return @life_map_change end |
#start_life(x_size, y_size) ⇒ Object
96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/life_for_site.rb', line 96 def start_life(x_size, y_size) @n = x_size @m = y_size gen = 0 creating_life() filling_alive() return @life_map end |