Skip to content

Instantly share code, notes, and snippets.

@oguzcan-yavuz
Last active May 14, 2018 16:52
Show Gist options
  • Save oguzcan-yavuz/3dcc4c965945c6f30270d804114adeb3 to your computer and use it in GitHub Desktop.
Save oguzcan-yavuz/3dcc4c965945c6f30270d804114adeb3 to your computer and use it in GitHub Desktop.
ruby-final
=begin
antik cagda yasayan bir sultanin 1000 askeri vardir. askerler halka seklinde
siralaniyor. her asker sagindaki askeri kilicla yaraliyor ve yaralanan asker oyundan cikiyor.
oyun siradaki askere geciyor. yani halkanin ilk hali (1,2,3,4,5,6,7,8,9) iken sonraki hali
(1,3,5,7,9) oluyor.
yarismayi hangi asker kazanir? oyunu nesne tabanli programlama mantigi ile kodlayiniz.
NOT: kac asker oyuna dahil olacak ve oyunun kacinci askerden baslayacagini kullanici
belirleyecektir.
=end
class Oyun
def initialize(asker, baslangic)
@asker = asker
@baslangic = baslangic - 1
end
def oyna
askerler = (1..@asker).to_a
while askerler.length != 1
askerler.delete_at(@baslangic + 1)
@baslangic += 1
if askerler[@baslangic + 1] == nil
if askerler[@baslangic] == nil
@baslangic = 0
else
@baslangic = -1
end
end
end
return askerler
end
end
def main
puts "Kac asker olsun?"
asker = gets.to_i
puts "Kactan baslasin?"
baslangic = gets.to_i
oyun = Oyun.new(asker, baslangic)
puts oyun.oyna
end
main()
=begin
iki kisi 100 defa zar atiyor. bu kisilerden hangisi kac defa
oyun kazanmis, hangi kullanicilarin zar atislarindan
kac puan topladigi ve birbirine oranini
bulan programi modul olarak yaz ve program
icinden class yardimiyla cagirip calistirin
=end
require "./zar100_modul.rb"
class Oyun
include Zar
end
oyun = Oyun.new
oyun.sonuclari_goster
oyun.zar_at
oyun.sonuclari_goster
=begin
iki zar 10000 defa atiliyor. zarlarin 6-6 veya 5-4
gelme durumunu bularak kac kez 6-6, kac kez 5-4 geldigini
hesaplayan programi nesne tabanli programlama mantigi ile
kodlayiniz
=end
class Zar
def initialize
@duses = 0
@besdort = 0
end
def zar_at
for _ in (0..10000)
zarlar = [rand(0..6), rand(0..6)]
if zarlar == [6, 6]
@duses += 1
elsif zarlar == [5, 4] || zarlar == [4, 5]
@besdort += 1
end
end
end
def sonuc
puts "toplam gelen 6-6 sayisi: #{@duses}"
puts "toplam gelen 5-4 sayisi: #{@besdort}"
end
end
zar = Zar.new
zar.zar_at
zar.sonuc
module Zar
def initialize
@kisi_1 = 0
@kisi_2 = 0
@kisi_1_puan = 0
@kisi_2_puan = 0
end
def zar_at
for _ in (0..100)
zar_1 = rand(0..6)
zar_2 = rand(0..6)
if zar_1 > zar_2
@kisi_1 += 1
elsif zar_2 > zar_1
@kisi_2 += 1
end
@kisi_1_puan += zar_1
@kisi_2_puan += zar_2
end
end
def sonuclari_goster
puts "Kisi 1'in kazanma sayisi: #{@kisi_1}"
puts "Kisi 2'nin kazanma sayisi: #{@kisi_2}"
puts "Kisi 1'in toplam attigi zar degerleri: #{@kisi_1_puan}"
puts "Kisi 2'nin toplam attigi zar degerleri: #{@kisi_2_puan}"
if @kisi_1 != 0 && @kisi_2 != 0
puts "Kisi 1'in Kisi 2'ye gore kazanma yuzdesi: %#{@kisi_1 * 100.0 / (@kisi_1 + @kisi_2)}"
puts "Kisi 1'in Kisi 2'ye gore toplam puan yuzdesi: %#{@kisi_1_puan * 100.0 / (@kisi_1_puan + @kisi_2_puan)}"
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment