• 5 odgovora
  • 3.080 pregleda
crossword puzzle ili ukrstenca 14.06.2007. u 15:50 · pre 235 meseci #1
Pozdrav,

zna li neko kako da izgenerisem ukstenicu od datih reci.
naprimer 10x10, u smeru vertikalno i horizontalno

koji algoritam da koristim?

nasao sam pdf, http://www.mikexstudios.com/re...Study%2520in%2520Crossword.pdf
sa nekim algoritnom, ali je povrsno obrazlozen :(

pokusao sam da implementiram isti ali sam se 'zapucao'

[Ovu poruku je menjao Mile83 dana 14.06.2007. u 17:20 GMT+1]
Re: crossword puzzle ili ukrstenca 15.06.2007. u 15:11 · pre 235 meseci #6
evo koda, pa posto delovi fale, moze se reci da je pseudo
takodje fale klase Coodrinate i WordData, ali se iz koda moze zakljuciti sta 'rade' i sadrze


public void generateMatrix(){
while(listOfWords.size()>0) {
word=findNextLongestWord();
placeWord(word);
}
}

private void placeWord(String word) {
boolean done=false;
while(!done){
coord=getCoordForNextWord();
done=simulatePlacement(word,coord,matrixSize);
}
}


private boolean simulatePlacement(String word, Coodrinate coord,int matrixSize) {
if(y+wordLen<matrixSize-1){ //vert
for (int k = y; k < wordLen+y; k++) {
if(!isEmpty(x,k)){
if( matrix[x][k]!=word.charAt(k-y))
return false;
}
}

int n=0;
for (int k = y; k < wordLen+y; k++) {
matrix[x][k]=word.charAt(n++);
}
listOfWordsData.add(new WordData(x, y, false, word));
return true;
}else if(x+wordLen<matrixSize-1){ //horizontal

for (int k = x; k < wordLen+x; k++) {
if(!isEmpty(k,y)){
if( matrix[k][y]!=word.charAt(k-x))
return false;
}
}
int n=0;
for (int k = x; k < wordLen+x; k++) {
matrix[k][y]=word.charAt(n++);
}
listOfWordsData.add(new WordData(x, y, true, word));
return true;
}
return false;
}
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme