Gönderen Konu: Pi$ti  (Okunma sayısı 3896 defa)

Pi$ti

« : 23.07.2008 00:56:43 »
Hızlı düğmeleri aç

murqx

İleti: 35

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
tatildeyken yaptığım konsolda çalışan bir pişti oyunu. c++ ile yazıldı.
elinizdeki kartları konumuna göre atmanız gerekiyor (1, 2, 3, 4). başlangıçta, klasik pişti oyunundaki gibi ortada 4 kart var, 3'ü kapalı, en üstteki açık, ilk ortada gözüken kart bu açık olan.  

http://rapidshare.com/files/131709673/pisti.rar.html


not: forumun upload fasilitesi çalışmıyor.
« Son Düzenleme: 23.07.2008 00:59:09 Gönderen: murqx »

Pi$ti

« Yanıtla #1 : 23.07.2008 13:14:07 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
oyunun motoru düzgün çalışıyor. şimdi sıra bunu görsel bir hale getirmekte :)

Pi$ti

« Yanıtla #2 : 24.07.2008 00:09:38 »
Hızlı düğmeleri aç

tesla

İleti: 426

Çevrimdışı
  • ****
  • Sr. Member
    • Profili Görüntüle
    • http://
ılk bilgisayarımda (amcamın verdiği turuncu ekranlı Toshiba Laptop), bir pişti oyunu vardı. Text mode'da yapılmış ama gene kartlar falan text mode imkanları ile çizilmişti. Çok da pis oynuyordu, yenince de "Biz bu oyunu böyle oynarız! Öğren de gel!" gibi acayip sinir laflar ediyordu. Baya bi oynadığımı hatırlıyorum. Hele ki pişti yaptımı, bioooooovvvvv diye pc speaker'dan ses verirdi adamı iyice deli ederdi. Ya hiç oynamıcan, ya da yenene kadar oynican o kadar vardı yani.

Bu tür laflar oyunun oynanabilirliğini arttırıyor, sonraki versiyonlarına ekleyebilirsin. ? :rolleyes:

Pi$ti

« Yanıtla #3 : 24.07.2008 08:50:52 »
Hızlı düğmeleri aç

Bakkada

İleti: 1.073

Çevrimdışı
  • *****
  • Hero Member
    • Profili Görüntüle
Bir salaklik yaptim sadece K tusuna basip enterladim ve oyun bitti :)
 

Kod: [Seç]

Ortadaki Kart : 6♣
Elindeki kartlar :
K♠ A♣ 4♦ 8♦ Hangisini atmak istiyorsun? : k
Ortadaki Kart: 6♣
Bilgisayar J♦ atti
Ortadaki Kart : /
Elindeki kartlar :
K♠ A♣ 4♦ 8♦ Hangisini atmak istiyorsun? :
Ortadaki Kart: /
Bilgisayar 3♠ atti
Ortadaki Kart : 3♠
Elindeki kartlar :
K♠ A♣ 4♦ 8♦ Hangisini atmak istiyorsun? :
Ortadaki Kart: 3♠
Bilgisayar K♣ atti
Ortadaki Kart : K♣
Elindeki kartlar :
K♠ A♣ 4♦ 8♦ Hangisini atmak istiyorsun? :
Ortadaki Kart: K♣
Bilgisayar 4♣ atti
Ortadaki Kart : 4♣
Elindeki kartlar :
3♥ K♦ Q♠ A♠ Hangisini atmak istiyorsun? :
Ortadaki Kart: 4♣
Bilgisayar 9♣ atti
Ortadaki Kart : 9♣
Elindeki kartlar :
3♥ K♦ Q♠ A♠ Hangisini atmak istiyorsun? :
Ortadaki Kart: 9♣
Bilgisayar 6♦ atti
Ortadaki Kart : 6♦
Elindeki kartlar :
3♥ K♦ Q♠ A♠ Hangisini atmak istiyorsun? :
Ortadaki Kart: 6♦
Bilgisayar 6♠ atti
Ortadaki Kart : /
Elindeki kartlar :
3♥ K♦ Q♠ A♠ Hangisini atmak istiyorsun? :
Ortadaki Kart: /
Bilgisayar 5♣ atti
Ortadaki Kart : 5♣
Elindeki kartlar :
10♠ 7♣ Q♥ 4♥ Hangisini atmak istiyorsun? :
Ortadaki Kart: 5♣
Bilgisayar 5♠ atti
Pi$ti!
Ortadaki Kart : /
Elindeki kartlar :
10♠ 7♣ Q♥ 4♥ Hangisini atmak istiyorsun? :
Ortadaki Kart: /
Bilgisayar 9♦ atti
Ortadaki Kart : 9♦
Elindeki kartlar :
10♠ 7♣ Q♥ 4♥ Hangisini atmak istiyorsun? :
Ortadaki Kart: 9♦
Bilgisayar J♠ atti
Ortadaki Kart : /
Elindeki kartlar :
10♠ 7♣ Q♥ 4♥ Hangisini atmak istiyorsun? :
Ortadaki Kart: /
Bilgisayar A♦ atti
Ortadaki Kart : A♦
Elindeki kartlar :
7♥ 8♣ Q♣ J♥ Hangisini atmak istiyorsun? :
Ortadaki Kart: A♦
Bilgisayar A♥ atti
Pi$ti!
Ortadaki Kart : /
Elindeki kartlar :
7♥ 8♣ Q♣ J♥ Hangisini atmak istiyorsun? :
Ortadaki Kart: /
Bilgisayar 6♥ atti
Ortadaki Kart : 6♥
Elindeki kartlar :
7♥ 8♣ Q♣ J♥ Hangisini atmak istiyorsun? :
Ortadaki Kart: 6♥
Bilgisayar 10♦ atti
Ortadaki Kart : 10♦
Elindeki kartlar :
7♥ 8♣ Q♣ J♥ Hangisini atmak istiyorsun? :
Ortadaki Kart: 10♦
Bilgisayar 7♠ atti
Ortadaki Kart : 7♠
Elindeki kartlar :
2♠ J♣ 2♣ Q♦ Hangisini atmak istiyorsun? :
Ortadaki Kart: 7♠
Bilgisayar 9♥ atti
Ortadaki Kart : 9♥
Elindeki kartlar :
2♠ J♣ 2♣ Q♦ Hangisini atmak istiyorsun? :
Ortadaki Kart: 9♥
Bilgisayar 8♥ atti
Ortadaki Kart : 8♥
Elindeki kartlar :
2♠ J♣ 2♣ Q♦ Hangisini atmak istiyorsun? :
Ortadaki Kart: 8♥
Bilgisayar 2♥ atti
Ortadaki Kart : 2♥
Elindeki kartlar :
2♠ J♣ 2♣ Q♦ Hangisini atmak istiyorsun? :
Ortadaki Kart: 2♥
Bilgisayar 5♥ atti
Ortadaki Kart : 5♥
Elindeki kartlar :
K♥ 10♥ 7♦ 9♠ Hangisini atmak istiyorsun? :
Ortadaki Kart: 5♥
Bilgisayar 5♦ atti
Ortadaki Kart : /
Elindeki kartlar :
K♥ 10♥ 7♦ 9♠ Hangisini atmak istiyorsun? :
Ortadaki Kart: /
Bilgisayar 8♠ atti
Ortadaki Kart : 8♠
Elindeki kartlar :
K♥ 10♥ 7♦ 9♠ Hangisini atmak istiyorsun? :
Ortadaki Kart: 8♠
Bilgisayar 2♦ atti
Ortadaki Kart : 2♦
Elindeki kartlar :
K♥ 10♥ 7♦ 9♠ Hangisini atmak istiyorsun? :
Ortadaki Kart: 2♦
Bilgisayar 10♣ atti
Ortadaki Kart : 10♣
Kullanici puani : 0
Bilgisayar puani : 28
Bilgisayar Kazandi :(

 
Ayrica ben sifir puan aldiysam bilgisayarin 16,26,36... gibi degerler almasi gerekmiyor mu?Benim bildigim pistide A'lar birer puan , J'ler birer puan , 2♣ iki puan , 10♦ uc puan , kagit faslasi olan oyuncununda aldigi kagit uc die tabir edilen 3puani toplarsak toplam 16 puan eder.Pistiler 10ar puan oldugu icin 28 gibi bi skor benim hesabime gore olmamali.Yanlis biliyorsam duzeltin lutfen .

Pi$ti

« Yanıtla #4 : 24.07.2008 23:54:51 »
Hızlı düğmeleri aç

murqx

İleti: 35

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
@ bakkada, doğru biliyorsun.

bende puanlama şöyle:    

   
Kod: [Seç]
{
      if(deck[n].getnumber()==2 && deck[n].getsuit()==0)
      puan += 2; else if(deck[n].getnumber()==10 && deck[n].getsuit()==1)
      puan += 3; else if(deck[n].getnumber()==14 ||
     deck[n].getnumber()==11)
      puan += 1;
}

yani A'lar birer puan , J'ler birer puan , 2♣ iki puan , 10♦ uc puan. en son da, kim fazla kart aldıysa 3 puan daha ekleniyor. neden seninki gibi bir sonuç çıktı anlamadım pek.

Pi$ti

« Yanıtla #5 : 25.07.2008 01:46:45 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
@murqx: ben alaylı bir yazılımcı olarak sana teknik adımları anlatmaya uygun biri değilim aslında ancak yine de özetle şunu hatırlatmam lazım. bir yazılım projesi genel kabul itibariyle aşağıdaki adımlardan oluşur.
 
1) Problemin sorgulanması
2) Analiz
3) Kod yazma
4) Test ve problem çözülmesi (bu madde sık sık 3. maddeye geri döner)
5) Dökümantasyon ve paketleme
 
"neden seninki gibi bir sonuç çıktı anlamadım pek." demişsin de ondan bu adımları hatırlatmak istedim. sen büyük olasılıkla 3. maddeden başladın ve 3. maddede bitirdin. bu yüzden böyle bir sonuç çıktı. buglar yazılım dünyasının en tatlı (!) cilveleridir. projeler büyüdükçe bugsız bir proje ortaya çıkarmak imkansızlaşır. önemli olan tüm ihtimallerin test edilmesi ve bakkada'nın yaptığı beta testerlığı bilinçli olarak kişilerin yapması, son adımda ise bu bugların fixlenmesidir.
 
şimdi sen derleyiciden çalıştırıyorsun programı ve klavyeden input alan scanf, cin v.s. komutundan sonraki satıra bir breakpoint koyuyorsun. Sonra Bakkada'nın yazdığı durumu deneyip, kodda satır satır ilerleyip değişkenlerin durumunu izleyerek problemin kaynağını buluyorsun.
 
Yazılım dünyasına hoşgeldin. :)

Pi$ti

« Yanıtla #6 : 25.07.2008 03:44:23 »
Hızlı düğmeleri aç

murqx

İleti: 35

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
@ skate, öneriler için teşekkür ederim bundan sonra hep aklımın bir köşesinde bulunur :)

 benim takıldığım nokta "k" ya basınca oyunun bitmesi değil de, puanların neden 16 ve 16'nın 10'ar fazlası olmadığı idi. programı biraz daha zorladım ve böyle bir problem, doğru oynandığında ortaya çıkmıyor. sanırım yanlış bişeye basınca oyunun kendi kendine bitmesini de girilen değer 1, 2, 3 veya 4 olmadığında kabul etmeyerek(uyarı mesajı ve tekrar değer girilmesini istemeyi sağlıycak bir do while iş görür galiba) engelleyebilirim.

pi$ti v2 yakında :p

Pi$ti

« Yanıtla #7 : 25.07.2008 03:53:28 »
Hızlı düğmeleri aç

coze

İleti: 238

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
ben biliyom, murqx yazdığım program kolay yenilmesin diye 2 puan kıyak yapmış bilgisayara şimdi burada böyle kıvırtıyo bilmiyom filan diye :)

Pi$ti

« Yanıtla #8 : 25.07.2008 05:39:29 »
Hızlı düğmeleri aç

murqx

İleti: 35

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
@ coze, ehheh her türlü yener ki o :p .

bu arada sorunu çözdüm, puan heseplamasındaki hata bilgisayar pi$ti yaptığında uygulanan if else bloğundaki ufak bir yazım hatasından kaynaklanıyormuş.

buradan indirebilirsiniz:
http://rapidshare.com/files/132254180/pistig.rar.html

not: oynarken yanlış tuşa basmanız durumunda ortaya çıkan hata devam ediyor. düzeltirim onu yakında.

Pi$ti

« Yanıtla #9 : 25.07.2008 10:30:30 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Ufak bir tavsiye. Kullanıcıya doğrudan text input yaptıracağına şöyle bir görüntü oluşturup;
Kod: [Seç]
K♠ A♣ 4♦ 8♦
1  2  3  4
daha sonra conio.h'da yer alan getch()'den dönen sonuca bakabilirsin. tamamen kafadan atarak yazıyorum, yanlış olabilir kod ama şunun gibi birşey demek istediğim.
Kod: [Seç]
#include
#include
void main()
{
    int c;
    printf("1  2  3  4\n");
    do {
       c = getch();
    } while(c < '1' || c > '4');
    printf("%c tusuna bastiniz\n",c);
}
Bu sayede başka tuşa basma imkanı kalmaz kullanıcının ve uzun uzun da birşey yazıp saçmalayamaz.

Pi$ti

« Yanıtla #10 : 25.07.2008 14:23:02 »
Hızlı düğmeleri aç

Bakkada

İleti: 1.073

Çevrimdışı
  • *****
  • Hero Member
    • Profili Görüntüle
Ya simdi aklima geldi ilerde Strip Pisti yapilsa :)