Dev - C++ - Ayuda con el juego Ahorcado! -Thanks-

   
Vista:

Ayuda con el juego Ahorcado! -Thanks-

Publicado por illwin (1 intervención) el 19/12/2011 22:53:49
Necesito modificar uno de mis programas, el juego Ahorcado, muy simple por cierto. Si usan el código que les dejo, sirve, pero únicamente con la palabra ‘programación’ , y pues deseo hacerle unos cambios pero la verdad necesito ayuda, pues no se mucho sobre esto que es un poco más complejo. Gracias de antemano.

1. Crear dos modos de juego: uno que sea COMP vs PLAYER, en el cual el programa escoge aleatoriamente una palabra de un “banco de palabras” (se hace con matrices, creo) que como programador he llenado con anterioridad. ¿Cómo se hace ese banco, como escoge aleatoriamente alguna palabra? El segundo modo es: PLAYER vs PLAYER, el modo clásico, en el cual el usuario 1 digita una palabra, para que el usuario 2 la adivine. ¿Cómo asignar lo que escriba el usuario1 al array “palabra” para jugar con otra palabra que no sea ‘programacion’ ?

2. No se porque nunca se cumple la condición para mostrar el mensaje -“Esa letra ya fue digitada”-, que se supone aparece cuando es digitada por segunda vez una letra anteriormente digitada.

3. Tengo este programa dentro de un switch, entro al programa, juego y bien. Pero regreso al menú principal y entro de nuevo al juego y está cargada la “partida anterior”, según haya ganado o perdido, ¿Cómo “REINICIO” el juego para poder jugar otra partida ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
 
char palabra[50]=("programacion"), rep[100], temp [100];
int longitud = 0, i, j=0, inicial=0, acierto=0, temporal=0, oport=6;
bool repetido=false, ganar=false;
 
class Juego{
private:
char word;
 
public:
 
void Ahorcado(){
  do{
   temporal=0;
   if(inicial==0){
     for(i=0;i<strlen(palabra);i++){
       if(palabra[i] == ' '){
         temp[i] = ' ';
         longitud++;
       }
       else{
        temp[i] = '_';
        longitud++;
       }
      }
     }
 
   inicial = 1;
   temp[longitud] = '\0';
   for(i=0;i<strlen(rep);i++){
    if(rep[i] == word){
     repetido = true;
     break;
    }
    else{
     repetido = false;
    }
   }
 
   if(repetido == false){
    for(i=0;i<strlen(palabra);i++){
     if(palabra[i] == word){
      temp[i] = word;
      acierto++;
      temporal = 1;
      }
     }
    }
 
    if(repetido == false){
     if(temporal == 0){
      oport = oport - 1;
     }
    }
    else{
     printf("Esa letra ya fue digitada");
     printf("\n\n");
    }
 
    printf("\n");
 
    for(i=0;i<strlen(temp);i++){
     printf(" %c ", temp[i]);
    }
 
    printf("\n");
 
    if(strcmp(palabra,temp) == 0){
     ganar = true;
     break;
    }
 
    printf("\n");
 
    printf("Letras acertadas: %d",acierto);
    printf("\n");
    printf("Oportunidades restantes: %d",oport);
    printf("\n");
    rep[j] = word;
    j++;
    printf("Digita una letra para adivinar la palabra:  ");
    scanf("\n%c",&word);
  }while(oport != 0);
 }
};
 
class Imprimir{
 private:
       string mensaje;
 public:
       void setmensaje(string a){
        mensaje = a;
       }
       string getmensaje(){
        return mensaje;
       }
};
 
int main()
{
    system("CLS");
    rep[0] = ' ';
    rep[1] = '\0';
 
    Juego Victima;
    Imprimir mostrar;
 
    Victima.Ahorcado();
 
    if(ganar){
     printf("\n\n");
     mostrar.setmensaje("¡¡Felicitaciones!! Adivinaste la palabra");
     cout<<mostrar.getmensaje();
    }
    else{
     printf("\n\n");
     mostrar.setmensaje("Perdiste =(, pero puedes volver a intentarlo");
     cout<<mostrar.getmensaje();
    }
 
    printf("\n\n");
    system("PAUSE");
    return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder