reyou Mesaj tarihi: Ekim 11, 2010 Paylaş Mesaj tarihi: Ekim 11, 2010 mantigi cok basit ama az once yaziyim dedim biraz uzun oldu sanirim en kisa yolu ne olabilir? 10x10 karemiz var, bu karenin hergangi bir yerinde piyonumuz var satranctaki gibi, bunu 4 yone hareket ettirebiliyoruz en fazla 1 kare uzagina gidebilir fazlasina gidemez yani ortadaki bir piyon ise 8 farkli yone gidebilir; kenarda ise 5 farkli yone kosede ise 3 farkli yere. simdi her bir karenin numarasi var 1den 100 e kadar diyelim 12 numarali piyon 1,2,3,11,13,21,22,23 e gidebilir gibi bunu programlarken en kisa yoldan nasi kontrol edebilirim? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
aquila Mesaj tarihi: Ekim 11, 2010 Paylaş Mesaj tarihi: Ekim 11, 2010 [a][b] dekini mesela, [a-1][b-1] [a-1][b+1] hede hodo diye mi hesapladin? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
reyou Mesaj tarihi: Ekim 11, 2010 Konuyu açan Paylaş Mesaj tarihi: Ekim 11, 2010 ornegi yanlis vermisim simdi duzelttim yani 3 farkli cesitti bulunabilir piyon kosede, kenarda yada ortada bunlari kontrol ediyorum ilk sonrada sayilari birbirinden cikarip falan islem yapmaya calistidim bu arada olmamis sanirim az once denedim patladim :D lan ben algoritma-1 dersinden nasi gecmisim :P Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
aquila Mesaj tarihi: Ekim 11, 2010 Paylaş Mesaj tarihi: Ekim 11, 2010 valla pozisyonuna gore dedigin gibi hesaplican iste, baska ne olucak ki. 10x10sa, -11,-10,-9,-1,+1,+9,+10,+11e gidicek iste. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
reyou Mesaj tarihi: Ekim 11, 2010 Konuyu açan Paylaş Mesaj tarihi: Ekim 11, 2010 himm tamam anladim her kare icin o 8 kosula bakmam gerekiyor uyuyoya tamamdir uymuyosa uyari vermem gerek. tek sorun suki eger piyon koselerde yada kenarlarda ise o zaman uymuyo algoritmaya. T$kler ben yine doniyim bi koda. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
aquila Mesaj tarihi: Ekim 11, 2010 Paylaş Mesaj tarihi: Ekim 11, 2010 boyuta gore iste, kose-kenar-orta hepsine ayri olucak tabi, onu yapmissin zaten heralde. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
reyou Mesaj tarihi: Ekim 11, 2010 Konuyu açan Paylaş Mesaj tarihi: Ekim 11, 2010 ben iste o yol uzun geldigi icin dedim acaba benim olaymi cok amator oldu, bide dynamic degil yani kare sayisi mesela 10x10 degilde 12x15 oldugu zaman cakosluyo nese simdilik bole devam etsin bakalim sonrasinda olmazda donerim ben yine. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
fizban Mesaj tarihi: Ekim 11, 2010 Paylaş Mesaj tarihi: Ekim 11, 2010 HSIZE ve VSIZE diye iki değişken tanımla, if i == 9 yerine if i == HSIZE sağa gitmesin gibi kontroller koy al sana değişken =) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
aquila Mesaj tarihi: Ekim 11, 2010 Paylaş Mesaj tarihi: Ekim 11, 2010 bu adami dinle, doktor olacak. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mirage Mesaj tarihi: Ekim 11, 2010 Paylaş Mesaj tarihi: Ekim 11, 2010 Edik: Destan yazdıydım da zaten pozisyonunu (kenar, köşe, orta) bulup ona göre yapıyormuşsun. Boşuna kasmışım. :) Sildim gitti. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
riglous Mesaj tarihi: Ekim 11, 2010 Paylaş Mesaj tarihi: Ekim 11, 2010 Kenar köşe orta diye niye ayırıyorsunuz ki? Zaten max-height ve max-width'ten daha fazla olamaz. 0'dan küçük olamaz. getPossibleMoves(x, y) function'ı tuple array'i döndürür. [code]for i in [-1,0,1]: tmp_x = x + i for j in [-1,0,1]: tmp_y = y + j if 0 <= tmp_x <= max_width and 0 <= tmp_y <= max_height: lst.append((tmp_x, tmp_y))[code] Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
di Mesaj tarihi: Ekim 11, 2010 Paylaş Mesaj tarihi: Ekim 11, 2010 How can i fuck that algorythm easily? Tam chicken translate oldu. eheh. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
reyou Mesaj tarihi: Ekim 11, 2010 Konuyu açan Paylaş Mesaj tarihi: Ekim 11, 2010 riglous said: Kenar köşe orta diye niye ayırıyorsunuz ki? Zaten max-height ve max-width'ten daha fazla olamaz. 0'dan küçük olamaz. getPossibleMoves(x, y) function'ı tuple array'i döndürür. [code]for i in [-1,0,1]: tmp_x = x + i for j in [-1,0,1]: tmp_y = y + j if 0 <= tmp_x <= max_width and 0 <= tmp_y <= max_height: lst.append((tmp_x, tmp_y))[code] nasi hesapliyosunki max with - height burda? diyelim 12 numarali piyon icin 23 numara max deger ama 14 bunun icine girmiyor, senin yazdigin loop bu kosulu saglamiyor gibime geldi benim? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Kojiroh Mesaj tarihi: Ekim 11, 2010 Paylaş Mesaj tarihi: Ekim 11, 2010 Sıralı numaralardan çok iki boyutlu bi yapı kullanman lazım. Eğer halihazırda öyle bi şey yoksa bi genişlik ve yükseklik tanımlayıp, tek boyutlu sayının iki boyutlu yerini bulan bi fonksiyon yazacaksın. Örneğin n numaralı bi sayı w genişliğinde h yüksekliğinde bi alandaysa ve bulunduğu noktayı (x,y) olarak ifade edeceksek yerini şöyle hesaplayabiliriz: x = n MOD w y = n / h + 1 Örneğin 4x4 boyutundaki bi matriste 6 numaralı eleman x = 6 MOD 4 = 2 y = 6 / 4 + 1 = 2'de olacak (2,2 noktası): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 İndisler 1'den değil de 0'dan başlasın istersen de x=(n MOD w)-1 ve y=n/h şeklinde hesaplicaksın işte. (x, y) noktasını belirledik. Bi elemanın bu noktadan gidebileceği noktalar kümesinin en genişi şu: (x-1,y-1) (x,y-1) (x+1,y-1) (x-1,y) (x,y) (x+1, y) (x-1,y+1) (x,y+1) (x+1,y+1) Burda daraltıcı faktör, noktaların oyun alanının içinde olup olmadıkları. Dolayısı ile (x, y) -bilinmiyosa- bulduktan sonra, şu döngüyle halledersin (oyun alanının sol üst köşesi 0,0 noktası; sağ alt köşesi w-1,h-1 noktası kabul edersek): for(int j=y-1; j<=y+1; j++) for(int i=x-1; i<=x+1; i++) if(j < 0 || j >= h || i < 0 || i >= w || (x==i && y==j)) ; else gidilebilir.add(i, j); Edit: Ha bi de gidilebilecek koordinatları buldun diyelim. Sonra bu koordinatlarda hangi sayılar olduğunu bulman gerekecek (hala tek sayı kullandığını farzedelim). Deminki işlemin tersi o da: n = h*(y-1) + w Yani 2,2 için n = 4*(2-1) + 2 = 6 Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
riglous Mesaj tarihi: Ekim 11, 2010 Paylaş Mesaj tarihi: Ekim 11, 2010 reyou said: nasi hesapliyosunki max with - height burda? diyelim 12 numarali piyon icin 23 numara max deger ama 14 bunun icine girmiyor, senin yazdigin loop bu kosulu saglamiyor gibime geldi benim? Amerikayı yeniden keşfetme. Satranç tahtasını düşün. A B C ... kımsını index'lerle yapıyorsun sadece. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Eaglewingg Mesaj tarihi: Ekim 12, 2010 Paylaş Mesaj tarihi: Ekim 12, 2010 Kojiroh aciklamis olayi moduler aritmetik kullanacaksin. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
reyou Mesaj tarihi: Ekim 14, 2010 Konuyu açan Paylaş Mesaj tarihi: Ekim 14, 2010 // clicked position int ClickedPosition = Convert.ToInt32(Request.Params[ClickedPosition]); // position of user int UserPosition = Convert.ToInt32(Request.Params[position]); int yDistancePosition = UserPosition / 10; int yDistanceClicked = ClickedPosition / 10; int xDistancePosition = UserPosition % 10; int xDistanceClicked = ClickedPosition % 10; if (((xDistancePosition - xDistanceClicked) > 1) || ((xDistancePosition - xDistanceClicked) < -1)) { Response.Write("Gecersiz bir hamle yaptiniz. X position"); } else if (((yDistancePosition - yDistanceClicked) > 1) || ((yDistancePosition - yDistanceClicked) < -1)) { Response.Write("Gecersiz bir hamle yaptiniz. Y position"); } else { Response.Write("Basarili!"); } bu sekilde hallettim :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
nameless Mesaj tarihi: Ekim 14, 2010 Paylaş Mesaj tarihi: Ekim 14, 2010 kojiroh on numara anlatmış Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
reyou Mesaj tarihi: Ekim 14, 2010 Konuyu açan Paylaş Mesaj tarihi: Ekim 14, 2010 tesekkurler kojiroh! :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ceday Mesaj tarihi: Ekim 14, 2010 Paylaş Mesaj tarihi: Ekim 14, 2010 bence ilerde adamakıllı kod yazmak istiosan işini classlar yazarak çözmeye alıs. atıyorum Pawn die bi class yaz. Bu piyonun koordinatlarını tutan dgerler tut icinde. int X,Y gibi. daha sonra bi Pawn[][] tanımlayıp bu matrixin istedigin koordinatlarına senin piyonu veya piyonlarını yerlestir. gidebilecegi koordinatları X ve Y den hesaplarsın zaten, ama gidecegin yerin de bos olup olmadıgı görmek istiosan, matrixte bu alanın boş (null) olup olmadıgını kontrol et vs.. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
reyou Mesaj tarihi: Ekim 14, 2010 Konuyu açan Paylaş Mesaj tarihi: Ekim 14, 2010 satranct tahtasi uzerinde her bir kare bir classin referencesi zaten, yani her bir kare bir kisi aslinda, adi soyadi vs si fln var ve tabiki position attributesi yukarida yazdigim fonsyonu evet bu classin icine tasiyabilirim, o zaman classi tamamen izole etmis olurum, onun disinda class yapisini kullandim zaten, tesekkurler tavsiye icin tabikide. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar