Yazar |
|
cantur
Rize
admin
Kayıt: 16.01.2006 |
|
benkimim yazdi | Merhaba
Bir sorum var hocam
Şimdi puzzle için ilk kelime random olacak ya
bizim PUZZLE_COLUMNS değişkenimiz 10 olarak tanımlanmış.
ve pc nin random olarak salladığı kelime 8 karakterli dolayısıyle
9. karakter kara kutu.
peki ya 10. karakter ?
Bu kara kutudan farklı tek karakterli olabilir mi ? yoksa buda mı mecburen kara kutu olacak ?
kontrolü ne şekilde yapmayı planlıyorsunuz hocam ?
|
Tek kutuluk kelime olmayacağından o kutu sadece diğer doğrultuda kontrol edilecek (tabiki diğe doğrultuda iki harfi geçiyor ise). Algoritman geeği burayı boş geçip sonra düzeltmek veya kutu koymak sana kalmış.
extreme : "'" tırnak karakterli kelimeler problem olmaz. İstemiyorsan kullanmak bir koşul koy bu kelimeleri atla bulmaca oluştururken.
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
Hocam o karakteri ''' gibi gösterebiliriyiz
if(*(kaynak + rand*20 + kelimesayac) == '''){
( if(int(*(kaynak + rand*20 + kelimesayac)) == 96){ ben böle yazdım ne olur olmaz die ama test edemiyorum)
''' biraz garip geldi bana
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
Yazar |
|
neurorebel
Kayıt: 15.08.2007 |
|
benkimim:
|
Merhaba
Bir sorum var hocam
Şimdi puzzle için ilk kelime random olacak ya
bizim PUZZLE_COLUMNS değişkenimiz 10 olarak tanımlanmış.
ve pc nin random olarak salladığı kelime 8 karakterli dolayısıyle
9. karakter kara kutu.
peki ya 10. karakter ?
Bu kara kutudan farklı tek karakterli olabilir mi ? yoksa buda mı mecburen kara kutu olacak ?
kontrolü ne şekilde yapmayı planlıyorsunuz hocam ?
|
puzzle'a kelime yerleştirirken şöyle bişey yapabilirsiniz:
max_word_in_horizontal, min_word_in_horizontal değerlerinden min_word_len_horz ve max_word_len_horz ' u çıkarımsayıp (aynı şekilde vertical içinde tabi.. ) bu ikisi arasında bir random sayı üretmelisiniz.
Örn:
//
// Yatay olarak yerlestirilecek gecerli bir kelime uzunlugu bul
//
int max_len;
int min_len = min_word_len_horz;
int current_col; // kelimenin yerlestirilecegi sutun
//....
//....
//....
max_len = PUZZLE_COLUMNS - cur_col - 1; // Kara kutu icin 1 cikartiyoruz
// eger bayagi bir yerimiz varsa sorun yok :D
if (max_len > max_word_len_horz + 1) // kara kutuyu da hesaba katmak icin max uzunluk + 1
max_len = max_word_len_horz;
rnd_len = ((double)rand() / (double)RAND_MAX * max_len + min_len);
// rnd_len uzunlugunda bir kelime bul ve isine bak :)
Fikir basitçe bu. Ama tabii ki MAX_WORD_IN_HORZ, MIN_WORD_IN_HORZ değerlerinin PUZZLE_COLUMNS ve PUZZLE_ROWS değerleriyle uyumlu olması lazım. Bunları en başta test edecek bir fonksiyon yazıp, değerlerin tutarsız olması durumunda ekrana bir uyarı çıkartabilirsiniz. Tabii hocalarımız kontrol ederken tutarlı değerler vermeye dikkat edeceklerdir :) .
edit: kara kutu olayını unuttum pardon Şimdi ekledim.
Do weird and difficult things.
|
|
Yazar |
|
kartane
istanbul
Kayıt: 22.02.2007 |
|
He can choose the minimum number and maximum number of words in both directions.Ben bu kuralı tam anlayamadım zaten o yuzden uygulayamıyorum yardımcı olur musunuz??
#define MAX_WORD_IN_VERTICAL 40
#define MAX_WORD_IN_HORIZONTAL 40
#define MIN_WORD_IN_VERTICAL 10
#define MIN_WORD_IN_HORIZONTAL 10 ve kısmını???
|
|
Yazar |
|
cantur
Rize
admin
Kayıt: 16.01.2006 |
|
kartane yazdi | He can choose the minimum number and maximum number of words in both directions.Ben bu kuralı tam anlayamadım zaten o yuzden uygulayamıyorum yardımcı olur musunuz??
#define MAX_WORD_IN_VERTICAL 40
#define MAX_WORD_IN_HORIZONTAL 40
#define MIN_WORD_IN_VERTICAL 10
#define MIN_WORD_IN_HORIZONTAL 10 ve kısmını??? |
neubee.. nın yazdığına bakılırsa bu konuda bir yanlış anlaşılma var sanırım. MAX_WORD_IN_VERTICAL ... değişkenleri bulmacanın toplamında kaç kelime bulunacağının sınırları.
Bir satırda kullanılacak kelime sayısı ile veya kelime uzunluğuyla hiçbir ilgisi yok
Zaten dosyadaki en uzun kelime boyutu belli :16,
Yukarıdaki define ların amacı bulmacanın tamamının belirli bir düzene sahip olması için bu şekilde anlayabileceğinizi hiç düşünmemiştim.
|
|
Yazar |
|
neurorebel
Kayıt: 15.08.2007 |
|
|
neurorebel nın yazdığına bakılırsa bu konuda bir yanlış anlaşılma var sanırım. MAX_WORD_IN_VERTICAL ... değişkenleri bulmacanın toplamında kaç kelime bulunacağının sınırları.
Bir satırda kullanılacak kelime sayısı ile veya kelime uzunluğuyla hiçbir ilgisi yok
Zaten dosyadaki en uzun kelime boyutu belli :16,
Yukarıdaki define ların amacı bulmacanın tamamının belirli bir düzene sahip olması için bu şekilde anlayabileceğinizi hiç düşünmemiştim.
|
mesela PUZZLE_COLUMNS 10 ise ve MIN_WORD_IN_HORIZONTAL 3 ise
bir satıra yerleştireceğiniz kelimelerin uzunlukları maksimum 3, 2, 2 olur (siyah kareleri de dahil ettiğimizde toplam 10 oluyor ve satır doluyor.)
eğer uzunluğu 4 ya da 5 olan bir kelime seçerseniz MIN_WORD_IN_HORIZONTAL
constraintini sağlayamazsınız..... (4 + 1, 2 + 1, 2 + 1) --> 11 > PUZZLE_COLUMNS
bu defineların anlamı başka birşey mi ???
Do weird and difficult things.
|
|
Yazar |
|
cantur
Rize
admin
Kayıt: 16.01.2006 |
|
neurorebel yazdi | |
neurorebel nın yazdığına bakılırsa bu konuda bir yanlış anlaşılma var sanırım. MAX_WORD_IN_VERTICAL ... değişkenleri bulmacanın toplamında kaç kelime bulunacağının sınırları.
Bir satırda kullanılacak kelime sayısı ile veya kelime uzunluğuyla hiçbir ilgisi yok
Zaten dosyadaki en uzun kelime boyutu belli :16,
Yukarıdaki define ların amacı bulmacanın tamamının belirli bir düzene sahip olması için bu şekilde anlayabileceğinizi hiç düşünmemiştim.
|
mesela PUZZLE_COLUMNS 10 ise ve MIN_WORD_IN_HORIZONTAL 3 ise
bir satıra yerleştireceğiniz kelimelerin uzunlukları maksimum 3, 2, 2 olur (siyah kareleri de dahil ettiğimizde toplam 10 oluyor ve satır doluyor.)
eğer uzunluğu 4 ya da 5 olan bir kelime seçerseniz MIN_WORD_IN_HORIZONTAL
constraintini sağlayamazsınız..... (4 + 1, 2 + 1, 2 + 1) --> 11 > PUZZLE_COLUMNS
bu defineların anlamı başka birşey mi ??? |
Yukarıda yazdım ama hala yanlış anlamakta ısrarlısın sanırım.
MAX_WORD_IN_VERTICAL 80 // Maximum number of words can be located in verticle direction
MAX_WORD_IN_HORIZONTAL 80 // Maximum number of words can be located in horizontal direction
MIN_WORD_IN_VERTICAL 20 // Minimum number of words can be located in verticle direction
MIN_WORD_IN_HORIZONTAL 20 // Minimum number of words can be located in horizontal direction
Bu değişkenler bulmacanın toplamında kaç kelime bulunacağı ile ilgili üst ve alt sınırlar. tek satır veya tek sutun için kelime sayısı veya kelime uzunluğu ile alakası yok.
PUZZLE_COLUMN ve PUZZLE ROW değişkenleri ise doğrudan bulmacanın boyutlarını belirliyor zaten. (Bunu farketmiş olmanız gerek)
|
|
Yazar |
|
neurorebel
Kayıt: 15.08.2007 |
|
tamam şu an anlaşıldı kusura bakmayın. ben MAX_WORD_IN_HORIZONTAL derken bir satırdaki max kelime sayısı olarak yorumladım. tüm satırlardaki toplam kelime sayısı oluyor sanırım. VERTICAL içinde tüm sütunlardaki toplam kelime sayısı.
edit: Bende ki header'da commentler yok bu arada sanırım proje güncellendi.
Do weird and difficult things.
|
|
Yazar |
|
cantur
Rize
admin
Kayıt: 16.01.2006 |
|
neurorebel yazdi | tamam şu an anlaşıldı kusura bakmayın. ben MAX_WORD_IN_HORIZONTAL derken bir satırdaki max kelime sayısı olarak yorumladım. tüm satırlardaki toplam kelime sayısı oluyor sanırım. VERTICAL içinde tüm sütunlardaki toplam kelime sayısı.
edit: Bende ki header'da commentler yok bu arada sanırım proje güncellendi. |
Read ME .txt Bir okuyun ..
|
|
Yazar |
|
cantur
Rize
admin
Kayıt: 16.01.2006 |
|
Bir HINT daha : İşlemleri yaparken koyduğunuz kelimelerin indislerini ve hangi doğrultuda hangi noktadan başlayarak koyduğunuzu diziler şeklinde tutmak ilerde bunları puzzle üzerinde değiştirmek isterseniz işinizi kolaylaştırır. Hatta buna zorunlusunuz.
Yapacağınız kodlamada sanki sadece bir word_list ve bir tek Puzzle matrisi varmış gibi düşünerek fikirlerinizi kısıtlamayın. Koyduğunuz , hatta denediğiniz kelimelerin bilgilerini saklamak işleri hızlandıracaktır.
Hatta bir noktada denenen ve uygun olmayan harfleri bile tutarak benzer kelimeleri tekrar tekrar denemekten kurtulabilirsiniz.
Kolay gelsin.
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | | |