• Publicidad

Juego de palabras

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Juego de palabras

Notapor jairo15 » 2016-09-19 19:43 @863

He estado preparando un juego de palabras en Perl, el juego se llama Izukirudo, juego francés, pero bueno, eso no importa.

El punto es que necesito dibujar cuadros debajo del tablero en donde se van a poner las letras seleccionadas por el jugador. Creo que eso de dibujar los cuadros se hace con un for, pero el 'problema' es que no solo son palabras, también frases. Ya tengo el selector de la palabra y/o frase, también el algoritmo que determina la longitud de la palabra, pero me hace falta saber cómo tomar en cuenta los espacios de la frase, si es que toca la frase, ya que es 'aleatorio', al momento de dibujar los cuadros.

¡Gracias de antemano!
jairo15
Perlero nuevo
Perlero nuevo
 
Mensajes: 31
Registrado: 2016-09-11 13:27 @602

Publicidad

Re: Juego de palabras

Notapor explorer » 2016-09-19 23:03 @002

Para Perl, los espacios en blanco son caracteres normales. Si están dentro de una frase, se les puede tratar como un carácter más.

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
  1. $ perl -e '$frase = "Esto es una prueba"; for (split //, $frase) { print "[$_]" }; print "\n"'
  2. [E][s][t][o][ ][e][s][ ][u][n][a][ ][p][r][u][e][b][a]
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Juego de palabras

Notapor jairo15 » 2016-09-19 23:28 @019

Pero, ese ejemplo es solo para esa frase, ¿no?
El selector de palabras es al azar, entonces debe ajustarse a cualquier palabra/frase.

Gracias por la respuesta.
jairo15
Perlero nuevo
Perlero nuevo
 
Mensajes: 31
Registrado: 2016-09-11 13:27 @602

Re: Juego de palabras

Notapor explorer » 2016-09-20 09:02 @418

Bueno, como no sé dónde pueden estar las palabras, las he metido en un array, y luego saco 4 palabras al azar de entre ellas y las uno con un espacio en blanco para formar la $frase:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
$ perl -e '@palabras = qw(Esto es una prueba); $frase = join " ", map { $palabras[rand 4] } 1..4; for (split //, $frase) { print "[$_]" }; print "\n"'
[e][s][ ][E][s][t][o][ ][p][r][u][e][b][a][ ][u][n][a]
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

El split() con una expresión regular vacía (//) permite "partir" una cadena por cada carácter de la cadena.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Juego de palabras

Notapor jairo15 » 2016-09-20 17:03 @752

Una duda más: ¿es posible poner las palabras en un .txt y desde ahí tomarlas con el programa? ¿Y cómo?
jairo15
Perlero nuevo
Perlero nuevo
 
Mensajes: 31
Registrado: 2016-09-11 13:27 @602

Re: Juego de palabras

Notapor explorer » 2016-09-21 16:02 @710

Claro que sí. Puedes abrir el archivo con open(), leer las palabras (mejor si hay una por línea), y ya las tienes a tu disposición.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my @palabras;                   # aquí las guardaremos
  2.  
  3. open my $ARCHIVO, '<', "palabras.txt";
  4. while (my $palabra = <$ARCHIVO>) {
  5.     chomp $palabra;             # quitamos los caracteres de fin de línea
  6.  
  7.     push @palabras, $palabra;   # y la guardamos
  8. }
  9. close $ARCHIVO;
  10.  
  11. # ...
  12.  
  13. print "Primera palabra: $palabras[0]\n";
  14. print "Última palabra: $palabras[-1]\n";
  15. print "Palabra al azar: ", $palabras[rand @palabras], "\n";
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Juego de palabras

Notapor jairo15 » 2016-09-21 18:03 @794

¡Muchas gracias por la ayuda!
jairo15
Perlero nuevo
Perlero nuevo
 
Mensajes: 31
Registrado: 2016-09-11 13:27 @602


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 12 invitados