Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Öne çıkan mesajlar

Mesaj tarihi:
Javayla texas holdem yazmaya çalışıyorum. Fakat mesela kartları random olarak 4 oyuncuya dağıtırken bir oyuncuya gelen kartın diğerine gelmesini nasıl engelleyebilirim? Mesela 1. oyuncunun 1. kartı a1 olsun:


Random kartlar = new Random();
a1=kartlar.nextInt(52)+1;


diye 52 sayıdan 1ini a1'e atıyorum, daha sonra bu sayıları kartlara eşitlicem. Fakat gelen bir sayıyı başka oyuncuya vermemenin kısa yolunu çözemedim. Yoksa her seferinde if kontrolü mü yapmam gerekecek?
Mesaj tarihi:
Kartlari random sekilde bir array'a at. Sonra sirayla kullanicilara dagit.

array_shuffle gibi bir fonksiyon mevcuttur mutlaka.

edit : varmis ve gayet de kolaymis =)

http://www.google.com.tr/search?hl=tr&q=java+array+shuffle&btnG=Google%27da+Ara&meta=&aq=0&oq=java+array+shu
Mesaj tarihi:
aynen en rahat cozum sanki vector/arraylist kullanmak di nin dedigi gibi.

her kartta random cekmek eziyet.

soru uzerine edit: direk 39. eleman olarak degilde kupa7 objesini cekiceksin, bi problem olmayacak?
Mesaj tarihi:
Di nin ve benim onerdigim cozum normalde oyunun isleyisi nasilsa oyle.

kartlar onceden varlar(tanimlanan arraylist), bu desteyi kariyorsun(shuffle), sonra ustten kart objesini(ister Alist, ister stack kullan) cekiyorsun.

senin soyledigin tum kartlar bi dizide, aradan cekmek istiyorsun. o isde tekrar ayni karti cekmemek veya cektigin boslugu null yapiyorsan bos yer cekmemek icin listeyi kaydirmak falan lazim galiba. illa o sekilde yapmak istiyorsan cozumu bimliyorum.

ben kafadan kart objesi icin stack kullanirdim heralde.
Mesaj tarihi:
Abi bi kere de ben tekrar edeyim =)

Sirali 52 kart icinden random siralari cekmeye calisma. Zira gercek oyunda bile oyle yapmiyorsun.

Kartlari karistir = Array'i shuffle et.
Sirayla dagit = Ilk elemandan almaya basla.
Mesaj tarihi:
Ben kaynak olarak prentice hall un introduction to java programming, comprehenseive ver. 6th ed. kullaniyorum, ebook olarak bulabilirsin. Stack gayet rahat anlatilmis.

Ama acikcasi javaya cok asina degilim, sanirim standart stack tanimi disinde kendi objene gore, array tabanli veya linked listed tabanli olarak implementation lari var. Mirage ve ekurisi daha isabetli konusur bu konuda tahminimce ben yanlis yol gostermeyeyim data structure lara hakim degilsen.

edit: evet vector/al de ayni isi goruyor daha once dedigim gibi.
Mesaj tarihi:
Bende daha javayı bu sene öğrenmeye başladım, açıkçası hiçbir şeye aşina değilim asdf. Kendimi geliştirebilmek içinde işte böyle kendi çapımda birşeyler yapmaya çalışıyorum. Sorularım devam edecek gibi yanıtlarsanız sevinirim =)
Mesaj tarihi:
KHaRoN said:

Ama acikcasi javaya cok asina degilim, sanirim standart stack tanimi disinde kendi objene gore, array tabanli veya linked listed tabanli olarak implementation lari var. Mirage ve ekurisi daha isabetli konusur bu konuda tahminimce ben yanlis yol gostermeyeyim data structure lara hakim degilsen.


stack aynı stack sonuçta mantığı değişmiyor. ister array kullan ister vector ister list. dışarıdan stack'i kullanacak insan için birşey değişmez, ideal olanı bu yani.
Mesaj tarihi:
SpiderS_DangeR said:
stack kullanımını anlatan bir link verebilir misiniz acaba? ben bulamadım da veya buldum da anlamadım
edit: get ile ArrayList'den alıyorum kartları herhalde stacke gerek yok?


Stack'i masanın üstünde duran bir kart destesi olarak düşün. Temelinde iki temel metodu vardır: pop ve push. Ek olarak kolaylık olsun diye peek ve empty diye iki metod daha eklenir genelde.

void Push(Card) - Destenin en üstüne bir kart koyarsın
Card Pop() - Destenin en üstündeki kartı desteden alıp ne olduğuna bakarsın
Card Peek() - Destenin en üstündeki kartı desteden almadan ne olduğuna bakarsın
void Empty() - Destedeki tüm kartları boşaltırsın

Senin için ne yararı var? Desteni stack ile gerçekçi olarak temsil edebilirsin. Boş bir stack yaparsın. Tüm kartları sırayla destene koyarsın. Collections.shuffle kullanarak karıştırırsın. Sonra da -aynı gerçek hayatta yapacağın gibi- pop ile kartları en üstten tek tek alarak dağıtırsın. Böylece index ile uğraşman gerekmez ve kod daha anlaşılır olur.

Array kullanarak da yaparsın. Bir çok şekilde yapabilirsin. Stack en iyi yoldur diye bir iddiam da yok. Ama bence kullandığın örneğe çok iyi uyuyor ve stack öğrenmen için çok iyi bir nokta. :)

Bu arada Java 1.6 öncesi Stack class'ını kullanabilirsin. 1.6 sonrası Deque kullanın demişler. Yine deste örneğinden gidersek, Deque'da ek olarak destenin arkasındaki kartlarda da işlem yapabilirsin. Ama sadece pop, push, peek kullandığın taktirde Deque ve Stack arasında pek bir fark yok.
Mesaj tarihi:
Pluton said:
Peki bu javayı öğrenmek için nerden başlamalıyız bi fikir verebilir misiniz ?

öğrenmek önce yürekten başlar, önce bi arıcaksın içini var mı içinde diye :)
ben şahsen java bilmiyorum ama bu dönem bi object oriented dersi aldım c++ ile, oop ile beraber çalışmalısın java.
Mesaj tarihi:
Uzun zamandır aklıma olan bir fikirde, php'de yanlış başladığımı anladıgımda çok geçti bari javaya yanlış başlamayım diye uğraşıyorum. Herkes başkja bişiy söylüyor
Mesaj tarihi:
Arthur'un söylediğine katılıyorum. OOP ile Java'yı birlikte öğren. OOP'yi enin seveceğin ve anlayacağın bir şekilde anlatan bir kitap bul. OOP konseptlerini öğrendikçe Java'da bunları uygula ve pekiştir.

Zaten "Java biliyorum" diyebilmek için OOP bilmek ön koşul. OOP öğrendikten sonra Java öğrenmenin en büyük kısmı Syntax ve Library öğrenmekten ibaret.
Mesaj tarihi:
Ilk sayfadaki mesajimda bahsettigim kitabi tavsiye ederim, basit bi sekilde en karmasik kavramlara guzel orneklerle girip cikan bi kitap. Konu ve dizin dagilimlarida agir olmayacak sekilde ihtiyaclari karsilar nitelikte.

programlamaya dair hicbirsey bilmeseydim baslayacagim kitap olurdu heralde.
Mesaj tarihi:
OOP mantığını php'den biliyorum. Java öğrenmeye çalışan birkaç arkadaşlarım var syntax'ı nedense bana yakın geldi. Kharon söylediğin kitap ingilizce, türkçesi oldugunu sanmamakla birlikte ingilizcemin yetersiz geleceğinden eminim =) Öyle çok ahım şahım bir ingilizcem yok.

Türkçe bi kitap e-book site v.s önerebilir misiniz bana rica etsem
Mesaj tarihi:
Selam,

Mirage çok güzel açıklamış eline sağlık, title ın hakkını veriyor zaten.

Benim nacizane görüşüm, Java nın Collection altında son dönem de toplanan mini API lerinden ziyade, ilk örneklerinde daha basit ama sana daha çok code yazdıracak yöntemler kullanman.

Ek kısa bir görüş olarak Obje tabanlı yazılım ile Obje ye yönelik yazılım arasındaki ince kırmızı çizginin iyi anlaşılması da çok çok çok önemli. Code a başlamadan önce 10 satır bile yazıcaksan toplamda, dizaynın hazır olmalı, yazdıkça karşına çıkabilecek sorun veyahut dar boğazları önceden görmelisin. Zamanla oluşmasını bekleme bu dürtünün, basit örneklerinde öbjeye yönelik düşünüp temellerini at, yanlış başlarsan yanlış gider.


Dealer, player, card ve table objelerin olsun. Table objen masadaki max ve min duracak para fişleri gibi sınırlamaları tutup zorlasın (enforce , türkçesi tam ne ise artık ). Dealer objenin elinde card 'array' i bulunsun ve bu array ı oluşturan kendi utility class ını yaz. Bu nokta çok önemli çünkü Java nın sana sağladığı API in tam olarak ne iş yaptığını en iyi mimik ederek sonra kullanarak öğrenirsin. Gerisini Mirage ve diğer arkadaşlar gayet güzel açıklamış. İş çok dallanmasın uğraşmıyayım dersen table objesini de uçur Dealer herşeyi bilsin player lar dealer ile takılsın.

Eğer stack, queue ve benzeri adamları şu anda derinlemesine anlamak/irdelemek için yeterli motivasyonun yok ise, sonucu görüp ilerlemek istiyor isen, boş zamanlarında Java String class ının method larını incele. Primitive Char kullanarak bunları kendin yazmaya çalış (subString vb.).

Java nın en güçlü yanlarından biri olan sunduğu sağlam API lar, başka bir dil e geçildiği zaman ne yazık ki elini kolunu bağlar. Adamların ne iş yaptıklarını ve nasıl yaptıkları anlar isen, algoritmaları her dilde her şekilde yazar işine bakarsın. Ne yazık ki sıfır dan bu işi öğrenen birisi için Java tembelik yaratan bir ortam.

Nacizane görüşler end :)

Edit: Utility class ını yazıp yaptığın işe hakim olduğun vakit Collection Framework ün deki denk API i kullanmanı öneririm. Bir işi yapmanın n tane yolu var ise, en hızlı effective ve güvenli şekilde API yapıyordur, yapmalıdır.
Mesaj tarihi:
Çok teşekkür ederim herkese yardımları için fakat pes etmek zorunda kaldım. Çok fazla olasılık var hepsi için ayrı ayrı kodlar yazmak benim seviyemdeki birisi için imkansız görünüyor. Sanırım daha basit şeyler yapmaya çalışarak kendimi geliştirmeye çalışıcam
×
×
  • Yeni Oluştur...