Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 3.087 pregleda

Najnovija ↓

crossword puzzle ili ukrstenca 14.06.2007. u 16:50 · pre 236 meseci
izmenjeno 1 put, poslednji put Mile83 14.06.2007. u 17:20
  1. Mile8314.06.2007. u 17:20zapis iz teksta poruke
#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'
Re: crossword puzzle ili ukrstenca 15.06.2007. u 16: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