life_for_site 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/life_for_site.rb +102 -0
  2. metadata +45 -0
@@ -0,0 +1,102 @@
1
+ class My_life
2
+ def neighbors(x, y)
3
+ num_n=0
4
+ i=x
5
+ j=y
6
+ if i>0 && j>0 && @life_map[i-1][j-1] == 'X'
7
+ num_n+=1
8
+ end
9
+ if i>0 && @life_map[i-1][j] == 'X'
10
+ num_n+=1
11
+ end
12
+ if i>0 && j<@m && @life_map[i-1][j+1] == 'X'
13
+ num_n+=1
14
+ end
15
+ if j>0 && @life_map[i][j-1] == 'X'
16
+ num_n+=1
17
+ end
18
+ if j<(@m-1) && @life_map[i][j+1] == 'X'
19
+ num_n+=1
20
+ end
21
+ if i<(@n-1) && j>0 && @life_map[i+1][j-1] == 'X'
22
+ num_n+=1
23
+ end
24
+ if i<(@n-1) && @life_map[i+1][j] == 'X'
25
+ num_n+=1
26
+ end
27
+ if i<(@n-1) && j<(@m-1) && @life_map[i+1][j+1] == 'X'
28
+ num_n+=1
29
+ end
30
+ return num_n
31
+ end
32
+
33
+ def filling_alive( )
34
+ (0...@n).each do |i|
35
+ (0...@m).each do |j|
36
+ if rand(2) == 0
37
+ @life_map[i][j] = '.'
38
+ else
39
+ @life_map[i][j] = 'X'
40
+ end
41
+ end
42
+ end
43
+ end
44
+
45
+ def creating_life()
46
+ @life_map = []
47
+ (0...@n).each do |i|
48
+ @life_map[i] = []
49
+ (0...@m).each do |j|
50
+ @life_map[i] << '.'
51
+ end
52
+ end
53
+
54
+ @life_map_change = []
55
+ (0...@n).each do |i|
56
+ @life_map_change[i] = []
57
+ (0...@m).each do |j|
58
+ @life_map_change[i] << '.'
59
+ end
60
+ end
61
+ end
62
+
63
+ def next_step()
64
+ num = 0
65
+ (0...@n).each do |i|
66
+ (0...@m).each do |j|
67
+ num = neighbors(i,j)
68
+ if num == 3 && @life_map[i][j] == '.'
69
+ @life_map_change[i][j] = 'X'
70
+ elsif (num < 2 || num > 3) && @life_map[i][j] == 'X'
71
+ @life_map_change[i][j] = '.'
72
+ else
73
+ @life_map_change[i][j] = @life_map[i][j]
74
+ end
75
+ end
76
+ end
77
+ if @life_map == @life_map_change
78
+ puts "\e[H\e[2J"
79
+ puts "GAME OVER"
80
+ exit
81
+ end
82
+ (0...@n).each do|i|
83
+ (0...@m).each do|j|
84
+ @life_map[i][j] = @life_map_change[i][j]
85
+ end
86
+ end
87
+ return @life_map
88
+ end
89
+
90
+ def start_life(x_size, y_size)
91
+
92
+ @n = x_size
93
+ @m = y_size
94
+ gen = 0
95
+
96
+ creating_life()
97
+ filling_alive()
98
+ return @life_map
99
+
100
+ end
101
+ #game_of_life(40,70)
102
+ end
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: life_for_site
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - sabj
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-11-17 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: this is just a life
15
+ email: lol.ru.sabj@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/life_for_site.rb
21
+ homepage: ''
22
+ licenses: []
23
+ post_install_message:
24
+ rdoc_options: []
25
+ require_paths:
26
+ - lib
27
+ required_ruby_version: !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubyforge_project:
41
+ rubygems_version: 1.8.23
42
+ signing_key:
43
+ specification_version: 3
44
+ summary: Game of life for site
45
+ test_files: []