Her seferinde farklı bir puzzle oluşmalı. Ama siz test ederken srand kullanmayıp aynı kelimeleri seçtirerek hata ayıklama işlemini kolaylaştırabilirsiniz. (Labda bahsetmiştik.)
Bir kaç örnek fonksiyon.
Random sayı oluşturmak için. Daha güzeli yazılabilir.
long generate_random()
{
srand((unsigned)time(0));
long sonuc;
do
{
sonuc = (long)(((float)rand()/(float)RAND_MAX) * WORD_COUNT - ((float)rand()/(float)RAND_MAX) * 20000 + ((float)rand()/(float)RAND_MAX) * 20000);
} while(sonuc < 0 || sonuc > WORD_COUNT);
return sonuc;
}
Puzzle Matrisine seçilen sıradaki bir kelimeyi yerleştirme örneği.
// index : seçilen kelimenin listedeki sırası.
// locx : int pointer . Puzzleda kelimeyi yerleştireceğimiz sütun başlangıç numarası.
// locy : int pointer . Puzzleda kelimeyi yerleştireceğimiz. satır numarası 0 tabanlı.
// aşağıdaki kod yatayda bir kelimenin harflerini puzzle matrisine yerleştirir.
// eğer kelime uzunluğu matrisin sınırına dayanmıyor ise kelimenin sonuna sonlandırıcı bir kutu koyar.
int word_length = get_word_size_at(index);
int i;
//5. İnsert word into the puzzle.
for (i= 0; i< word_length; i++)
{
add_to_puzzle(*locx +i , *locy , *(words()+ index * WORD_LENGTH + i));
}
if(*locx + word_length < PUZZLE_COLUMNS)
add_to_puzzle(*locx + word_length , *locy , char(PUZZLE_FULL_SQUARE));
|