Mi primer juego en C: El ahorcado en consola, un logro realista para

Wayfa - 18/05/2010 17:11
El juego del ahorcado, sin interfaz, sin gráficos, solo en consola. Desilusionado? El novato realista conoce sus limitaciones.

Ya considere que con lo que sabia de C++ podía hacer algo remotamente usable, aunque más no fuera rudimentario, así que, me puse y en unas 4-5 horas hice esto en blodsheddev de cero.

Es lo equivalente a la esfera con un par de luces del novato de 3d, pero bueno, estoy contento de haber podido hacerlo.

Iré mejorando y sumando features a medida que vaya aprendiendo cosas nuevas, y en cuanto aprenda algo de interfaz capaz le pongo unos gráficos en lugar de esa fea ventana negra.

Capaz que después me da y en cuanto limpie y documente el source lo público para pasar vergüenza y que los programmers del foro se rían de mi (y de paso me tiren algún hint).

Posdata: por cierto, el random es cutre y siempre salen los mismos números, esa feature esta poco útil por ahora.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #132972

Troler - 18/05/2010 17:42
1r bug: cuando quiero resolver la palabra 2, si la resuelvo directamente poniendo la palabra, sale que soy un winnar y sale del juego sin dejarme pulsar, en vez de dejarme contestar la siguiente. Si la entro por letras sueltas, va bien. Con la palabra 1 no falla.

Con la 3 veo que también me pasa.

Suspendido xd.
Wayfa - 18/05/2010 17:44
Lol. Tengo que restringir la entrada de letras a una por vez. Eso de poner la palabra entera es cosa mala. Más que salir esta crasheandojeh.
Troler - 18/05/2010 18:32
Haz un diseño del algoritmo en papel antes de picar código. Sé que da pereza y parece inútil para proyectos pequeños, pero te ayudará a evitar errores como este.

Esperando avances.
Caronte - 18/05/2010 18:51

Posdata: por cierto, el random es cutre y siempre salen los mismos números, esa feature esta poco útil por ahora.

Usa los milisegundos del reloj del sistema como semilla del generador de número aleatorios.
Sadyk - 18/05/2010 18:57
Está muy bien, me gustaría ver el código si es posible, así te podía criticar mejor. Seria necesaria una restricción de letras, a medida que vallas programando iras fijándote más en que no debes dejar posibilidades a las cuales no tenga respuesta el programa, por ejemplo, si meto un punto, me lo cuenta como si hubiera fallado, y al principio, cuando te da a elegir la palabra, pulse y el programa se fue, esas cosas las tienes que calcular siempre.

Nada, un saludo.
Wayfa - 18/05/2010 20:26
Hey. Tenkius por el feedback. Si, lo del randomsed, aún no me lo han enseniado, si bien lo conozco. Y lo de la restricción de imputs, aún no tengo del todo claro cómo hacerlo si bien se que se podría hacer algo con la representación en números integrales de los caracteres. Estas cosas son las próximas.

Por ahora, actualizo el (*.exe), ahora solo toma la primer letra que le das y he corregido alguna que otra cosa rara que vi. Aunque debe tener aún una floritura de bugs infumable.

En cuanto el código sea legible y sume estas últimas cosas lo subiré también.
Wayfa - 18/05/2010 20:28

Haz un diseño del algoritmo en papel antes de picar código. Sé que da pereza y parece inútil para proyectos pequeños, pero te ayudará a evitar errores como este.

Esperando avances.

Eso pinta como una gran idea. Sino al final me lio solo y queda una porquería que hace agua por todos lados, como esta.
Wayfa - 19/05/2010 18:02
Exe actualizado.
/*sumado en la 1.1:
-Comprobaciones sobre si el usuario presiona la misma tecla varias veces, tanto correcta como incorrecta.

Frases explicativas a medida que se pierden chances.

Limitado el input a una sola letra.

Removidas vars obsoletas.

Bloqueo de caracteres que no se aceptan en el var_tipo de input.

Transformación de mayúsculas en minúsculas de manera automática.

Ignorar símbolos y caracteres no letras en el ciclo de jugar.

Random sedeado en el tiempo.
*/.

A ver si alguien lo prueba y me dice que tal.

Y para completarla, aquí va el código fuente.

El código es simplón en término de funciones, de 12 documentos de C++ básico, recién voy por la 4.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #132980

Troler - 19/05/2010 18:29
Bug. Si no pulsas s para seguir. Mec. Falta tratar el caso en el que el usuario no entra el valor adecuando, e insultarle hasta que le quede claro.

Diría otras cosas, pero eso ya son manías mías y me acabarías enviando a la - : caca, excremento, deposición.

Venga, no te estreses mucho, que el c y derivados, en grandes dosis no son buenos para la salud Mental.
Wayfa - 19/05/2010 18:43
Bullshit. Si no entras, simplemente retorna cero o peta, lo cual cierra el programa de todas formas. Vamo, que ni el bil gueits se hace una salida tan guay como esa.

Ya hablando en serio, podría también poner una comprobación de que si el input es nada, te pute y te diga que le digas s o cualquier otra cosa, payo.

O mejor que detecte el enter, no sé cómo hacer eso.

Mejor que solo cheque la variable.= vacío, por ahora.

Venga, dime más cosas. Al menos para tenerlas en cuenta.

Por cierto, el cin >> es una puta.
A78 - 19/05/2010 18:43
Me he ganado un pollo mohoso, ya sabes mi dirección así que, espero el envío.
Wayfa - 19/05/2010 21:23
De Holanda a noruega, va a llegar algo más que mohoso. Por cierto Troler, creo ya encontré la forma de que el cin me detecte un input vacío, así que, pondré esa última característica.

Jah, ni el karmak ese.
Troler - 19/05/2010 21:36
Para detectar la pulsación de 1 tecla, creo que el getchar funcionaba, ahora no recuerdo. Pero bueno, yo de C++ no tengo ni idea, supongo que, será el próximo lenguaje que aprenda.

Te echaría una mano en el código, pero tengo que acabar el proyecto final de Carrera en los próximos días y si no me doy prisa me pilla el toro.

Seguiré el hilo de todas formas, entre pausas.
Sadyk - 19/05/2010 23:13
Me ha sorprendido la limpieza del código, está muy bien escrito y comentado, mucho más legible que el mío. Enhorabuena.