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;
}