Dans l'article précédent, tout le code était terminé. Cependant, il existe encore de nombreux ara. C'est pourquoi j'ai eu une révision de code au salon en ligne auquel j'appartiens. Il y avait pas mal de suggestions, alors j'ai répondu une par une.
Le retrait Ruby est de 2 espaces demi-largeur
La comparaison simple utilise == / alors pas besoin
Mieux vaut utiliser l'expansion variable
Le nom du fichier est difficile à comprendre (vers transfer_money
-> player.rb
)
Lancer les dés / dépenser de l'argent devrait être dans le joueur (Parce que c'est l'action d'un joueur)
Les méthodes check_win_lose
et transfer_money
peuvent ne pas être des méthodes Player
main.rb
devient plus facile à voir dans son ensemble s'il est transformé en méthode dans l'unité du flux du jeuforce_relation
, etc.)roll_dice
Ce n'est pas bon que la valeur de retour de la méthode soit une chaîne Utiliser des constantes ou des énumérateurs
C'est un gaspillage de fixer l'enjeu du chef de groupe (changez l'enjeu en fonction de la somme d'argent dont vous disposez)
Ce serait bien de pouvoir gagner ou perdre et transférer de l'argent avec l'opérateur +.
Trop! !! !!
Faisons le. Tout d'abord, c'est lié à la grammaire, mais cela pourrait être amélioré assez rapidement. La correction de l'indentation était facile avec VS Code. J'ai fait référence à l'article suivant.
Changer le nombre d'espaces de retrait avec VS Code
L'expansion variable est comme ça. Vous pouvez écrire proprement comme ça.
dice_hand = 'Yeux normaux(' + uniq_value.to_s + ')'
↓
dice_hand = "Yeux normaux(#{uniq_value.to_s})"
URL du problème correspondant https://github.com/kyokucho1989/ruby-game/issues/13
J'ai fait de mon mieux dans ce domaine. Tout d'abord, il a été dit que c'était étrange pour le joueur de juger la victoire ou la défaite et de déplacer les enjeux, j'ai donc créé une nouvelle classe de jeu. La classe Jeu détermine le résultat et déplace l'enjeu.
Aussi, j'ai décidé de le faire avec une méthode de classe. C'est parce que la classe de jeu n'a pas d'état. (Cela a également été souligné)
J'ai également résumé la sortie des phrases. J'ai créé un nouveau message.rb
pour que tous les messages puissent en sortir. Cela facilitera la correction du texte. Comme c'est gentil!
J'ai créé un nouveau module-hand-game.rb
et j'ai rendu les rôles et les résultats gagnants / perdants constants.
module Match
WIN = 'gagner'
LOSE = 'Perdre'
DRAW = 'dessiner'
end
En y faisant référence, cela ressemble à ceci. Comme c'est gentil!
if(my_hand_rank > opponent_hand_rank)
Match::WIN
elsif(my_hand_rank == opponent_hand_rank)
Match::DRAW
else
Match::LOSE
end
«J'espère que l'opérateur pourra gagner ou perdre et transférer de l'argent.» Impossible de gérer. difficile.
C'était amusant de pouvoir programmer autant de choses avec Ruby seul. Si vous faites diverses choses, y compris des rails, vous avez tendance à être découragé en raison d'erreurs dans la construction de l'environnement. Au début, je pense qu'il est simplement plus puissant de faire quelque chose uniquement avec Ruby.
Je veux faire du matériel pédagogique avec celui-ci un jour. fin. Le code complété est ici ↓ https://github.com/kyokucho1989/ruby-game
Recommended Posts