IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 22 Şubat 2012, 15:00   #1
Çevrimdışı
aSi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Tavşan Kaplumbağa Yarışı




Bu soruda klasik Tavşan-Kaplumbağa yarışı simüle edilmektedir. Yarışmacılar 1’den 70’e kadar olan karelerden oluşan bir yol üzerinde yarış yapmaktadırlar. Yarış 70. karede sona ermektedir. Yarışta birinci gelene bir demet taze havuç ve lahana ödülü verilmektedir. J Bu yarışta kullanılan yol kaygan ve dik bir dağ yoludur. Bu sebepten dolayı yarışmacılar adım attıklarında geri dogru kayabilmektedirler.

Programın iterasyonu için saniyeler kullanılmaktadır. Her tik tak’da yarışmacıların pozisyonu aşağıdaki tabloya göre belirlenmektedir.

Yarışmacı
Move type
Zaman yuzdesi
Gerçek hareket
Kaplumbağa
Uzun adım
50%
3 kare sağa
Geri Kay
20%
6 kare sola
Kısa adım
30%
1 kare sağa
Tavşan
Uyu
20%
Yerinde kal
Buyuk zıpla
20%
9 kare sağa
Cok geri kay
10%
12 kare sola
Kucuk zıpla
30%
1 kare sağa
Az geri kay
20%
2 kare sola

Yarışmacılar birinci kareden yarışa başlarlar ve ekranda BANG yazısı cıkar. İlk harekette geri kayma söz konusu olursa yarışmacıların mevkii yine ilk kare olarak belirlenir.
Her iterasyonda bir ile on arasında bir sayı üretin. Üretilen sayı “i” olsun
Tavsan için ;
1<=i<=2 : Uyu
3<= i <=4
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
üyük Zıpla

i=5 :Çok Geri Kay
6<=i<= 8 :Küçük Zıpla
8<=i<= 10 :Az geri kay Hamlelerini ve

Kaplumbağa icin;
1<=i<=5 : uzun adım
5<= i <=7 geri kay
8<=i<= 10 kısa adım Hamleleri uygula.
Yarışın sonucunu ve tavşanla kaplumbağanın izlediği yolu ekrana yazdırın. Her saniye için yol üzerinde Tavsanın olduğu kareye T, kaplumbağanın bulunduğu kareye K harfi yerleştirin. Eğer Tavsan ve Kaplumbağa aynı kareye düşerse kaplumbağa tavşanı ısıracaktır. Bu durumda ilgili kareye ‘X’ harfi yerleştirin. T,K ve X yerleştirilmeyen diğer tüm kareler için ‘ ’ ya da ‘_’ karakteri yerleştirin
Programın çalışması bittiğinde hangi yarışmacının birinci geldiğini belirtin. Eğer yarışmacılar yarısı aynı anda geldi ise bu durumu da BERABERE seklinde bir ifade ile belirtin.
Çeviri biraz aceleye geldi. Sorularınız olursa cevaplayabilirim.
Kaynak: C++ How to Program, Deitel&Deitel (soru 8.17)

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include <cstdlib> #include <iostream> #include <ctime> using namespace std; int main(int argc, char *argv[]) { char yol[70]; int tavsan=0; int kaplumbaga=0; int zar=0; cout<<"BANG"<<endl; srand(time(0)); for (zar=0;zar<70;zar++) yol[zar]='_'; for(;;) { zar=(rand()%10)+1; if (zar==1) { kaplumbaga+=3;tavsan+=0; } if (zar==2) { kaplumbaga+=3;tavsan+=0; } if (zar==3) { kaplumbaga+=3;tavsan+=9; } if (zar==4) { kaplumbaga+=3;tavsan+=9; } if (zar==5) { kaplumbaga+=3; if (tavsan-12<1) tavsan=1; else tavsan-=12; } if (zar==6) { tavsan+=1; if (kaplumbaga-6<1) kaplumbaga=1; else kaplumbaga-=6; } if (zar==7) { tavsan+=1; if (kaplumbaga-6<1) kaplumbaga=1; else kaplumbaga-=6; } if (zar==8) { kaplumbaga+=3;tavsan+=1; } if (zar==9) { kaplumbaga+=3; if (tavsan-2<1) tavsan=1; else tavsan-=2; } if (zar==10) { kaplumbaga+=3; if (tavsan-2<1) tavsan=1; else tavsan-=2; } if (tavsan==kaplumbaga) yol[tavsan]='X'; else { yol[tavsan]='T'; yol[kaplumbaga]='K'; } kaplumbaga:"<<kaplumbaga<<endl; for (zar=0;zar<70;zar++) cout<<yol[zar]; cout<<endl; for (zar=0;zar<70;zar++) yol[zar]='_'; if (tavsan>69) { cout<<endl<<"____________T A V S A N kazandi"<<endl; break; } if (kaplumbaga>69) { cout<<endl<<"____________K A P L U M B A G A kazandi"<<endl; break; } } cout<<endl; system("PAUSE"); return EXIT_SUCCESS; }


__________________
Doğruları biliyorsan, yalanları dinlemek eğlencelidir.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Cevapla

Etiketler
kaplumbaĞa


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
İki kaplumbağa Aria Fıkra 3 24 Nisan 2011 00:20
Kaplumbağa'nın doğu$u. KaRma Genel Paylaşım 1 21 Eylül 2007 16:28
Kaplumbağa Hasan Fıkra 0 16 Temmuz 2006 11:01