PDA

Prikaži potpunu verziju : Ukrštene reči


Ocelot
19.1.2007, 18:46
Da li je neko probao da napravi ukrštene reči za PC? Pretpostavljam da je izvodljivo, ali koliko je teško da se to uradi?

LoneWolf
19.1.2007, 19:44
Davno sam probao nesto slicno,ali sam brzo odustao jer nisam znao da se bakcem sa matematikom:kreza:
Ali,moze da se napravi neka jednostavnija crossword puzzle bez puno "matematisanja":kreza:
A sto je najgore,nisam ih nigdje vidio na internetu...a nisam ni trazio nesto posebno...

Patton
19.1.2007, 19:45
Da li je neko probao da napravi ukrštene reči za PC? Pretpostavljam da je izvodljivo, ali koliko je teško da se to uradi?
Ja se toliko smorio u vojsci da 4h dnevno resavam ukrstene reci :) Sada, posle par meseci mi je proradila profesionalna deformacija iz detinjstva, pa sam razmisljao da napravim program koji ce generisati "osmosmerke". Ne bi trebalo da bude tesko. Treba ti ogromna baza pojmova (eventualno da budu podeljeni u vise oblasti). Izaberes oblik osmosmerke, izaberes konacno resenje i udri. Vrti kombinacije reci do iznemoglosti dok ne sklopis ono sto ti treba. Ukrstene reci isto nisu problem, samo sto je baza duplo veca, jer treba drzati i pitanja i odgovore.

MG-RAY
20.1.2007, 10:11
Ovaj primer sam nasao pre...hm, par godina:D ...napisan je u QBasic, pa ako mozes nesto da iskoristis...(osmosmerka)


DIM let$(20, 20)
DIM flag$(20, 20)
DIM word$(100)
RANDOMIZE TIMER
CLS
FOR outer = 1 TO 20
FOR inner = 1 TO 20
let$(outer, inner) = CHR$(INT(RND * 26 + 65))
NEXT inner
NEXT outer
INPUT "Number of words to find"; words
FOR count = 1 TO words
INPUT word$
word$ = UCASE$(word$)
words$(count) = word$
dir = INT(RND * 2 + 1)
ON dir GOSUB across, down
NEXT count
GOSUB viewlets
INPUT "Print out word search (y/n)"; sel$
IF UCASE$(sel$) = "Y" THEN GOSUB printout
END

across:
usedflag$ = "yes"
WHILE usedflag$ = "yes"
usedflag$ = "no"
xstart = INT(RND * (20 - LEN(word$)) + 1)
y = INT(RND * 20 + 1)
FOR spot = xstart TO xstart + LEN(word$)
IF flag$(spot, y) = "used" THEN usedflag$ = "yes"
NEXT spot
WEND
FOR spot = 1 TO LEN(word$)
let$(spot + xstart, y) = MID$(word$, spot, 1)
flag$(spot + xstart, y) = "used"
NEXT spot
RETURN

down:
usedflag$ = "yes"
WHILE usedflag$ = "yes"
usedflag$ = "no"
ystart = INT(RND * (20 - LEN(word$)) + 1)
x = INT(RND * 20 + 1)
FOR spot = ystart TO ystart + LEN(word$)
IF flag$(x, spot) = "used" THEN usedflag$ = "yes"
NEXT spot
WEND
FOR spot = 1 TO LEN(word$)
let$(x, ystart + spot) = MID$(word$, spot, 1)
flag$(x, ystart + spot) = "used"
NEXT spot
RETURN

viewlets:
FOR outer = 1 TO 20
FOR inner = 1 TO 20
PRINT let$(outer, inner); " ";
NEXT inner
PRINT
NEXT outer
PRINT "Words to Find"
time = 1
indent = 0
WHILE words$(time) <> ""
PRINT TAB(indent); words$(time);
time = time + 1
indent = indent + 20
IF indent >= 80 THEN
indent = 0
PRINT
END IF
WEND
PRINT
RETURN

handler:
IF ERR = 25 THEN PRINT "Turn priter on!"
GOSUB printout

printout:
LINE INPUT "Title (ENTER for none)"; title$
FOR lines = 1 TO 8
ON ERROR GOTO handler
LPRINT
NEXT lines
LPRINT TAB(40 - (LEN(title$) / 2)); title$
LPRINT
LPRINT
LPRINT
FOR outer = 1 TO 20
LPRINT " ";
FOR inner = 1 TO 20
LPRINT let$(outer, inner); " ";
NEXT inner
LPRINT
NEXT outer
LPRINT
LPRINT
LPRINT "Words to Find'"
LPRINT
LPRINT
time = 1
indent = 0
WHILE words$(time) <> ""
LPRINT TAB(indent); words$(time);
time = time + 1
indent = indent + 20
IF indent >= 80 THEN
indent = 0
LPRINT
END IF
WEND
FOR lines = 1 TO 5
LPRINT
NEXT lines
LPRINT TAB(55); "Word Search Marker"
LPRINT TAB(55); "Created by Brian Emmer"
RETURN

Ocelot
20.1.2007, 13:37
Da ne dođe do zabune, ja ne planiram da pravim bilo koju igru, već samo pitam da li je neko to radio ili planira da uradi.

nepoznati2
9.2.2007, 19:28
Veoma je tesko napraviti program za ukrstene reci ili program za osmosmerke. Potrebne su godine dok se pronadje pravi algoritam, uz to morate biti profesionalni enigmata da biste ispostovali sva enigmatska pravila kao i vrhunski programer. Pogledajte na www.elitesecurity.org/ t222911-Program-za-ukrstene-reci-osmosmerke-VB
Rajko

nepoznati2
19.2.2007, 19:03
Da li je neko probao da napravi ukrštene reči za PC? Pretpostavljam da je izvodljivo, ali koliko je teško da se to uradi?

Jako tesko. Postrebno je biti enigmata godinama i biti odlican programer. I onda ti trebaju godine za pravi algoritam.

nepoznati2
19.2.2007, 19:04
Ja se toliko smorio u vojsci da 4h dnevno resavam ukrstene reci :) Sada, posle par meseci mi je proradila profesionalna deformacija iz detinjstva, pa sam razmisljao da napravim program koji ce generisati "osmosmerke". Ne bi trebalo da bude tesko. Treba ti ogromna baza pojmova (eventualno da budu podeljeni u vise oblasti). Izaberes oblik osmosmerke, izaberes konacno resenje i udri. Vrti kombinacije reci do iznemoglosti dok ne sklopis ono sto ti treba. Ukrstene reci isto nisu problem, samo sto je baza duplo veca, jer treba drzati i pitanja i odgovore.

Ovo nije tacno. Treba biti enigmata godinama i vrhunski programer. I onda godinama trazis pravi algoritam.

MG-RAY
19.2.2007, 23:41
Zasto se jednostavno ne slazem sa ovim...a ti Patton ? :D... godine...ccc

Patton
19.2.2007, 23:53
@nepoznati2
Zasto si jednu te istu stvar napisao u tri posta? :)

Prvo koja pravila postoje za osmosmerku?
1. reci se u dijagramu prostiru u osam smerova
2. od preostalih slova, sklapa se resenje

... e da... ima jos jedno pravilo :)

3. neke osmosmerke, nemaju preostala slova :)

To ti je sva mudrost kod osmosmerke. Potreban je solidan, i pre svega brz, algoritam koji ce generisati osmosmerku na osnovu dijagrama (oblika osmosmerke) i resenja koje zelite da bude na kraju. A taj algoritam nema puno veze sa enigmatikom, vec je obicno baratanje ogromnom bazom reci.

rgdrajko
28.4.2008, 17:13
Uradjen je profesionalni program koji sastavlja osmosmeke svih vrsta.
Program mozete pogledati na: www.enigmatika.zzl.org

rgdrajko
28.4.2008, 17:25
Uradjen je profesionalni program za sastavljanje osmosmerki.
Program mozete pogledati na:

www.enigmatika.zzl.org

todos
28.4.2008, 21:29
Ja znam da je sastavim. Naravno programiranje za mene je spansko selo. Inace treba mi od 5 minuta do nekoliko sati za jednu klasicnu ukrstenicu.