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.
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.
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.
= ~ / ^ [0-9] + $ /
gibtDies sollte gut funktionieren.
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/
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