Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

C++ Klasy


Adrjan

Rekomendowane odpowiedzi

Opublikowano

Zawartość main.cpp:

#include <iostream>
#include <fstream>
#include <windows.h>
#include <cstdlib>
#include "gang.h"
#include <time.h>

using namespace std;

int main()
{
    cout << "LSGW 0.5 BETA"<<endl;
    Sleep(4000);
    system( "cls" );
    Gangi z1;
    z1.spawn();
    z1.strzel();
    return 0;
}

Zawartość gang.h:

#include <iostream>
#include <fstream>
#include <windows.h>
#include <cstdlib>
#include <time.h>


using namespace std;

class Gangi
{
    public:
    string kolor;
    int color;
    string bron;
    int szybkosc;
    int hp;
    int amunicja;
    int strzal;

    void spawn();
    void strzel();
    void smierc();
};

Zawartość gang.cpp:

#include <iostream>
#include <fstream>
#include <windows.h>
#include <cstdlib>
#include "gang.h"
#include <time.h>

using namespace std;

void Gangi::spawn()
{
    srand(time(NULL));
    color = rand()%3+1;
    cout<<"W oddali widzisz przeciwnika!"<<endl;
    if (color==1) {kolor="Grove"; cout<<"Napastnik pochodzi z: "<<kolor<<endl;}
    else if (color==2) {kolor="Ballas"; cout<<"Napastnik pochodzi z: "<<kolor<<endl;}
    else if (color==3) {kolor="Yellow"; cout<<"Napastnik pochodzi z: "<<kolor<<endl;}
}

void Gangi::strzel()
{
    srand(time(NULL));
    strzal = rand()%100+1;
    Sleep(3000);
    hp = 100;
    amunicja = rand()%3+1;
    strzal = strzal*amunicja;
    hp-=strzal;
    if(amunicja==1)
    {
        cout<<"Przeciwnik oddal strzal i zabral Ci "<<strzal<<" HP"<<endl;
        cout<<"Twoje pozostale HP: "<<hp<<endl;
    }
    if(amunicja>1)
    {
        cout<<"Przeciwnik oddal kilka strzalow i zabral Ci "<<strzal<<" HP"<<endl;
        cout<<"Twoje pozostale HP: "<<hp<<endl;
    }
    if(hp<=0)
    {
        Gangi z1;
        z1.smierc();
    }
}

void Gangi::smierc()
        {
            cout<<"Zostales zabity, a gra sie zakonczyla. Dzieki za udzial"<<endl;
            Sleep(10000);
            system( "pause" );
        }

Wszystko ładnie działa i w tym jest problem - robię coś, czego nie rozumiem. Jak to wszystko działa? Może jakieś podpowiedzi? Skumałem to podświadomie, ale piszę i nie wiem co robie :D

 

Przydałaby się też podp. dot. "switch case"

3adb6317fc.png

 

Opublikowano

Raczej nie działa tak jak powinno

if(hp<=0)
{
Gangi z1;
z1.smierc();
}

Tworzysz nowy obiekt w metodzie(po co?) który w ogóle nie jest związany z tym stworzonym w main, możesz po prostu wywołać metodę smierc();, druga sprawa, że w ogóle nie używasz tych zmiennych stworzonych w pliku nagłówkowym, równie dobrze mógłbyś je zadeklarować w poszczególnych metodach, skoro każdej używasz tylko w maksymalnie jednej metodzie.

Inna sprawa, że możesz utworzyć kilka klas, np taką odpowiedzialną za jakieś pole bitwy, napastników i walkę(załóżmy do niej przesyłałbyś parametry i tam kalkulował wszystkie obrażenia).

Poczytaj coś o programowaniu obiektowym, raczej nikt tutaj nie wytłumacz ci tego lepiej niż tam.

Bot do gry NosTale:


[bOT] NosBota 1.3v

Opublikowano

Dzięki, wiem że nie wszystkie zmienne wykorzystałem, bo nie miałem na nie pomysłu.

3adb6317fc.png

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...