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

Duda en C/C++

Estas en el tema de Duda en C/C++ en el foro de C/C++ en Foros del Web. Hola amigos. Estoy leyendo un libro sobre programación de videojuegos y en una parte del libro a modo de ejemplo colocan el siguiente código: Código ...
  #1 (permalink)  
Antiguo 24/09/2008, 07:38
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Duda en C/C++

Hola amigos.

Estoy leyendo un libro sobre programación de videojuegos y en una parte del libro a modo de ejemplo
colocan el siguiente código:

Código PHP:
int done 0;
while (!
done) {
    
// Leer entrada
    // Procesar entrada (si se pulsó ESC, done = 1)
    // Lógica de juego
    // Otras tareas
    // Mostrar frame

Mi pregunta o duda es, qué es lo que significa exactamente esto?

Código PHP:
while (!done) { 
Generalmente yo haría esto:

Código PHP:
while (done != 0) { 
o

Código PHP:
while (done != 1) { 
o algo así, pero el código while (!done) { no entiendo qué significa exactamente, me podrían ayudar
y decirme qué hace y por qué se hace así?

Disculpen la pregunta tan sencilla pero no programo en C, apenas estoy aprendiendo.


Saludos a todos.
  #2 (permalink)  
Antiguo 24/09/2008, 07:55
 
Fecha de Ingreso: septiembre-2008
Mensajes: 1
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Duda en C/C++

Bueno

int done = 0;
while (!done) {
// Leer entrada
// Procesar entrada (si se pulsó ESC, done = 1)
// Lógica de juego
// Otras tareas
// Mostrar frame
}
en especifico este codigo va a realizar el bloque de instrucciones que esta dentro del while mientras done tenga un valor igual a 0 ya que se esta interpretando el entero como un booleano si es = a 0 es false y si es = 1 es true.

espero haber sido suficientemente explicito. saludos
  #3 (permalink)  
Antiguo 24/09/2008, 12:46
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
Respuesta: Duda en C/C++

hola vanessita,
veo que te interesa la programacion de videojuegos.
Te recomiendo este foro que esta enfocado al desarrollo de videojuegos:
www.vjuegos.org

saludos,
  #4 (permalink)  
Antiguo 24/09/2008, 12:55
 
Fecha de Ingreso: septiembre-2008
Mensajes: 14
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Duda en C/C++

Vanessita,
buenas y santas!
Los condicionales trabajan unicamente con trues o falses. Esta bien hacer

while(done!=0) Aca entra al while mientras done sea cualquier cosa menos cero (ya que si done = 0, done!=0 se convierte en false).

while(!done) Aca entra al while mientras '!done' sea true, es decir si done=false. (el ! me niega el valor de done).

Ahora esto nos va a servir unicamente cuando trabajemos con falses y trues (o numericamente en 0 y 1). Por ejemplo, lo siguiente no es igual:

int value = 3;

while(value!=0) //entra siempre que value sea desigual a 0

vhile(!value) //no entra nunca al while porque !3 va a ser siempre false


No se si quedo muy claro.. pero bueno, espero que se entienda..
Saludos!
  #5 (permalink)  
Antiguo 25/09/2008, 09:40
Avatar de daPhyre
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: [email protected] (Redirects to 127.0.0.1)
Mensajes: 2.404
Antigüedad: 16 años, 1 mes
Puntos: 142
Respuesta: Duda en C/C++

En resumen de forma clara:

En C no existe el valor Boolean como tal. Un valor entero se puede tomar como booleano de forma que 0 = false, y cualquier otro valor es true.

En otras palabras, ahí lo que estás diciendo es "mientras no haya acabado". Y marcarás que ha acabado cuando Done sea distinto de cero.

Suerte
__________________
<signs>daPhyre</signs>
Jugaa.me


Adios al dolor de cabeza de IE...
  #6 (permalink)  
Antiguo 26/09/2008, 15:52
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 2 meses
Puntos: 1
Re: Respuesta: Duda en C/C++

Muchas gracias a todos por responder, que foro tan bueno.

Una ultima pregunta daPhyre, en C++ tampoco existe un tipo de datos boolean?

Saludos a todos y gracias por responder.
  #7 (permalink)  
Antiguo 26/09/2008, 19:17
 
Fecha de Ingreso: septiembre-2008
Mensajes: 5
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Duda en C/C++

Hola Vanessita, pues si, en C++ si existe el tipo de datos boolean y la palabra clave para declararla es “bool”, y una variable declarada con este tipo especial solo puede contener dos valores: true (verdadero), false(falso).

Las palabras true y false son literales que tienen valore predefinidos. false es equivalente a 0 y true equivalente a 1.

La sintaxis es la siguiente:
bool loop = false; //Declara la variable loop y la inicia en false que es equivalente a: bool loop = 0;
bool loop1 = true; //Declara la variable loop1 y la inicia en true que es equivalente a: bool loop1 = 1;
  #8 (permalink)  
Antiguo 28/09/2008, 15:55
Avatar de daPhyre
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: [email protected] (Redirects to 127.0.0.1)
Mensajes: 2.404
Antigüedad: 16 años, 1 mes
Puntos: 142
Respuesta: Duda en C/C++

Declarar Bool siempre me ha marcado error a mi. No se que versión de C utilizarán otros que digan que si es posible.

Hasta donde yo se, utilizar un int es lo mismo que utilizar un bool, aunque falso solo será cuando este sea igua a 0.

Suerte
__________________
<signs>daPhyre</signs>
Jugaa.me


Adios al dolor de cabeza de IE...
  #9 (permalink)  
Antiguo 28/09/2008, 16:32
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
Respuesta: Duda en C/C++

Cita:
Iniciado por daPhyre Ver Mensaje
Declarar Bool siempre me ha marcado error a mi. No se que versión de C utilizarán otros que digan que si es posible.
Código:
bool bandera = true;
eso te da error? que compilador usas y bajo que OS estas?


Cita:
Iniciado por daPhyre Ver Mensaje
Hasta donde yo se, utilizar un int es lo mismo que utilizar un bool, aunque falso solo será cuando este sea igua a 0.
No es lo mismo.

El valor estandar (en bytes) de bool es = 1, mientras que el valor de int es = 4.
Es una GRAN diferencia.

saludos,
  #10 (permalink)  
Antiguo 28/09/2008, 16:50
Avatar de daPhyre
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: [email protected] (Redirects to 127.0.0.1)
Mensajes: 2.404
Antigüedad: 16 años, 1 mes
Puntos: 142
Respuesta: Duda en C/C++

Cita:
Iniciado por blackwind Ver Mensaje
eso te da error? que compilador usas y bajo que OS estas?
Pues en Windows tuve Borland Turbo C++ 4.x y lueo Borland C... no recuerdo que versión, pero creo que era más antigua.

Ahora tengo gcc en Linux, y la verdad no lo he probado pues ya estaba con la idea que no servía. Pero si sirve, que mejor, pues claro que se la gran diferencia de bits entre int y bool, pero al decir "igual" me refería en su comportamiento
__________________
<signs>daPhyre</signs>
Jugaa.me


Adios al dolor de cabeza de IE...
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 03:59.