Tengo que entregar un trabajo de programacion en C, lo tengo que hacer con el Qt.
El caso, es que llevo 3 dias volviendome loco (aun estoy aprendiendo, hace dos meses no sabia nada). El programa compila y ejecuta, pero me salen 3 errores. Y ademas, una instruccion que deberia hacer, no consigo que la haga.
En concreto es cuando un jugador acierta la palabra, deberia imprimir en pantalla que ha ganado y que si se juega otra partida, para que el otro jugador elija otra, pero no funciona, la palabra queda completada, pero sigue pidiendo letra... solo sale de ahi cuando fallas todos los intentos.
Ese es mi mayor problema.
Despues otro, que no me lo han pedido, pero me gustaria saber como ponerlo, es limitar al usuario que solo ponga letras a la hora de elegir la palabra a adivinar, y si pone numeros que avise de que no puede ser. Pero si hay que cambiar demasiado codigo, lo descarto, es simplemente algo que me hacia ilusion hacer.
Y el ultimo, que he dicho al principio, me salen 3 pequeños errores, y no consigo saber de que son.
He decidido publicar aqui mis dudas por que he visto que el foro es muy bueno, ya he solucionado algunas dudas haciendo visitas sin registrarme, pero bueno, ya me toco a mi ser el pregunton jajaja.
Aqui les dejo el codigo que tengo, espero que no sea mucha cosa, no me gusta molestar.
Un saludo, y muchas gracias a todos los que ayudan en el foro ;)
Código c:
Ver original
//INCLUIMOS LAS LIBRERIAS NECESARIAS PARA QUE EL CODIGO SE EJECUTE CORRECTAMENTE. #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <string.h> int main(void) { //DECLARACION VARIABLES A UTILIZAR EN EL PROGRAMA. int i=5, j=0, puntosJug1 = 0, puntosJug2 = 0, turno = 1, medidaCad, centinela; char palabra[50], cadena[51]; char jugar, letra; do { //CONTROLAMOS LOS TURNOS DE CADA JUGADOR MEDIANTE ESTE IF-ELSE. if (turno%2!=0) { //CONTROLAMOS EL DATO QUE INTRODUCE EL USUARIO. do { } cadena[medidaCad] = '\0'; do { //INICIALIZAMOS LA VARIABLE CENTINELA. centinela = 0; do { } while (letra < 'a' || letra > 'z'); if (palabra[j] == letra) { cadena[j] = letra; centinela = 1; } } if (centinela != 1)i--; } while(i != 0 || cadena==palabra); //AQUI ES DONDE ESTA EL CODIGO QUE DEBERIA EJECUTARSE SI SE ACIERTA LA PALABRA, PARANDO , IMPRMIENDO LA FRASE Y SUMANDO 1 PUNTO AL JUGADOR. PERO NO CONSIGO QUE FUNCIONE if (cadena==palabra) { puntosJug2++; } else puntosJug1++; } else{ //INICIALIZAMOS LA VARIABLE CENTINELA. centinela = 0; //CONTROLAMOS EL DATO QUE INTRODUCE EL USUARIO. do { } cadena[medidaCad]='\0'; do{ //INICIALIZAMOS LA VARIABLE CENTINELA. centinela = 0; do{ } while (letra < 'a' || letra > 'z'); if (palabra[j]==letra) { cadena[j]=letra; centinela=1; } } if (centinela != 1)i--; } while(i!=0 || cadena==palabra); if (cadena==palabra) { puntosJug1++; } else puntosJug2++; } do{ } while (jugar != 'S' && jugar != 's' && jugar != 'N' && jugar != 'n'); //INCREMENTAMOS LA VARIABLE TURNO PARA QUE PREGUNTE AL OTRO JUGADOR. turno++; //INICIALIZAMOS LOS VALORES QUE NECESITAMOS PONER EN SU ESTADO INICIAL. i=5; j=0; } while (jugar == 'S' || jugar == 's'); //FUNCIÓN QUE NOS PERMITE CONTROLAR LA SALIDA DEL PROGRAMA, DANDOLE A 1 TECLA. return(0); }