Si te gusta la sopa de pescado adivina con qué está hecho
1988/12/01 Arrojeria, Eustakio - Elhuyar Zientziaren Komunikazioa | Lizaso, Pili - Informatika SailaElhuyar Fundazioa Iturria: Elhuyar aldizkaria
Las palabras pueden estar de izquierda a derecha, de derecha a izquierda, arriba, abajo, diagonalmente. etc.
Nosotros hemos elegido un tema y hemos elegido los nombres de los peces. Si tú quieres introducir otras palabras, sólo tienes que cambiar de datos.
Partes del programa:
- De un conjunto de palabras (en este caso 30) se toman 10 aleatoriamente (120)
- Las palabras seleccionadas se almacenan en SOPA$ (130-300)
- Una vez colocadas las palabras en la sopa, se rellenarán las posiciones libres, tomando las letras aleatoriamente (310-320)
- La sopa de letras se presenta en pantalla, combinando las palabras que se pueden encontrar en ella con otras (330-350)
- Se recogen las respuestas del uso hasta que esto inventa las 10 palabras o pulsa la tecla F10 (36)-590)
- Se comprueba si la palabra introducida se encuentra en la sopa de letras (440-500).
- Si la palabra está en sopa, se destacará en un color más intenso. (510-590).
- Al salir del programa pulsando F10 se resaltarán en rojo las palabras que faltaban para encontrarlas.
Introducir las palabras seleccionadas en SOPA$
Esta puede ser la parte más importante del programa, ya que si bien es fácil hacerlo a mano, a la hora de ordenar el ordenador, debemos definir las condiciones que nosotros consideramos inconscientemente.
Además de seleccionar aleatoriamente las palabras, se toma aleatoriamente su posición en la sopa de letras. Cuando se dice posición, la línea inicial y la columna y la dirección de la palabra (de izquierda a derecha, diagonal hacia arriba, etc.) se quiere decir.
Los requisitos para poder ubicar una palabra en una de las posiciones seleccionadas son:
- Si la posición inicial, es decir, si la SOPA$ (LER,ZUT) está libre o está ocupada, la letra que hay en ella se corresponde con la primera letra de la palabra que queremos colocar (150).
- Tener tantas filas y columnas como letras de la palabra en el sentido de estudio (180).
- Que la posición correspondiente a cada letra de la palabra esté libre o se quiera ubicar la letra existente (190-210).
Observaciones:
- Antes de descartar una posición se probarán todas las direcciones. Si no es posible ubicar la palabra en una línea, columna y sentido concreto, manteniendo la línea y la columna se probarán las demás direcciones.
- El conjunto de palabras debe ser de 30.
20 DIM$(15,19),HITZA$(10,5),NORAN(8,2)
30 RANDOMIZE TIMER:CLS:KEY OFF:COLOR 2:LOCATE 1,35:PRINT "SOPA DE LETRAS":
Palabra
LOCR$
1(CHINT$
1)(ZOPA$
1(I,J) PRINT(O P A P R E S T Z N":LOCATE 13,13:PRINT "A R I Z"
100 RESTORE 850
110 FOR I=1
TO 8:READ A,B:An
PALABRA
RUT=1$
DE
SOPA$(I,J)=CHR$(A) 320 NEXT J:NEXT I
330 COLOR 2:FOR I=1 TO
15:FOR J=1 TO 19:LOCATE I+4,J*2+1:LOCNPER:44 nombres
Sopa de letras "PRINT". Descúbrelas!!!"
350 RESTORE 860:COLOR 3:FOR I=6 TO 20:READ A$:LOCATE I,44:PRINT A$:NEXT I: Fin del programa
FOR I=6 TO 20:READ A$:LOCATE I,63:PRINT A$:NEXT I
360 KEY 10,":KEY(10) ON:ON KEY(10) GOSUB 650
370
J=1:FMAT="Mat Términos:
1$
en
THE,PTE$
Z=VAL(HITZA$(I,4))+(J-1)*NORAN(VAL(PALABRA$(I,5),2)
540
LOCATE L+4,Z*2+1:PRINT MID$(PALABRA$(I,Vº50,V51,V55551,55551,5555555551,551,5551,551,55551,551,5555551,551,555551,551,551,5S51,551,1,1,1,5
PRINT "La palabra introducida no es una de las palabras introducidas en la sopa de letras. ":
LOCATE 23,5:PRINT "Vuelve a intentarlo."
570 GOSUB 770
580 LOCATE 22,1:PRINT SPC(78):LOCATE 23,1:PRINT SPC(78)
590 GOTO 370
600 LOCATE 22,1:PRINT SPC(78):LOCATE 25,1:PRINT SPC(78):22,5 LOCATE:
PRINT "¡Muy bien! Noticias Has acertado todas las palabras de esta sopa de letras. ":
LOCATE 25,20:PRINT "¿Quieres hacer otro (S/N)?"
610 TE$=INKEY$:WHILE TE$ "":TE$=INKEY$:WEND:
WHILE TE$ "B" AND TE$ "b" AND TE$ "E" AND TE$
"e":TE$=INKEY$:WEND 620 IF TE$="B" OR TE$="b" THEN 30
630 CLATE:12,3 Noticias Hasta pronto."
640 END
650 ACCIÓN FIN REM
660 COLOR 3:LOCATE 22,1:PRINT SPC(78):LOCATE 25,1:PRINT SPC(78):LOCATE 22,5:
PRINT "Aquí tienes las palabras que te faltaban para acertar!!!"
670 FOR I=1 TO 10
680 IF HITZA$(I,2)="1" THEN 730
690 COLOR 4:FOR J=1 TO LEN(HITZA$(I,1)
700 L=VAL(PALABRA$(I,A)
Z=VAL(PALABRA$(I,4)+(J-1)*NORAN(VAL(PALABRA$(I,5),2)
710
LOCATE
L+4,Z*2+1:PRINT MID$(I,S25,71)
BONITO
DEL
NORTE