Enfin, j'écrirai le processus lié à la progression du jeu. Puisque chaque méthode est mise en œuvre à l'avance, cela devrait être plus facile que de partir de zéro. Faisons le.
Créez main.rb
dans le même dossier que chaque fichier. Tout d'abord, écrivons le flux comme suit.
#Jeu de Chinchiro
#Créer un joueur
# ----Boucle jusqu'à ce qu'il soit réglé
#Mettre la mise (vous-même)
#Mettre le piquet (en face)
#Lancer les dés
#Décision de rôle
#Jugement gagnant / perdant
#Déplacer le pieu
#Jugement final de victoire / défaite
# ----Boucle jusqu'à ce qu'il soit réglé
Je vais l'ajouter petit à petit. transfer_money.rb
a été changé en player_class.rb
.
require './player_class' # transfer_money.Changement de rb
require './dice_roll'
#Jeu de Chinchiro
#Créer un joueur
player_A = Player.new(money:1000,name:'Kaiji')
player_B = Player.new(money:1000,name:'Chef d'équipe')
puts '---Jeu de Chinchiro---'
# ----Boucle jusqu'à ce qu'il soit réglé
loop do
#Mettre la mise (vous-même)
puts 'Veuillez saisir le pari'
bet_money = gets.chomp
player_A.bet_money = bet_money.to_i
#Mettre le piquet (en face)
bet_money_B = rand(1..4) * 200
player_B.bet_money = player_B.money < bet_money_B ? player_B.money : bet_money_B
puts <<~TEXT
Nom:#{player_A.name}
Argent de possession:#{player_A.money}Pelica
Pari:#{player_A.bet_money}Pelica
-
Nom:#{player_B.name}
Argent de possession:#{player_B.money}Pelica
Pari:#{player_B.bet_money}Pelica
press enter
TEXT
teisi = gets
#Lancer les dés/Décision de rôle
eye_on_the_dices1 = [rand(1..6),rand(1..6),rand(1..6)]
eye_on_the_dices2 = [rand(1..6),rand(1..6),rand(1..6)]
player_A.hand = roll_dice(eye_on_the_dices1)
player_B.hand = roll_dice(eye_on_the_dices2)
#Confirmation d'apparence / détermination du rôle
puts <<~TEXT
Nom:#{player_A.name}
Rouleau#{eye_on_the_dices1}
Rôle:#{player_A.hand}
-
Nom:#{player_B.name}
Rouleau#{eye_on_the_dices2}
Rôle:#{player_B.hand}
press enter
TEXT
teisi = gets
#Jugement gagnant / perdant
win_or_lose = player_A.check_win_lose(player_B)
#Déplacer le pieu
move_money = player_A.transfer_money(player_B,win_or_lose)
player_A.money += move_money
player_B.money -= move_money
puts <<~TEXT
Nom:#{player_A.name}
Argent de possession:#{player_A.money}Pelica
-
Nom:#{player_B.name}
Argent de possession:#{player_B.money}Pelica
--------------------------
TEXT
#Jugement final de victoire / défaite
if player_A.money <= 0
puts 'Pas d'argent en possession. perdu…'
break
elsif player_B.money <= 0
puts 'A gagné!'
break
end
# ----Boucle jusqu'à ce qu'il soit réglé
end
Ichiou Maintenant, vous pouvez jouer. Cependant, il doit encore être amélioré.
Le code ci-dessus n'a aucune restriction sur l'entrée de mise. Dans ce cas, vous pouvez entrer plus de mises que vous n'en avez et accepter des nombres négatifs, des points décimaux et des chaînes. Améliorons-nous.
#Mettre la mise (vous-même)
while true
puts 'Entrez votre pari (entrez exit pour sortir)'
bet_money = gets.chomp
if bet_money == "exit"
puts 'Fin'
exit
end
if bet_money =~ /^[0-9]+$/
if bet_money.to_i > player_A.money
puts 'Vous ne pouvez pas parier plus que votre argent'
elsif bet_money.to_i == 0
puts '0 est invalide'
else
player_A.bet_money = bet_money.to_i
break
end
else
puts 'Veuillez saisir un entier positif'
end
end
Il y a trois changements.
--Modifié pour que vous puissiez quitter le jeu en tapant ʻexit --Vérifiez qu'il n'y a pas de chaînes de caractères ou de points décimaux avec
= ~ / ^ [0-9] + $ /`
Cela devrait fonctionner correctement.
Je ne pourrais faire un jeu qu'avec Ruby. Je suis un peu content. J'étais si heureux d'avoir fait une présentation lors de la session d'étude. Lors de l'événement appelé le cluster Hiroshima, vous pouvez annoncer tout ce qui ressemble à l'informatique dans la préfecture d'Hiroshima.
https://hmcn.connpass.com/event/175209/
Cliquez ici pour les matériaux. https://www.slideshare.net/Kkondo2/ruby-234646600?ref=https://hmcn.connpass.com/event/175209/presentation/
J'ai pu écrire le code en toute sécurité, mais il y a encore des points à améliorer. Lorsque j'ai demandé un avis aux ingénieurs, j'ai reçu beaucoup de commentaires. Pour le moment, je l'ai mis dans un numéro sur github et j'ai décidé de répondre de plus en plus.
Je vais le faire! https://github.com/kyokucho1989/ruby-game/issues
N'hésitez pas non plus à utiliser ce code source. Vous pouvez le cloner et le modifier. https://github.com/kyokucho1989/ruby-game
Recommended Posts