"Einführung in Ruby für diejenigen, die professionell werden wollen" Ich bin ein Anfänger in der Programmierung, nachdem ich das sogenannte Kirschbuch gelernt habe. Als ich meine Hände bewegen und meine Eingaben in die Praxis umsetzen wollte, fand ich einen Artikel des Autors. "Wenn Sie Probleme mit dem Ausgabematerial haben !? Ich habe Programmierprobleme für Ruby-Anfänger gesammelt (insgesamt 10 Fragen)"
Ich habe versucht, dieses dritte Problem zu lösen.
Klicken Sie hier für weitere Probleme Erste Frage: Problem bei der Kalendererstellung (lustiges Ruby-Übungsproblem) Zweite Frage: Problem bei der Erstellung von Karaoke-Maschinen Dritte Frage: Problem bei der Erstellung der Bingokarte Vierte Frage: Problem mit Bonusgetränken Fünfte Frage: Problem bei der Erstellung des Telefonbuchs
Für Details von hier
B: Beliebig von 1 bis 15 I: Jeder von 16 bis 30 N: Beliebig von 31-45 G: Beliebig von 46-60 O: Beliebig von 61-75 Machen Sie die folgende Bingokarte gemäß der Regel.
B | I | N | G | O 13 | 22 | 32 | 48 | 61 3 | 23 | 43 | 53 | 63 4 | 19 | | 60 | 65 12 | 16 | 44 | 50 | 75 2 | 28 | 33 | 56 | 68
> Die Ausgabe der Methode Bingo.generate_card muss zusätzlich zu den oben genannten Nummernregeln die folgenden Spezifikationen erfüllen.
- Generieren Sie jedes Mal eine andere Karte.
- Trennen Sie jede Spalte mit einem Rohr (|).
--Nummern und "BINGO" -Zeichen werden rechtsbündig ausgegeben.
- Der Speicherplatz wird in der Mitte ausgegeben (wo er KOSTENLOS wird).
# Antwortbeispiel
Es stellte sich heraus, dass es so etwas war.
```ruby
class Bingo
def self.generate_card
title = "BINGO".split("").map{|bingo| sprintf("%2s",bingo)}.join(" | ")
numbers = [*1..75].each_slice(15).to_a.map{|b| b.sample(5)}
numbers[2][2] = " "
body = []
for i in 0..4
body << numbers.map{|number| sprintf("%2s",number[i])}.join(' | ')
end
[title,body].join("\n")
end
end
Die Antworten anderer Personen wurden ebenfalls unter dem folgenden Link veröffentlicht. Ruby-Wir freuen uns, die 3 besten Werke von "Bingo Card Creation Problem" bekannt zu geben!
Ich habe die Transponierungsmethode nicht verwendet, weil ich sie nicht kannte, aber wenn ich mir die Antworten anderer Leute anschaue, scheint es mehr Raum für Refactoring zu geben.
Wenn Sie eine Meinung haben, teilen Sie uns dies bitte in den Kommentaren mit. Vielen Dank.
Recommended Posts