Skip to content

Instantly share code, notes, and snippets.

@petja
Created August 5, 2017 20:56
Show Gist options
  • Save petja/560a0f0e893a7309c91d816214f4e899 to your computer and use it in GitHub Desktop.
Save petja/560a0f0e893a7309c91d816214f4e899 to your computer and use it in GitHub Desktop.
Torakka-Jalka-Ydinpommi -peli
# Aseta vakiot
PELAAJA = 1
TASAPELI = 0
TIETOKONE = -1
TORAKKA = 0
JALKA = 1
YDINPOMMI = 2
LOPETA = 3
NIMET = ["torakan", "jalan", "ydinpommin"]
# Pidä kirjaa pisteistä
pisteetPelaaja = 0
pisteetTietokone = 0
# Kysy käyttäjältä hänen valintansa
def kysyValinta()
puts "1: Torakka 2: Jalka 3: Ydinpommi 4: lopeta"
puts "Valitse (1-4):"
valinta = gets.to_i - 1
return nil if valinta == LOPETA
return valinta
end
# p1 on ensimmäisen pelaajan tekemä valinta
# p2 on toisen pelaajan tekemä valinta
# Kutsuu itseään käännetyillä arvoilla jos sopivaa ehtoa ei löydy
# Palauttaa 1 tai -1 sen mukaan kumpi voitti
def paatteleVoittaja(p1, p2, kerroin = 1)
return TASAPELI if p1 == p2
return kerroin if p1 == JALKA && p2 == TORAKKA
return kerroin if p1 == YDINPOMMI && p2 == JALKA
return kerroin if p1 == TORAKKA && p2 == YDINPOMMI
return paatteleVoittaja(p2, p1, -1) if kerroin == 1
end
loop do
# Kysy pelaajan valinta
valintaPelaaja = kysyValinta()
break if valintaPelaaja.nil?
# Arvo tietokoneen valinta
valintaTietokone = rand(3)
# Laske kumpi voitti
voittaja = paatteleVoittaja(valintaPelaaja, valintaTietokone)
# Kerro valinnat
if voittaja == TASAPELI
puts "Valitsitte saman, tasapeli."
else
puts "Valitsit #{NIMET[valintaPelaaja]}, tietokone valitsi #{NIMET[valintaTietokone]}."
if voittaja == PELAAJA
puts "Voitit!"
pisteetPelaaja += 1
elsif voittaja == TIETOKONE
puts "Tietokone voitti."
pisteetTietokone += 1
end
end
# Kerro pelitilanne
puts "Peli on pelaaja #{pisteetPelaaja} : tietokone #{pisteetTietokone}"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment