Programación Gráfica 5. Introducción a C++..

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

EL LENGUAJE DE PROGRAMACIÓN C
Programación Gráfica Manejo de Estados. Modelación con estados. ¿Por qué nos interesa modelar el videojuego basándonos en estados? Porque es más intuitivo.
11. Control de Flujo 2: Iteraciones.. Sirve para tomar decisiones de todo tipo. Sirve para evaluar condiciones, ej: extremos de la pantalla. En videojuegos.
Programación Interactiva Fundamentos de Programación
Instrucciones y excepciones
A partir del lenguaje C Entorno de programación Visual C++
1.2 Sintaxis del lenguaje Java.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Tablas y Cadenas CONTENIDO Tablas
ÁRBOLES BINARIOS DE BÚSQUEDA
El lenguaje de programación Java
JAVA J.A.C..
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Capítulo 1 “Elementos de Programación”
Curso Programación en Java
El lenguaje de programación C - Identificadores y variables – Isidro González Caballero ( Introducción.
Computación II Repaso de java Karina Figueroa Mora.
Herramientas de polimorfismo y herencia en C++
El Lenguaje C++. Creación de programas simples de C++ Builder como ejercicios en C++. Los elementos de control fundamentales en C++, incluyendo operadores.
Resumen Fundamentos de Programación/ Programación I
Estructuras de Datos Introducción. Proceso (Programa ) Datos de Entrada Datos de salida El proceso computacional.
TABLAS DE DISPERSIÓN (HASH). TABLAS ENCADENADAS INDIRECTAS.
9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones.
Técnicas Computacionales en Física
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
1. Introducción..  Conceptos: ◦ Problema. ◦ Objeto. ◦ Instancia. ◦ Modelo.  Estrategia para la resolución de problemas.
INTRODUCCIÓN AL LENGUAJE C++. Instrucciones Temas.
6. Clases y Métodos..  6.1 Structs  6.2 Funciones  6.3 Namespaces  6.4 Clases.
Fundamentos de Programación
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
Algoritmo.
Ing. Esp. Ricardo Cujar. Permite la ejecución de una sentencia, dada una determinada condición. If(condición){ sentencia(s) a ejecutar en caso de que.
ARREGLOS. La sintaxis para declarar e inicializar un array será: Tipo_de_variable[ ] Nombre_del_array = new Tipo_de_variable[dimensión]; También podemos.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS PROF. M.I. JAIME ALFONSO REYES.
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
Implementación de Iterables Construcción de Iterables virtuales o basados en otros iterables Fundamentos de Programación Departamento de Lenguajes y Sistemas.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión
2012-BM5A. Unos tips antes de empezar: C# es Case Sensitive (sensible a mayúsculas) Pepe ≠ pepe ≠ pEpE Las asignaciones se hacen con “=” y las comparaciones.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Tipos List y Set con tipos genéricos Estructura for extendido Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión
El lenguaje de Programación C Fernando J. Pereda.
Control, adquisición y monitoreo con Arduino y Visual Basic .net
Taller de Java Universidad de los Andes
Estructuras de Control en Visual Basic.net
Operadores Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.
BREVE INTRODUCCION A LA PROGRAMACION
Como almacenar grandes cantidades de datos
¿Cómo almacenar grandes cantidades de datos?
Ingeniero en Computación José Alfredo Cobián Campos
¿Cómo almacenar grandes cantidades de datos?
Nociones básicas sobre C++
Programación I MC Beatriz Beltrán Martínez
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Instrucciones y excepciones
Fundamentos del lenguaje de programación Condicionales, ciclos, Métodos, enumeraciones Escuela Técnica Superior Kinal Instructor Edwin Tumax.
Teclado y Pantalla (Java estándar)
Nociones básicas sobre C++
Unidad 3. Introducción a la programación
Tipos Básicos.
Aplicaciones de RECURSIVIDAD
El Lenguaje C: Elementos Básicos
Programación I MC José Andrés Vázquez Flores
Javascript.
Arreglos en Java.
SENTENCIAS CONTROL DE FLUJO EN C I.E. Mario Jiménez.
Informática Ingeniería en Electrónica y Automática Industrial
Estructuras de control Java
Transcripción de la presentación:

Programación Gráfica 5. Introducción a C++.

Palabras reservadas asm auto bool break case catch char class const const_cast continue default delete do double dynamic_cast else enum explicit extern false float for friend goto if inline int long mutable namespace new operator private protected public register reinterpret_cast return short signed sizeof static static_cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void volatile while

Control de Flujo

If - else Sirve para tomar desiciones. En videojuegos típicamente usado para la IA de enemigos. if( enemigo->distancia( protagonista ) < dist_min) enemigo->atacar(); else enemigo->patrullar();

Switch switch(tecla) { case W: protagonista->MoverUp(); break; case A: protagonista->MoverLeft(); case D: protagonista->MoverRight(); case S: protagonista->MoverDown(); case ESPACE: protagonista->Disparar() case ESC: continuar = false; default: } Usado cuando se tiene un número finito de valores para una variable. Típicamente usado para el diseño de menús. Típicamente usado para el manejo de estados. (usando enum)

While “Mientras”. Usado para cuando se itera mientras se cumpla una condición. Ejemplo: Un recolector de recursos, recolectará mientras hayan recursos. Típicamente usado en el ciclo principal del videojuego. while( continuar ) { captarTeclas(); protagonista->Mover(); moverEnemigos(); aplicarFisica(); }

For Usado para iterar un número finito de veces. Típicamente utilizado para iterar un conjunto determinado de elementos, donde se conoce el nº de los elementos. for(int i=0; i<enemigos.size(); i++) { enemigo.get(i)->Mover(); }

For

Sentencia Break Usado para quebrar el flujo normal de una iteración y terminar ésta. Usado para terminar una iteración cuando se ha cumplido una condición. for(int i=0; i<enemigos.size(); i++) { if(bala->isColision(enemigo->get(i))) bala->Morir(); enemigo->get(i)->Morir(); break; }

Sentencia Continue Usado para quebrar el flujo normal de una iteración y continuar con la próxima iteración. Usado para no realizar el flujo normal de la iteración cuando se cumpla una condición. for(int i=0; i<personajes.size(); i++) { if(personaje.get(0)->getColor() == color) continuar; if(bala->isColision(enemigo->get(i))) bala->Morir(); enemigo->get(i)->Morir(); break; }

Arrays

String Cadenas de caracteres. char <identificador> [<longitud máxima>]; char Saludo[5]; Saludo = "HOLA" ; Saludo[0] = 'H'; Saludo[1] = 'O'; Saludo[2] = 'L'; Saludo[3] = 'A'; Saludo[4] = '\000'; char Saludo[5] = "HOLA“;

Arrays Arreglos, representa un conjunto de elementos de un mismo tipo, donde el tamaño ya es conocido. Usado típicamente para: Tableros Videojuegos 2D donde se conoce cada una de las posiciones. Conjunto de elementos, cuando se sabe de antemano el numero de los elementos.

Arrays <tipo> <identificador>[<núm_elemen>][[<núm_elemen>]...]; int Vector[3]; Vector[0] = x; Vector[1] = y; Vector[2] = z; Vector[2] += velocidadZ; Vector[2] -= velocidadZ;

Arrays <tipo> <identificador>[<núm_elemen>][[<núm_elemen>]...]; int Vector[3]; Vector[0] = x; Vector[1] = y; Vector[2] = z; Vector[2] += velocidadZ; Vector[2] -= velocidadZ;

Arrays int Tabla[10][10]; char DimensionN[4][15][6][8][11]; ... DimensionN[3][11][0][4][6] = DimensionN[0][12][5][3][1]; Tabla[0][0] += Tabla[9][9]; int tablero[3][3]; tablero[0][0] = 1; tablero[1][0] = 2; float R[10] = {2, 32, 4.6, 2, 1, 0.5, 3, 8, 0, 12}; float S[] = {2, 32, 4.6, 2, 1, 0.5, 3, 8, 0, 12};

Arrays

Arrays

Confección de un Tablero Videojuego OXO

Confección de un Tablero: OXO Lo primero es asignar qué estados puede tener cada casilla. enum TipoCasilla { CRUZ, CIRCULO, NONE }; int tamano; // tamaño del tablero. Lo segundo es crear nuestro tablero. TipoCasilla tablero[3][3];

Confección de un Tablero: OXO Debemos crear una función que inicialice el tablero y que sirva para resetearlo cuando queramos iniciar un nuevo juego. void Resetear() { for(int i=0; i<tamano; i++) for(int j=0; j<tamano; j++) tablero[i][j] = NONE; }

Confección de un Tablero: OXO Debemos crear una función que asigne un estado a una casilla, para los distintos jugadores. void Marcar(TipoCasilla tipo, int x, int y) { tablero[x][y] = tipo; }

Confección de un Tablero: OXO Debemos crear una función que nos indique en qué estado está cada una de las casillas. TipoCasilla getCasilla(int x, int y) { return tablero[x][y]; }

Confección de un Tablero: OXO Finalmente debemos determinar si un jugador ha ganado una partida bool isFinalizado(TipoCasilla tipo) { //verificamos en el eje x for(int i=0; i<tamano; i++) for(int j=0; j<tamano; j++) if(tablero[i][j] != tipo) break; else if(j == tamano -1) return true; }

Confección de un Tablero: OXO bool isFinalizado(TipoCasilla tipo) { //verificamos en el eje y for(int j=0; j<tamano; j++) for(int i=0; i<tamano; i++) if(tablero[i][j] != tipo) break; else if(j == tamano -1) return true; }

Confección de un Tablero: OXO bool isFinalizado(TipoCasilla tipo) { //verificamos las diagonales for(int i=0; i<tamano; i++) if(tablero[i][i] != tipo) break; else if(j == tamano -1) return true; } return false; //Sino hubo un resultado exitoso

Confección de un Tablero: OXO Ejercicio: Crear función que determine dado un cierto estado del tablero, si es que puede ganar un jugador o no. bool PuedeGanar(TipoCasilla tipo);

Preguntas ¿?