Erstellen eines Chinchiro-Spiels mit Ruby 4. Erstellen eines Spielfortschrittsprozesses

1. Zuallererst

Schließlich werde ich den Prozess schreiben, der sich auf den Fortschritt des Spiels bezieht. Da jede Methode im Voraus implementiert wird, sollte es einfacher sein, als bei Null anzufangen. Machen wir das.

2. Erstellen Sie main.rb.

Erstellen Sie main.rb im selben Ordner wie jede Datei. Schreiben wir zunächst den Ablauf wie folgt.


#Chinchiro-Spiel

#Einen Spieler erstellen

# ----Schleife bis zur Abwicklung
#Setzen Sie den Einsatz (selbst)
#Einsatz setzen (gegenüber)
#Würfeln
#Rollenentscheidung
#Gewinn / Verlust-Urteil
#Pfahl bewegen
#Endgültiges Urteil über Sieg / Niederlage
# ----Schleife bis zur Abwicklung

Ich werde es nach und nach hinzufügen. transfer_money.rb wurde in player_class.rb geändert.

require './player_class'  # transfer_money.Wechsel von rb
require './dice_roll'
#Chinchiro-Spiel

#Einen Spieler erstellen
player_A = Player.new(money:1000,name:'Kaiji')
player_B = Player.new(money:1000,name:'Gruppenleiter')
puts '---Chinchiro-Spiel---'

# ----Schleife bis zur Abwicklung
loop do
#Setzen Sie den Einsatz (selbst)
  puts 'Bitte geben Sie die Wette ein'
  bet_money = gets.chomp
  player_A.bet_money = bet_money.to_i
#Einsatz setzen (gegenüber)
  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
Name:#{player_A.name} 
Besitzgeld:#{player_A.money}Pelica
Wette:#{player_A.bet_money}Pelica
    -
Name:#{player_B.name} 
Besitzgeld:#{player_B.money}Pelica
Wette:#{player_B.bet_money}Pelica

    press enter
    TEXT
    teisi = gets
#Würfeln/Rollenentscheidung
    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)

    #Bestätigung des Aussehens / Bestimmung der Rolle
    puts <<~TEXT
Name:#{player_A.name} 
Rollen#{eye_on_the_dices1}
Rolle:#{player_A.hand}
    -
Name:#{player_B.name}
Rollen#{eye_on_the_dices2} 
Rolle:#{player_B.hand}

    press enter
    TEXT
    teisi = gets
#Gewinn / Verlust-Urteil
   win_or_lose = player_A.check_win_lose(player_B)
#Pfahl bewegen
   move_money = player_A.transfer_money(player_B,win_or_lose)

   player_A.money += move_money
   player_B.money -= move_money
    puts <<~TEXT
Name:#{player_A.name} 
Besitzgeld:#{player_A.money}Pelica
    -
Name:#{player_B.name} 
Besitzgeld:#{player_B.money}Pelica
    --------------------------
    TEXT
#Endgültiges Urteil über Sieg / Niederlage
    if player_A.money <= 0
        puts 'Kein Geld im Besitz. hat verloren…'  
        break
    elsif player_B.money <= 0
        puts 'Gewonnen!'
        break
    end
# ----Schleife bis zur Abwicklung
end

Ichiou Jetzt kannst du spielen. Es muss jedoch noch verbessert werden.

3. Behandlung von Wettausnahmen

Der obige Code unterliegt keinen Einschränkungen für den Einsatz von Einsätzen. In diesem Fall können Sie mehr Einsätze als bisher eingeben und negative Zahlen, Dezimalstellen und Zeichenfolgen akzeptieren. Lass uns verbessern.

#Setzen Sie den Einsatz (selbst)
    while true
        puts 'Geben Sie Ihre Wette ein (geben Sie Exit ein, um zu beenden)'
        bet_money = gets.chomp
        
        if bet_money == "exit"
            puts 'Ende'
            exit
        end
        if bet_money =~ /^[0-9]+$/ 
            if bet_money.to_i > player_A.money
                puts 'Sie können nicht mehr als Ihr Geld setzen'
            elsif bet_money.to_i == 0
                puts '0 ist ungültig'
            else
                player_A.bet_money = bet_money.to_i
                break
            end
        else
            puts 'Bitte geben Sie als positive Ganzzahl ein'
        end
    end

Es gibt drei Änderungen.

Dies sollte gut funktionieren.

4. Das Spiel ist fertig!

Ich könnte ein Spiel nur mit Ruby machen. Ich bin ein bisschen glücklich Ich war so glücklich, dass ich während der Lernsitzung eine Präsentation hielt. Auf der Veranstaltung Hiroshima Cluster können Sie alles ankündigen, was in der Präfektur Hiroshima IT-ähnlich ist.

https://hmcn.connpass.com/event/175209/

Klicken Sie hier für Materialien.  https://www.slideshare.net/Kkondo2/ruby-234646600?ref=https://hmcn.connpass.com/event/175209/presentation/

5. Es gibt viele Verbesserungen!

Ich konnte den Code sicher schreiben, aber es gibt noch Verbesserungsmöglichkeiten. Als ich die Ingenieure um eine Überprüfung bat, erhielt ich viele Rückmeldungen. Vorerst habe ich es in ein Thema auf Github gestellt und beschlossen, immer mehr zu antworten.

Ich werde es tun! https://github.com/kyokucho1989/ruby-game/issues

Sie können diesen Quellcode auch verwenden. Sie können es klonen und ändern. https://github.com/kyokucho1989/ruby-game

Recommended Posts

Erstellen eines Chinchiro-Spiels mit Ruby 4. Erstellen eines Spielfortschrittsprozesses
Machen Sie ein Tippspiel mit Ruby
Erstellen eines Chinchiro-Spiels mit Ruby Final-Verbesserung nach Erhalt einer Bewertung
Erstellen eines Browser-Automatisierungstools mit Ruby + Selenium
Erstellen eines Kalenders mit Ruby
Erstellen einer Timer-App mit Schlamm
Die Programmierung von Ruby-Spielen begann mit einem Browser: Einführung in Nyle-Canvas (DXRuby-Stil)
Mit Rubin ● × Game und Othello (Grundlegende Bewertung)
Der Weg zur Erstellung eines Soundspiels 2
Ich habe mit Ruby einen riskanten Würfel gemacht
Extrahieren Sie einen Teil einer Zeichenfolge in Ruby
Der Weg zur Erstellung eines Soundspiels 3
Der Weg zur Erstellung eines Soundspiels 1
Escape-Verarbeitung beim Erstellen einer URL in Ruby
AtCoder Anfängerwettbewerb 169 A, B, C mit Rubin
Lassen Sie uns mit Javas Timer einen zeitgesteuerten Prozess erstellen! !!
(Ruby on Rails6) Erstellen von Daten in einer Tabelle
Ein einfaches Stein-Papier-Scheren-Spiel mit JavaFX und SceneBuilder
Erstellen eines gemeinsamen Repositorys mit Spring Data JPA
Ich habe mit Ruby On Rails ein Portfolio erstellt