Création d'un jeu Chinchiro avec Ruby 4th Création d'un processus de progression du jeu

1.Tout d'abord

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.

2. Créez main.rb

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é.

3. Gestion des exceptions de paris

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.

4. Le jeu est prêt!

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/

5. Il y a de nombreuses améliorations!

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

Création d'un jeu Chinchiro avec Ruby 4th Création d'un processus de progression du jeu
Faites un jeu de frappe avec ruby
Créer un jeu Chinchiro avec une amélioration de Ruby Final après avoir reçu un avis
Création d'un outil d'automatisation de navigateur avec Ruby + Selenium
Créer un calendrier avec Ruby
Créer une application de minuterie avec de la boue
La programmation de jeux Ruby a commencé avec un navigateur: Introduction à Nyle-canvas (style DXRuby)
Avec ruby ● × Game et Othello (examen de base)
La route pour créer un jeu sonore 2
J'ai fait une mort risquée avec Ruby
Extraire une partie d'une chaîne en Ruby
La route pour créer un jeu sonore 3
La route pour créer un jeu sonore 1
Traitement d'échappement lors de la création d'une URL dans Ruby
AtCoder Beginner Contest 169 A, B, C avec rubis
Créons un processus chronométré avec la minuterie de Java! !!
(Ruby on Rails6) Création de données dans une table
Un simple jeu de ciseaux-papier-pierre avec JavaFX et SceneBuilder
Création d'un référentiel commun avec Spring Data JPA
J'ai fait un portfolio avec Ruby On Rails