PRAKTIKA logo 1-oji programavimo praktika

Atsiskaityti privalote iki paskutinės praktinės paskaitos.

Pasiruošimo žingsniai užduotims atlikti:

  • 1 žingsnis. Sukurti Github.com paskyrą: Create an account.
  • 2 žingsnis. Patvirtinti prieigą prie jūsų paskyros: Authorize Github.
  • 3 žingsnis. Iššokusiame lange paspauskite šį mygtuką: Accept this assigment, jums automatiškai bus sukurta repozitorja pvz:. toks URL adresas: (https://github.com/pratybos/pi17s-eif-courses), kurioje ir privalote patalpinti visas individualias praktines užduotis.
  • 4 žingsnis. Github aplinkoje sukurti README.MD dokumentą ir pateikti detalų aprašą, kurio pavyzdį rasite šiuo adresu: https://github.com/eif-courses/PI16-M.Gzegozevskis.

Jūsų įvertinimas priklausys nuo aktyvumo Github aplinkoje. Kiekvienos praktinės paskaitos pabaigoje privalote patalpinti pakeitimus (angl. commit) pagal suteiktą URL adresą 3 žingsnyje. Kaip tai atlikti plačiau rasite skyrelyje Programinė įranga > Papildoma programinė įranga (nuoroda čia).

Tikslas sukurti unikalų nuotykių žaidimą (konsolinį arba su grafinę sąsaja). Sugalvoti žaidimo pavadinimą ir tematiką su unikalia žaidimo istorija (angl. storyline).

  • Žadime turi būti skirtingų rolių herojai galintys tarpusavyje kovoti.
  • Sudaryti trofėjų lentelę (angl. loot table) su skirtingais šansais gauti specifinius daiktus iš nugalėto priešininko. Kaip turi atrodyti trofėjų lentelė pavyzdį rasite šiuo adresu: https://gamedevelopment.tutsplus.com/.
  • galimybė peržiūrėti savo trofėjus;
  • parduoti savo trofėjus ir už parduotus trofėjus gauti virtualios valiutos pvz: auksiniai, eurai, litai, doleriai, kristalai ar kt;
  • už virtualią valiutą įsigyti daiktų: Šalmas, Liemenė, Batai, Ginklas, Skydas ir pan;
  • užsidėti įsigytus daiktus;
  • peržiūrėti savo herojaus aprangą.
#include <iostream>
#include <cstring>


int sumOfN_Solution1(int n){
  int sumOfN = 0;  // 1 operation
  for(int i=1; i < n+1; i++){ // n operations
    sumOfN = sumOfN + i;
  }
  return sumOfN; // 1 operation
}



int foo_Solution2(int tom){
  int fred = 0;
  for(int bill=1; bill < tom + 1; bill++){
    int barney = bill;
    fred = fred + barney;
  }
  return fred;
}

int sumOfN_Solution3(int n){
  return n * (n+1) / 2; // O(1)
}
//


// n = 3 => 3 * (3+1)/2 = 6


 struct Herojus{
    char pavadinimas[50];
    int galia;
    int gyvybes;
    void print(){
      std::cout << "HELLO STRUCT";
    }
  };
class Hero{
  public:
    int PI=3;
  private:
    void print(){  std::cout <<"PRIVATUS";  }
    char pavadinimas[50];
    int galia;
    int gyvybes;
public:
  const char *getPavadinimas() const {
    return pavadinimas;
  }

  int getGalia() const {
    return galia;
  }

  void setGalia(int galia) {
    Hero::galia = galia;
  }

  int getGyvybes() const {
    return gyvybes;
  }

  void setGyvybes(int gyvybes) {
    Hero::gyvybes = gyvybes;
  }
  void pradeti_zaidima(Hero herojus){
    herojus.galia = 500 * 55;
  }


};

struct Pasiekimai{
  int lygis; // 0, 1, 2
  char pavadinimas[50];

  int * pasiekimu_lentele(){
    Pasiekimai pradinukas;
    strcpy(pradinukas.pavadinimas, "Pradinukas");
    pradinukas.lygis = 0;
  }

};
struct Daiktas{
  char pavadinimas[44];
  int zala;
};
struct Trofejus{
  char pavadinimas[44];
};
struct Parduotuve{
  Daiktas daiktai[20]={};

};
struct Veikejas{
  int hp;
  int patirtis;
  char vardas[50];
  int pinigai = 900;
  Daiktas daiktai[5];
  Trofejus trofejai[24];
  Pasiekimai pasiekimai [60];


  int daiktu_zala(){
    int zala=0;
    for (int i = 0; i < sizeof(daiktai)/ sizeof(daiktai[0]); i++) {
        zala+= daiktai[i].zala;
    }
    return zala;
  }

  void rodyti_trofejus(){
    for (int i = 0; i < sizeof(trofejai)/ sizeof(trofejai[0]); i++) {

    }
  }

  void kova(Veikejas player1, Veikejas player2){
    // Metama moneta
    // player2
    int moneta = 0;
    if(moneta ==0) {
      atakuoti(player1, player2);
    }else {
      atakuoti(player2, player1);
    }


  }

  void atakuoti(Veikejas player1, Veikejas player2){
    if(player1.hp <= 0){
      std::cout << "Laimejo " << player1.vardas;
      player1.patirtis += 100;
      if(player1.patirtis == 900){

      }
    }
    else if(player2.hp <= 0){
      std::cout << "Laimejo " << player2.vardas;
      player2.patirtis += 100;
    }

    player1.hp -= 5 * player2.daiktu_zala();

  }
  void begti(){}

  void menu(){}


};






int main() {

 Hero h;
 Hero betmanas;
 Hero zaidejai[20]={h, betmanas, betmanas, h};



 //pradinukas.pavadinimas = "";
 Pasiekimai pasiekimai[22]={};

 for(int i=0; i < 4; i++){
   zaidejai[i].setGalia(50);
   h.pradeti_zaidima(zaidejai[i]);
 }


 //robinhudas.print();

//   root->node(10);
//  root->right->node(50);
//  root->left->node(90);





  return 0;
}