Logo

Foro sobre los Ciclos Formativos de Grado Medio ( SMR ) y Superior ( ASIR, DAI, DAM y DAW ).

Ocultar caracteres en pantalla

Foro sobre el módulo > Programación en lenguajes estructurados.

Ocultar caracteres en pantalla

Notapor autlos el 26 Ene 2011, 16:42

Buenas, cuánto tiempo sin pasarme por aquí xD.
Tengo que hacer un ahorcado para programación (C)y me lo estoy intentando currar.
He puesto un menú con los modos de juego: Un jugador; Dos jugadores.

El de un jugador está perfecto, una matriz en la que guardo palabras (de momento 34 xD), elijo una de forma aleatoria, muestra tantos guiones como letras tenga la palabra y se va completando según el usuario introduzca letras válidas, etc etc. Funciona a la perfección y lo único que quiero mejorar no tiene importancia.

El problema está en el de dos jugadores. Por un lado es más sencillo: El jugador 1 teclea una palabra que guardo en un array, muestra en pantalla tantos guiones como... blablabla, a partir de ahí todo igual. El caso está en que mientras el jugador 1 escribe la palabra se muestran todos los caracteres en pantalla. Me gustaría que os ocultara y mostrara asteríscos en su lugar, pero que en el array guardara la palabra correctamente.

Si a alguno le interesa ver el código lo puedo poner, son 177 líneas contando los espacios entre funciones. Pero imagino que a la mayoría este programa le parecerá muy fácil (Se me ha metido en la cabeza que con mi profesora vamos muy despacio y tenemos que ser 70% autodidactas).
Avatar de Usuario
autlos
Usuario FP
Usuario FP
 
Mensajes: 48
Registrado: 20 Ago 2010, 22:30
Ciclo Formativo: DAI / DAM
Curso:
Acceso por: Bachiller

Re: Ocultar caracteres en pantalla

Notapor Kashir el 26 Ene 2011, 18:31

Qué tal, autlos?
Yo también tengo un juego del ahorcado por ahí hecho, pero ni le he metido (ni sé) ocultación o "aparente encriptación" de caracteres xD

A mí me gustaría el código, pégatelo en Pastebin que siempre está bien comparar. :-D

Sin más.
Imagen
Imagen
Avatar de Usuario
Kashir
Moderador FP
Moderador FP
 
Mensajes: 1069
Registrado: 11 Dic 2008, 23:20
Ubicación: Córdoba, España
Ciclo Formativo: DAI / DAM
Curso:
Acceso por: Prueba de Acceso
Provincia: Cordoba
Instituto: IES Trassierra


Re: Ocultar caracteres en pantalla

Notapor autlos el 27 Ene 2011, 20:11

Kashir escribió:Qué tal, autlos?
Yo también tengo un juego del ahorcado por ahí hecho, pero ni le he metido (ni sé) ocultación o "aparente encriptación" de caracteres xD

A mí me gustaría el código, pégatelo en Pastebin que siempre está bien comparar. :-D

Sin más.



Todo bien gracias jaja, aquí tienes el código:
Debe registrarse para ver este enlace. Gracias por su visita.

Y no dudéis en comentarme cualquier cosa que veáis que se pueda mejorar. De hecho ahora estoy pendiente de ocultar los caracteres en pantalla. También he pasado el juego a varios familiares y dicen que es muy dificil, así que voy a añadir que los intentos restantes dependan de strlen, así cuanto más difícil más intentos tendrán.

Cuando esté todo me pondré a pulir el código, pero lo haré sin prisa e incluso después de entregárselo a la profesora porque a ella lo eficiente que sea el programa no le importa mucho que digamos. Particularmente odio los system("cls"), y el 90% de las cosas las hago incluso sin la librería stdlib, pero en este lo he necesitado mucho.



Gracias ya he tenido una pequeña idea, luego si funciona la posteo.


--------------------
Tengo esto pero no funciona del todo bien. Almacena y muestra las pulsaciones de DEL, y luego guarda un caracter de más (incluso si añado '\0'):
Código: Seleccionar todo
int main()
{
    char palabra1[letra], oculta[letra], op;
    int cont=0;
    printf("Escribe una palabra: ");
    do{
                    op = getch();
                    palabra1[cont] = op;
                    cont++;
                    if(op != '\r') printf("*");
    }while(op != '\r');
Última edición por autlos el 27 Ene 2011, 20:58, editado 2 veces en total
Avatar de Usuario
autlos
Usuario FP
Usuario FP
 
Mensajes: 48
Registrado: 20 Ago 2010, 22:30
Ciclo Formativo: DAI / DAM
Curso:
Acceso por: Bachiller

Re: Ocultar caracteres en pantalla

Notapor Kashir el 27 Ene 2011, 20:20

Ahora le echo un ojo, de momento lo que he visto (en modo 1jugador) es que el contador suma intentos de 2 en 2 (también intentos restantes los resta de 2 en 2)

Seguramente tengas un contador++ por ahí suelto, pero lo dicho, voy a echarle un ojo.

Sin más.
Imagen
Imagen
Avatar de Usuario
Kashir
Moderador FP
Moderador FP
 
Mensajes: 1069
Registrado: 11 Dic 2008, 23:20
Ubicación: Córdoba, España
Ciclo Formativo: DAI / DAM
Curso:
Acceso por: Prueba de Acceso
Provincia: Cordoba
Instituto: IES Trassierra

Re: Ocultar caracteres en pantalla

Notapor autlos el 27 Ene 2011, 20:30

Kashir escribió:Ahora le echo un ojo, de momento lo que he visto (en modo 1jugador) es que el contador suma intentos de 2 en 2 (también intentos restantes los resta de 2 en 2)

Seguramente tengas un contador++ por ahí suelto, pero lo dicho, voy a echarle un ojo.

Sin más.


Perdona, es por un fflush(stdin) que faltaba, he estado intentando quitar líneas absurdas mientras hacía el copy paste pero se ve que quité alguna que no debía xD.
Avatar de Usuario
autlos
Usuario FP
Usuario FP
 
Mensajes: 48
Registrado: 20 Ago 2010, 22:30
Ciclo Formativo: DAI / DAM
Curso:
Acceso por: Bachiller

Re: Ocultar caracteres en pantalla

Notapor aclivis el 29 Ene 2011, 13:56

quizá buscas algo como esto:


Código: Seleccionar todo
#include <stdio.h>
#include <readpassphrase.h>

int main()
{
   const int passwordLength = 20;
   char password[passwordLength];
   readpassphrase("Enter the password: ", password, passwordLength, 0);
   printf("You entered: %s\n", password);
   
   return 0;
}


o algo mas sencillo sería:

Código: Seleccionar todo
#include <stdio.h>
#include <unistd.h>

int main()
{
/* ... */
char *password = getpass("Password: ");
printf("%s",password);

 
   return 0;
}
Imagen
Avatar de Usuario
aclivis
Iniciado
Iniciado
 
Mensajes: 237
Registrado: 31 Dic 2010, 03:09
Ubicación: Crevillent (Baix Vinalopó)
Ciclo Formativo: No estudio FP
Curso: Ninguno
Provincia: Alicante


Volver a PLE

¿Quién está conectado?

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