08/09/11 11:54
luca95
ciao a tutti ho trovato un gioco che si chiama labirinto mutevole praticamente hai 16 lettere che devi far andare nel loro spazio però ci sono dei bivi e devi andare dalla parte indicata dalla freccia e ad ogni passaggio la freccia cambia direzione e alla fine si formerà la parola es:
1 o
/ \
2-3 O O
/ \ / \
4-5-6-7 o o o o
/\ /\ /\ /\
8-9-10-11-12 o o o o o o o o 13-14-15
/\ /\ /\ /\/\ /\ /\ /\
i cerchi indicano che li ci va la direzione della freccia destra o sinistra i numeri indicano che numero è il tondino per esempio quello su in alto è il primo quindi è la posizione numero uno quelli sotto a sinistra c'è la posizione due e a destra la tre e così fino alla quindici e in fondo dove non ci sono i cerchietti li arriveranno le lettere che formeranno poi la parola io ho provato a fare un programma che risolvesse in automatico questo gioco però dopo aver inserito le 16 lettere da dover spostare mi da un errore e mi dice exited with exit code 201 e non so come fare per farlo andare.
inserisco ora il mio programma se non capite qualcosa ditemelo che ve lo spiego
grazie in anticipo per l'aiuto
1 o
/ \
2-3 O O
/ \ / \
4-5-6-7 o o o o
/\ /\ /\ /\
8-9-10-11-12 o o o o o o o o 13-14-15
/\ /\ /\ /\/\ /\ /\ /\
i cerchi indicano che li ci va la direzione della freccia destra o sinistra i numeri indicano che numero è il tondino per esempio quello su in alto è il primo quindi è la posizione numero uno quelli sotto a sinistra c'è la posizione due e a destra la tre e così fino alla quindici e in fondo dove non ci sono i cerchietti li arriveranno le lettere che formeranno poi la parola io ho provato a fare un programma che risolvesse in automatico questo gioco però dopo aver inserito le 16 lettere da dover spostare mi da un errore e mi dice exited with exit code 201 e non so come fare per farlo andare.
inserisco ora il mio programma se non capite qualcosa ditemelo che ve lo spiego
program frecce; uses crt; var dir: array [1..15] of byte; (*indica da che parte è girata la freccia, 0 sinistra 1 destra*) var let: array [1..16] of char; (*tiene le lettere da mettere in ordine*) var pos: array [1..15] of char; (*indica in che posizione si trova al momento la lettera*) var par: array [1..16] of char; (*tiene le lettere messe in ordine*) var i:byte; procedure lettere; (*inserimento lettere da ordinare*) Begin for i:=1 to 16 do Begin write(i); readln(let[i]); End; End; procedure dir_frecc; (*sistemazione lettere*) Begin dir[1]:=0; dir[2]:=0; dir[3]:=1; dir[4]:=0; dir[5]:=0; dir[6]:=1; dir[7]:=1; dir[8]:=0; dir[9]:=0; dir[10]:=0; dir[11]:=0; dir[12]:=1; dir[13]:=1; dir[14]:=1; dir[15]:=1; for i:=0 to 16 do Begin pos[1]:=let[i]; if dir[1]=0 then Begin dir[1]:=1; pos[2]:=pos[1]; End else Begin dir[1]:=0; pos[3]:=pos[1]; End; if pos[2]<>'' then Begin if dir[2]=0 then Begin dir[2]:=1; pos[4]:=pos[2]; End else Begin dir[2]:=0; pos[5]:=pos[2]; End; End else Begin if dir[3]=0 then Begin dir[3]:=1; pos[6]:=pos[3]; End else Begin dir[3]:=0; pos[7]:=pos[3]; End; End; if pos[4]<>'' then Begin if dir[4]=0 then Begin dir[4]:=1; pos[8]:=pos[4]; End else Begin dir[4]:=0; pos[9]:=pos[4]; End; End else if pos[5]<>'' then Begin if dir[5]=0 then Begin dir[5]:=1; pos[10]:=pos[5]; End else Begin dir[5]:=0; pos[11]:=pos[5]; End; End else if pos[6]<>'' then Begin if dir[6]=0 then Begin dir[6]:=1; pos[12]:=pos[6]; End else Begin dir[6]:=0; pos[13]:=pos[6]; End; End else if pos[7]<>'' then Begin if dir[7]=0 then Begin dir[7]:=1; pos[14]:=pos[7]; End else Begin dir[7]:=0; pos[15]:=pos[7]; End; End; if pos[8]<>'' then Begin if dir[8]=0 then Begin dir[8]:=1; par[1]:=pos[8]; End else Begin dir[8]:=0; par[2]:=pos[8]; End; End else if pos[9]<>'' then Begin if dir[9]=0 then Begin dir[9]:=1; par[3]:=pos[9]; End else Begin dir[9]:=0; par[4]:=pos[9]; End; End else if pos[10]<>'' then Begin if dir[10]=0 then Begin dir[10]:=1; par[5]:=pos[10]; End else Begin dir[10]:=0; par[6]:=pos[10]; End; End else if pos[11]<>'' then Begin if dir[11]=0 then Begin dir[11]:=1; par[7]:=pos[11]; End else Begin dir[11]:=0; par[8]:=pos[11]; End; End else if pos[12]<>'' then Begin if dir[12]=0 then Begin dir[12]:=1; par[9]:=pos[12]; End else Begin dir[12]:=0; par[10]:=pos[12]; End; End else if pos[13]<>'' then Begin if dir[13]=0 then Begin dir[13]:=1; par[11]:=pos[13]; End else Begin dir[13]:=0; par[12]:=pos[13]; End; End else if pos[14]<>'' then Begin if dir[14]=0 then Begin dir[14]:=1; par[13]:=pos[14]; End else Begin dir[14]:=0; par[14]:=pos[14]; End; End else if pos[15]<>'' then Begin if dir[15]=0 then Begin dir[15]:=1; par[15]:=pos[15]; End else Begin dir[15]:=0; par[16]:=pos[15]; End; End; End; End; procedure scrittura; (*scrittura parola*) Begin for i:=1 to 15 do write(par[i]); End; Begin clrscr; lettere; dir_frecc; scrittura; readln; End.
grazie in anticipo per l'aiuto
Ultima modifica effettuata da luca95 08/09/11 12:04
aaa