Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda para una funcion

Estas en el tema de Ayuda para una funcion en el foro de C/C++ en Foros del Web. Hola lo que necesito es que estoy haciendo el juego del ahorcado tengo las palabras para el ahorcado en un documento que le puse el ...
  #1 (permalink)  
Antiguo 01/08/2008, 15:54
Avatar de Fayca  
Fecha de Ingreso: abril-2008
Mensajes: 164
Antigüedad: 16 años, 1 mes
Puntos: 2
Pregunta Ayuda para una funcion

Hola lo que necesito es que estoy haciendo el juego del ahorcado tengo las palabras para el ahorcado en un documento que le puse el nombre de words, lo que estoy tratando de hacer es obtener una palabra al hazar de esa lista.
el codigo en c++
lo que uso es fstream y abro el documento con una variable std::ifstream

std::ifstream words;
std::string word;
words.open("words");
while(words)
{
words >> word;
}

lo que no se es como enves de cargar todas las palabras en word solo carge 1 al azar
lo que habia pensado era contar todas las '\n' en el documento con
words.get(variable_char);
y generar un valor al hazar como maximo con el valor obtenido y despoues bolver a abrir word y con un for repetir
words >> word
con el numero que obtube y usar la palabra que salga pero no se si aiga aluna forma mejor
solo pido algunas ideas de como lo pudiera hacer
  #2 (permalink)  
Antiguo 01/08/2008, 15:57
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda para una funcion

Bueno, lo mejor es tomar el archivo entero, luego como dijiste buscar los saltos de línea (\n), allí ya no es necesario volver a abrir el archivo, sino simplemente genera un número aleatorio y extrae esa línea de la variable con la cual leíste el archivo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 01/08/2008, 17:04
Avatar de Fayca  
Fecha de Ingreso: abril-2008
Mensajes: 164
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Ayuda para una funcion

gracias, tienes razón, me sirvio ya termine esa función.

std::string NextWord()
{
srand(time(NULL));
std::ifstream wordList;
std::string words[1000];
char character;
int newLines = 0;
wordList.open("words");

//upload words with wordList && count newLines
while(wordList)
{
wordList.get(character);
words[newLines] = words[newLines] + character;
if (character == '\n') newLines++;
}
wordList.close();
//make random number
return words[rand() % newLines];
}

Última edición por Fayca; 01/08/2008 a las 18:42
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:04.