-
Notifications
You must be signed in to change notification settings - Fork 0
/
секрети.rb
47 lines (42 loc) · 1.92 KB
/
секрети.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
class Профіль
attr_accessor :імя, :пароль
def initialize(імя, пароль)
@імя = імя
@пароль = пароль
end
end
class ДужеСекретнийПрофіль < Профіль
def initialize(імя, пароль)
@кількість_невдалих_спроб = 0
super(імя, пароль)
end
def пароль=(новий_пароль)
while @кількість_невдалих_спроб < 3
print 'Введіть поточний пароль: '
поточний_пароль = gets.chomp
if @пароль == поточний_пароль
@пароль = новий_пароль
puts "Пароль змінено на: #{новий_пароль}"
break
else
@кількість_невдалих_спроб += 1
puts "Неправильний пароль!"
puts "Використано спроб: #{@кількість_невдалих_спроб} з 3!"
end
end
end
def пароль
'Пароль — це секрет!'
end
end
звичайний = Профіль.new('Королева', 'пароль')
дуже_безпечний = ДужеСекретнийПрофіль.new('Королева', 'пароль')
puts "Пароль до звичайного профілю: #{звичайний.пароль}"
звичайний.пароль = 'Щось інше!'
puts "Тепер пароль до звичайного профілю:
#{звичайний.пароль}"
puts "Якщо спробуємо дізнатися пароль до секретного профілю, то отримаємо: #{дуже_безпечний.пароль}"
новий_пароль = 'Щось інше!'
puts "Спробуємо змінити пароль до секретного профілю на:
#{новий_пароль}"
дуже_безпечний.пароль = новий_пароль