pratybos / First-programming-practice

Group: PI17E.
https://eif-courses.github.io/practice/
0 stars 0 forks source link

Create a unique adventure game with storyline (Console version) #3

Open eif-courses opened 6 years ago

eif-courses commented 6 years ago

Aim to create a unique adventure game (console version)

An example of how the game might look like, but to complete the task you need to expand it and add more functionality.

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>

struct Drakonas sukurti_drakona(int hp, int damage); // create dragon
struct Karzygys sukurti_karzygi(int hp, int damage, int eleksyro_kiekis); // create knight

struct Karzygys{
    int gyvybes_taskai;
    int zala;
    int eleksyras;
};
struct Drakonas{
    int gyvybes_taskai;
    int zala;

};

int main() {

    srand(time(0)); //required for "randomness"

    int zingsniu_skaicius = 0;
    int pasirinkimas;
    int karzygio_zala = rand() % 40 + 1; // knight damage
    int drakono_zala = rand() % 40 + 1; // dragon damage

    struct Drakonas drakonas = sukurti_drakona(150,drakono_zala); // Dragon struct 
    struct Karzygys karzygys = sukurti_karzygi(100, karzygio_zala, 1); // Knight struct

    printf("Karzygys susiruose i kelione. Ir isejo pesciomis.");
    while(zingsniu_skaicius < 5)
    {
        printf(">0 >0 >0");
        sleep(1);
        zingsniu_skaicius++;
    }
    printf("\nKarzygys priejo kryzkele!!!\n");
        sleep(2);
        printf( "1. Kovoti su drakonu.\n" );
        printf( "2. Kadangi jegos per silpnos keliauju namo.\n" );

        printf( "Pasirinkite kur toliau keliausite: " );
        scanf( "%d", &pasirinkimas );
        switch (pasirinkimas){
            case 1:
                while(drakonas.gyvybes_taskai > 0 && karzygys.gyvybes_taskai > 0){

                    printf("Drakono gyvybes taskai: %d( -%d karzygio zala )\n", drakonas.gyvybes_taskai, karzygio_zala);

                    printf("Karzygio gyvybes taskai: %d( -%d drakono zala)\n", karzygys.gyvybes_taskai, drakono_zala);
                    drakonas.gyvybes_taskai -= karzygys.zala;
                    sleep(3);
                    karzygys.gyvybes_taskai -= drakonas.zala;
                    printf("Drakono gyvybes taskai: %d( -%d karzygio zala)\n", drakonas.gyvybes_taskai, karzygio_zala);
                    printf("Karzygio gyvybes taskai: %d( -%d drakono zala)\n", karzygys.gyvybes_taskai, drakono_zala);
                    if(karzygys.gyvybes_taskai <= 0){
                        printf("Visgi drakonas buvo stipresnis. Pasiduodu!!!");
                    }
                    else if(drakonas.gyvybes_taskai < 0){
                        printf("Karzygys nugalejo drakona. Valio!!!");
                    }
                }
                break;
            case 2:
                exit(-1);
            default:
                printf("Nenumatyta baigtis arba pasirinkimas. Žaidimo pabaiga.");
                break;
        }

    return 0;
}
struct Karzygys sukurti_karzygi(int hp, int damage, int eleksyro_kiekis){
    struct Karzygys karzygys;
    karzygys.gyvybes_taskai = hp;
    karzygys.zala = damage;
    karzygys.eleksyras = eleksyro_kiekis;
    return karzygys;
}
struct Drakonas sukurti_drakona(int hp, int damage){
    struct Drakonas melynasis_drakonas;
    melynasis_drakonas.zala = damage;
    melynasis_drakonas.gyvybes_taskai = hp;
    return melynasis_drakonas;
}