Я хочу, чтобы код был заменен на существующие имена, когда счетчик больше текущего в файле.Удалить конкретный элемент в массиве
файл выглядит следующим образом: http://i.stack.imgur.com/LuQwp.png Это код:
def highscore(name,score)
a = File.new("highscore.txt", "w")
if @Bestenliste.include?("#{name}")
x = @Bestenliste.index("#{name}")
@Bestenliste.delete_at(x)
end
@Bestenliste = @Bestenliste + [name.to_s + "," + score.to_s]
a.puts @Bestenliste
a.close
end
Проблема заключается в том, что имя и точки в массиве не индивидуальные, а если я хочу, чтобы изменить это я необходимо изменить всю мою программу. Могу ли я каким-то образом использовать подстановочные знаки или что-то подобное в названии, а также сравнить счет в то же время?
Я хочу, чтобы перезаписать определенное имя, когда он уже существует и оценка выше
Ваш вопрос непонятен. Что такое ввод образца? Каков желаемый результат? – ptd
То, что текущий выход также будет хорошо знать. Если я правильно читаю код, я думаю, что 'include' и связанные с ним операторы не работают, потому что вы ищете только' имя', а не 'name.to_s +", "+ score.to_s'. Но трудно ответить, не зная, что вы пытаетесь получить в результате. –
Программа должна переписывать имена, когда она уже существует, и оценка выше, но она не работает, потому что имя и оценка в массиве не разделены. Массив выглядит так: '[" nico, 6 \ n "," henrik, 9 \ n "," luis, 2 \ n "]' Новые строки есть из-за того, что массив загружается из файла. – Splinti