Introducción a C++

1

Todo lo que aprenderás sobre C++

2

¿Qué es programar y por qué aprender C++?

Conceptos Generales de C++

3

La Historia de C++ y sus diferencias con C

Preparando el entorno de trabajo

4

Instalando Codeblocks

5

Pasos para instalar en mac

6

Ejecutando nuestro primer programa

7

¿Qué son las librerías STD? - Portada del Proyecto

Manejo de memoria

8

¿Qué es la memoria y tipos de datos?

9

Alojando variables en memoria

10

¿Cómo usar operadores?

11

¿Qué son los apuntadores?

12

Reto: Escribir un programa que calcule áreas.

Entrada de datos y funciones

13

¿Cómo introducir datos a nuestro programa?

14

¿Cómo usar condicionales?

15

Usando condicionales

16

¿Cómo encapsular código en funciones ?

17

¿Qué son los parámetros y como usarlos?

18

Reto: Juego narrativo implementando condicionales y entrada de datos.

Loops y arreglos

19

¿Qué son los arreglos?

20

¿Qué son los Loops?

21

Programando Loops

22

Loops , arreglos y arreglos bidimensionales

23

Dibujando el mapa de nuestro juego con arreglos

24

Manipulando mi jugador con inputs en arreglos unidimensionales

25

Arreglos bidimensionales

26

Reto: Moviendo a mi personaje en mi arreglo bidimensional

Lectura de Archivos

27

Creando y leyendo un archivo externo

28

Leyendo archivos externos

29

Reto: En el mapa, crear punto de inicio y salida del jugador

Programación Orientada a Objetos

30

¿Qué es POO?

31

Definiendo una clase y creando sus instancias

32

Encapsulación

33

Abstracción

34

Herencia

35

Propiedades de clase en herencia

36

Polimorfismo

Finalizando nuestro proyecto

37

Creación de personaje y archivo de encabezado

38

Moviendo mi personaje con entrada de datos

39

Mapa

40

Interacción entre el personaje y el mapa

41

Paredes

42

Optimizando trazado de mapa

43

Colisiones

44

Creando nuestra portada de juego

45

Tesoro y victoria

46

Conclusiones

47

Proyecto final

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Moviendo mi personaje con entrada de datos

38/47
Recursos

Vamos a crear un ciclo while que se ejecuta siempre que la variable isGameOver sea falsa; cuando sea verdadera significa que el jugador ha perdido el juego y debe volver a empezar.

Este ciclo llamará una y otra vez al método CallInput de nuestra clase Player para preguntarle al jugador hacia dónde quiere moverse:

// main.cpp
int main()
{
        bool isGameOver = false;
        Player Hero;

        while(isGameOver == false)
        {
                Hero.CallInput();
        }
}

Además, vamos a usar el condicional switch para cambiar la ubicación de nuestro jugador en las coordenadas X y Y con la información que nos llega desde la variable UserInput.

// Player.cpp
void Player::CallInput()
{
        char UserInput = ' ';
        cin << UserInput;

        switch(UserInput)
        {
        case 'w':
                y = y + 1;
                cout << ""El jugador se mueve arriba"" << endl;
                break;
        case 's':
                y = y - 1;
                cout << ""El jugador se mueve abajo"" << endl;
                break;
        case 'd':
                x = x + 1;
                cout << ""El jugador se mueve a la derecha"" << endl;
                break;
        case 'a':
                x = x - 1;
                cout << ""El jugador se mueve a la izquierda"" << endl;
                break;
        }
}

Aportes 14

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Aprender C++ te lleva a la luna y te ayuda a comprender de manera mas eficiente la lógica de programación,

Para aquellos que trabajen desde terminal en linux pueden compilar con g++ y ejecutar.
el primero para compilar los archivos fuente y la segunda linea para linkearlos.
g++ -c Player.cpp main.cpp
g++ -o main.exe Player.o main.o

finalmete el ejectubale
./main.exe

También se puede usar (y += 1) que equivale a (y = y + 1) y en resta (x -= 1) = (x = x + 1)

Excelente

Les comparto mi código hasta el momento:

#include <iostream>
#include "Player.h"
using namespace std;

Player::Player()
{
    x=1;
    y=1;
}
void Player::callInput()
{
    char userInput;
    cin>>userInput;
    switch(userInput)
    {
    case 'w':
        y+=1;
        cout<<"The player go up"<<endl;
        break;

    case 'a':
        x-=1;
        cout<<"The player go left"<<endl;
        break;

    case 's':
        y-=1;
        cout<<"The player go down"<<endl;
        break;

    case 'd':
        x+=1;
        cout<<"The player go right"<<endl;
        break;
    }
    cout<<"My player is in: "<<x<<","<<y<<endl;
}

Hecho!!!

// Main
using namespace std;

int main()
{
    bool isGameOver = false;
    Player Hero;
    cout<< "Inicia el juego"<< endl;

    while (isGameOver== false)
    {
        Hero.CallInput();
    }

}```


// Player.cpp
Player::Player()
{
    x=1;
    y=1;

}
void Player::CallInput()
{
    char UserInput = ' ';

    cin >> UserInput;

    switch (UserInput)
    {
    case 'w':
        y=y+1;
        cout << "El jugador se mueve arriba" << endl;
        break;

    case 's':
        y=y-1;
        cout << "El jugador se mueve abajo" << endl;
        break;

    case 'd':
        x=x+1;
        cout << "El jugador se mueve derecha" << endl;
        break;

    case 'a':
        x=x-1;
        cout << "El jugador se mueve izquierda" << endl;
        break;

    }
    cout << "La coordenada del jugador es: " << x << "," << y <<endl;

}

HECHO 😄

#include "player.h"
#include <iostream>

using namespace std;

player::player()
{
    x = 1;
    y = 1;

}

void player::entrada()
{
    char  usuariodeentrada =  ' ';
    cin >> usuariodeentrada;


    switch(usuariodeentrada)
    {
case 'w':
    y = y+1;
    cout << "el jugador se mueve arriba" <<endl;
    break;

case 's':
    y = y-1;
    cout << "el jugador se mueve abajo" <<endl;
    break;

case 'd':
    x=x+1;
    cout << "el jugador se mueve a la derecha" <<endl;
    break;

case 'a':
    x=x-1;
    cout << "el jugador se mueve a la izquierda" <<endl;
    break;

    }

    cout << " mi jugador esta hubicado en los puntos:" << x << "," << y <<endl;
}
#include "Player.h"
#include <iostream>

using namespace std;

Player::Player()
{
    x = 1;
    y = 1;
}

Player::~Player()
{
    //dtor
}

void Player::CallInput() {
    char userInput = ' ';

    cin >> userInput;

    switch(userInput) {
        case 'w':
            y--;
            cout << "El jugador se mueve arriba" << endl;
            break;
        case 's':
            y++;
            cout << "El jugador se mueve abajo" << endl;
            break;
        case 'a':
            x--;
            cout << "El jugador se mueve izq" << endl;
            break;
        case 'd':
            x++;
            cout << "El jugador se mueve derecha" << endl;
            break;

    }

    cout << "Mi jugador esta en las cordenadas " << x << ", " << y << endl;
}

se esta poniendo bueno

Esto se pone muy emocionante! es grato poder ver el inicio de un proyecto a base del conocimiento aprendido.

#include "Player.h"
#include <iostream>

using namespace std;


Player::Player()
{
    //ctor
    x=1;
    y=1;
}

void Player::CallInput()
{
    char UserInput = 'x';

    cin >> UserInput;

    switch(UserInput)
    {
    case 'w':
        y = y+1;
        cout << "El jugador se mueve arriba" << endl;
        break;
    case 's':
        y =  y-1;
        cout << "El jugador se mueve abajo" << endl;
        break;
    case 'd':
        x = x+1;
        cout << "El jugador se mueve derecha" << endl;
        break;
    case 'a':
        x = x-1;
        cout << "El jugador se mueve izquierda" << endl;
        break;
    }

    cout<<"MiJugador esta en las coordenadas X: "<<x<<", Y: "<<y<<endl;
}

Resumen:

<#include "Player.h"
#include <iostream>
using namespace std;
Player::Player()
{
    x = 1;
    y = 1;
}
void Player::callInput()
{
        char userInput = ' ';
        cin >> userInput;


        switch(userInput)
        {
        case 'w':
                y = y + 1;
                cout << "El jugador se mueve arriba" << endl;
                break;
        case 's':
                y = y - 1;
                cout << "El jugador se mueve abajo" << endl;
                break;
        case 'd':
                x = x + 1;
                cout << "El jugador se mueve a la derecha" << endl;
                break;
        case 'a':
                x = x - 1;
                cout << "El jugador se mueve a la izquierda" << endl;
                break;
        case 'p':
                cout << "fin del juego" << endl;
                break;
        }
        cout << "Mi jugador esta en las coordenadas: " << x << ", " << y << endl;
}
Player::~Player()
{
    //dtor
}>

Tengo un problema, mi main no lee los componentes que escribo en la fuente (.cpp) solo si los escribo en el encabezado (.h) los ejecuta. La conosla me arroja:

undefined reference to 'player::player()'
undefined reference to ‘player::talk()’

talk es una funcion que ejecuta un cout.

ayuda y gracias jaja

gracias!