Last active
May 14, 2018 16:52
-
-
Save oguzcan-yavuz/3dcc4c965945c6f30270d804114adeb3 to your computer and use it in GitHub Desktop.
ruby-final
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=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() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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