J'ai essayé de résoudre le problème de création de carte de bingo Ruby (il y a un exemple de réponse)

introduction

"Introduction à Ruby pour ceux qui veulent devenir un professionnel" Je suis un débutant en programmation après avoir appris le livre dit de la cerise. Quand j'ai voulu bouger mes mains et mettre en pratique ce que j'apportais, j'ai trouvé un article de l'auteur. "Si vous rencontrez des problèmes avec le matériel de sortie!? J'ai collecté des problèmes de programmation pour les débutants Ruby (10 questions au total)"

J'ai essayé de résoudre ce troisième problème.

Cliquez ici pour d'autres numéros Première question: Problème de création de calendrier (problème de pratique Ruby amusant) Deuxième question: Problème de création de machine à karaoké Troisième question: Problème de création de carte de bingo Quatrième question: Problème de boisson bonus Cinquième question: Problème de création du répertoire

problème

Pour plus de détails d'ici

B: de 1 à 15 I: entre 16 et 30 N: l'un des 31-45 G: l'un des 46-60 O: l'un des 61-75 Faites la carte de bingo suivante selon la règle.

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

 > La sortie de la méthode Bingo.generate_card doit répondre aux spécifications suivantes en plus des règles de nombre mentionnées ci-dessus.
 - Générez une carte différente à chaque fois.
 --Séparez chaque colonne avec un tuyau (|).
 - Les nombres et les caractères "BINGO" sont affichés justifiés à droite.
 - L'espace est affiché au milieu (où il devient GRATUIT).



# Exemple de réponse
 Il s'est avéré être quelque chose comme ça.

```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

à la fin

Les réponses d'autres personnes ont également été publiées sur le lien ci-dessous. Ruby-Nous sommes heureux d'annoncer les 3 meilleures œuvres de "Bingo Card Creation Problem"!

Je n'ai pas utilisé la méthode transpose parce que je ne la connaissais pas, mais en regardant les réponses des autres, il semble y avoir plus de place pour la refactorisation.

Si vous avez des opinions, faites-le nous savoir dans les commentaires. Je vous remercie.

Recommended Posts

J'ai essayé de résoudre le problème de création de carte de bingo Ruby (il y a un exemple de réponse)
J'ai essayé de résoudre le problème de la machine à karaoké Ruby (il y a un exemple de réponse)
J'ai essayé de résoudre le problème de la boisson bonus Ruby (il y a un exemple de réponse)
J'ai essayé de résoudre le problème de la "sélection multi-étapes" avec Ruby
J'ai essayé de résoudre le problème de Google Tech Dev Guide
J'ai essayé de résoudre le problème de la séquence Tribonacci en Ruby, avec récurrence.
J'ai essayé de résoudre le problème de la séquence Tribonacci en Ruby (temps limite 10 minutes)
J'ai brièvement résumé la grammaire de base de Ruby
J'ai essayé de résoudre le problème de la campagne paiza "Challenge from Phantom Thief 813"
Je veux rendre le cadre de la zone de texte rouge lorsqu'il y a une erreur de saisie
J'ai essayé d'utiliser pleinement le cœur du processeur avec Ruby
[Java] J'ai essayé de résoudre le problème de rang B de Paiza
05. J'ai essayé de supprimer la source de Spring Boot
J'ai essayé de réduire la capacité de Spring Boot
Je veux connaître la réponse de l'application Janken
L'argument de link_to est nul (nul) et un lien inattendu a été généré, j'ai donc essayé de le vérifier
Puisque la lecture de JdbcCodeList de TERASOLUNA est lente, j'ai essayé d'enregistrer plusieurs à la fois.
J'ai créé le côté serveur du jeu de cartes en ligne ①
J'ai essayé de créer un environnement de WSL2 + Docker + VSCode
[Ruby] Je souhaite inverser l'ordre de la table de hachage
J'ai essayé le problème FizzBuzz
J'ai essayé de créer un environnement de serveur UML Plant avec Docker
[Rubiy] J'ai essayé de résumer le traitement de la boucle ce soir [fois, pause ...]
Vous voulez savoir ce que Ruby n est la puissance de 2? (Jugement de puissance de 2)
J'ai essayé de comprendre comment la méthode des rails "redirect_to" est définie
J'ai essayé de vérifier le fonctionnement du serveur gRPC avec grpcurl
J'ai essayé de comprendre comment la méthode des rails "link_to" est définie
J'ai essayé de résumer les méthodes de Java String et StringBuilder
J'ai essayé de faire un Numeron qui n'est pas bon avec Ruby
Je veux changer la valeur de l'attribut dans Selenium of Ruby
J'ai essayé d'expliquer la méthode
J'ai essayé de créer un exemple de programme en utilisant le problème du spécialiste des bases de données dans la conception pilotée par domaine
J'ai un LSP et j'ai essayé de créer un environnement pour écrire Java avec Vim (NeoVim), mais je n'ai pas pu battre l'IDE ...
J'ai essayé de créer une classe parent d'objet de valeur dans Ruby
J'ai essayé de résumer les points clés de la conception et du développement de gRPC
[Ruby] Je souhaite extraire uniquement la valeur du hachage et uniquement la clé
[Introduction à Java] J'ai essayé de résumer les connaissances que j'estime essentielles
Obtenez le type d'un élément d'un tableau pour déterminer s'il s'agit d'un tableau
Comment résoudre la construction de l'environnement local de Ruby on Rails (MAC)!
J'ai essayé de visualiser l'accès de Lambda → Athena avec AWS X-Ray
[Ruby] J'ai essayé de résumer les méthodes fréquentes dans paiza
[Ruby] J'ai essayé de résumer les méthodes fréquentes avec paiza ②
J'ai essayé de mesurer et de comparer la vitesse de Graal VM avec JMH
Comme la commande du utilisée lorsque la capacité est pleine est difficile à utiliser, j'ai essayé de l'envelopper avec du rubis
J'ai essayé de résoudre la recherche binaire d'AOJ
J'ai essayé d'implémenter le modèle Iterator
J'ai essayé de résumer l'API Stream
Qu'est-ce que Docker? J'ai essayé de résumer
Ruby: J'ai essayé de savoir où Nokogiri va voir l'encodage lui-même
Ce que j'ai essayé quand je voulais obtenir tous les champs d'un haricot
J'ai essayé de comparer la technologie d'infrastructure des ingénieurs ces jours-ci avec la cuisine.
Turbolinks: je veux résoudre le problème que JS ne s'affiche pas correctement à moins d'être rechargé lors de la transition avec link_to