Sei sulla pagina 1di 8

Facultad de Ingeniera

Carrera de Ingeniera de Sistemas Computacionales

JUEGO DE NAVES PROGRAMADO EN C++

Autor:
75322 Gregory Recalde Gutirrez

Profesor:
DIEGO CUEVA CHAMORRO

Trujillo, Noviembre 2016

Resumen

Este proyecto consiste en la programacin de un juego de naves programado


en c++, en el cual se utilizarn bucles del tipo for, y while, adems se har uso
de las clases, funciones, y listas.
Primero se crearon las funciones para el escenario, posteriormente se crearon
clases para cada objeto del juego, que seran: Nave, asteroide, bala. Cada
clase tiene sus respectivas funciones y mtodos que posterior mente fueron
llamados en la rutina principal, en la cual mediante condiciones se logra dar
vida al juego.
1. Descripcin
Se inici incluyendo las siguientes libreras:
#include <stdio.h>
#include <iostream>
#include<windows.h>
#include<conio.h>
#include<stdlib.h>
#include<list>
Primeramente se realiz la creacin de funciones para manejar el entorno de la
consola, la primera fue: void setposition (int x,int y) con la que nos ubicamos
en cualquier parte de la consola utilizando coordenadas.
La segunda: void borrarCursor () que borrar el cursor y su parpadeo.
La tercera: void pintar_limites () con la que imprimiremos los lmites del
escenario.
Cabe resaltar que se us la funcin printf () ya que esta nos permite imprimir
los caracteres del cdigo ASCII.
Posterior mente se crearon los objetos, usando class, que nos permitir crear
clases, la ventaja de trabajar con clases es que nos permitir mantener un
orden y facilitar la codificacin, debido a que cada clase tiene sus propias
funciones y mtodos.

CLASES, FUNCIONES Y MTODOS


La clase de tipo NAVE
De atributos: (int _x,int _y,int _corazones,
int _vidas):x(_x),y(_y),corazones(_corazones),vidas(_vidas){} ;
Contiene las siguientes funciones:
Para devolver el valor de las coordenadas x,y respectivamente:
int X(){return x;}
int Y(){return y;}
Para retornar el nmero de vidas:
int VID(){return vidas;}
Para borrar un corazn:
void COR(){corazones--;}

Para imprimir la nave en la consola:


void pintar();
Para borrar la nave de la consola:
void borrar();
Para mover la nave:
void mover ();
Para imprimir corazones:
void pintar_corazones();
Para crear la animacin de estallido de la nave al perder todos los corazones:
void morir();
La clase de tipo ASTEROIDE
De atributos: (int _x,int _y):x(_x),y(_y){}
Contiene las siguientes funciones:
Funcin para imprimir el asteroide:
void pintar();
Funcin para realizar el movimiento del asteroide:
void mover();
Funcin para crear la colisin de NAVE-ASTEROIDE:0
void choque(class NAVE &player);
Funcin ara devolver el valor de las coordenadas x,y respectivamente:
int X(){return x;}
int Y(){return y;}

La clase de tipo BALA


De atributos: (int _x, int _y): x(_x),y(_y){}
Contiene las siguientes funciones:
Funcin ara devolver el valor de las coordenadas x,y respectivamente:
int X(){return x;}
int Y(){return y;
Funcin para realizar el movimiento de la bala:
void mover();
Funcin para detectar la colisin de la bala y el lmite superior:
bool fuera();
RUTINA PRINCIPAL int main()
Conforme se creaban las funciones principales de la consola y posteriormente
las clases se iban declarando en nuestra rutina principal, haciendo que
interaccionen entre ellas para hacer que funcione el juego. Primero se llamaron
las siguientes funciones:
borrarCursor();
pintar_limites();
NAVE player(24,24,3,3);
player.pintar();
player.pintar_corazones();
Y se crearon dos list<> que fueron
list<BALA*> A y list<ASTEROIDE*> B
Cada uno con su iterador respectivamente:
iterator it; // para list<BALA*> A
iterator itA; // para list <ASTEROIDE*> B
Las listas para que nos hagamos una idea actan similarmente a un arreglo,
solo que cada elemento que se va creando se acumula.

Para el funcionamiento del juego se uspo while(game_over), dentro de esto


se imprimi el puntaje. Luego haciendo us la funcin if y dentro de esta la
funcin kbhit, que nos permite reconocer los caracteres que ingresamos por
teclado. Se us bucles de tipo for para hacer las interacciones entre:
NAVE-ASTEROIDE, NAVE-BALA, BALA-ASTEROIDE.
Y para finalizar el juego se us if() y como condicin player.VID() == 0
entonces game_over=true; por consiguiente se saldra del bucle y se mostrara
GAME OVER.
2. Boceto de interfaces
INICIO DEL JUEGO
Puntos 0

Salud
VIDAS

UPN

Al compilar el cdigo se tiene que visualizar el juego en ejecucin, el puntaje,


las vidas y la salud, adems de los lmites. Se tiene que ver tambin a la nave y
asteroides que caen, as tambin las balas que emite la nave.
INICIO DEL JUEGO
Puntos 0

GAME OVER

Salud
VIDAS

Al perder todas las vidas se muestra el mensaje de GAME OVER.

3. Diagrama o Pseudocdigo

inicio
borrarCursor();
pintar_limites();
NAVE player(24,24,3,3);
player.pintar();
player.pintar_corazones();
list<BALA*> B;
list<BALA*>::iterator it;
list<ASTEROIDE*>
A;
i=0
list<ASTEROIDE*>::iterator itA;

i++

i<5

A.push_back(new ASTEROIDE(rand()%75+3,rand()%5+4));
!game_over

MOVER NAVE kbhit()


COLISIN ASTEROIDE-NAVE
CREACIN BALA
{
COLISIN BALA ASTEROIDE
AUMENTAR puntos+=5
}
player.VID()==0

4. Implementacin

fin

game_over=true;
"GAME OVER"

5. Conclusiones y recomendaciones
Como resultado final se tiene un juego de naves, que se logr mediante
animaciones simples que en realidad son bucles, concluyendo que se puede lograr
un juego mediante conceptos bsicos de programacin, se rescata como
aprendizaje que a la hora de hacer el cdigo verificar bien los signos manteniendo
un orden, ya que un mnimo error conlleva a que no se pueda compilar el juego, y
en el peor de los casos como pas en la elaboracin de este proyecto, que se
compile y haya una ejecucin defectuosa del juego.
Y como enseanza primordial que con un conocimiento bsico y con nuestro
ingenio se pueden lograr juegos como este.

Potrebbero piacerti anche