Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

21

19.02.2009, 18:09

Zeig doch bitte mal ein wenig mehr Code, damit wir die Variablen in etwa abschätzen können woher die kommen usw.

Ansonsten reduzier deinen Code Schritt für Schritt um die Sachen, die keine Bedeutung haben bis der Fehler verschwindet, oder dein Code so klein ist, dass du ihn ganz hier rein posten kannst.

22

19.02.2009, 18:10

o0 bist du dir darüber im klaaren wie viel code in 7 Klassen + header ist, ich bin bei ca 3-4 tausen zeilen
genug Programmiert ist erst wen man nicht mehr weis wie man sich ohne Bildschirmausgabe artikuliert.

23

19.02.2009, 18:16

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
int save::add_hafling(int ort)
{
    for (unsigned int i=0;i<m_haflings.size();i++)
    {
        if (m_haflings[i]->get_live()==false)
        {
            std::cout<<"hieraber nicht nei";
            m_haflings[i]->set_live(true);
            add_hafling_in_ort(ort,i);
            m_hafling_jobs[i]=0;
            this->m_ptimer->insert_me(i,1);
            return i;
        }
    }
    std::cout << " hae1";
    hafling* neues = new hafling(this->m_ptimer,this->m_speicher,(m_haflings.size()));
    std::cout<<neues;
    m_haflings.push_back(neues);
    add_hafling_in_ort(ort, m_haflings.size());
    m_hafling_jobs.push_back(0);
    this->m_ptimer->insert_me(m_haflings.size()-1,1);
    return (m_haflings.size()-1);
}

//auser main noch die initialisation


timer* m_timer= new timer(quanten);
save* m_save= new save(m_timer);
save_file* m_save_file=new save_file(m_save,m_timer);
srand (time(NULL));
comander* m_comander= new comander(m_timer,m_save,1);
statistik* m_statistik= new statistik(m_save,m_save_file,m_timer);
m_save->set_statistik_pointer(m_statistik);
m_save->set_me_pointer(m_save);
ausgabe * m_ausgabe = new ausgabe(m_timer,m_save,quanten);


noch wah aus der header vom timer oder nen speziellen anderen Wunsch?
genug Programmiert ist erst wen man nicht mehr weis wie man sich ohne Bildschirmausgabe artikuliert.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

24

19.02.2009, 18:18

Das geschieht aber nicht global, oder?

25

19.02.2009, 18:18

nichts ist global in meinen programmen auf was auch immer deine Frage gezielt hat.
genug Programmiert ist erst wen man nicht mehr weis wie man sich ohne Bildschirmausgabe artikuliert.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

26

19.02.2009, 18:22

ich glaub am einfachsten wärs wenn ich das projekt selber mal debuggen könnt, so kann man da eher schwer was sagen.
wenns möglich is lad den code mal wo hoch dann können wir uns das anschaun, oder schicks mir per mail an dot@aon.at...

27

19.02.2009, 18:23

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
class hafling
{
    private:
            //variabel

            bool m_lebt;

            //Bedürfnisse

            int m_hitpoints;
            int m_hunger;
            int m_durst;
            int m_freude;
            int m_energie;
            int m_alter;
            unsigned int m_geburtstag;
            bool m_flucht;
            //Beziehungen

            save * m_speicher;
            timer * m_uhr;

            //arbeit

            int m_aufenthaltsort;
            int m_zielort;
            int m_zielortkurz;

            int m_eigenhaus;

            //Skills

            int m_skill[3][10];
            int m_tagesauftrag;
            int m_auftrag;
            int m_Ziel;
            int m_traegtobjekt;
            int m_traegtmenge;   

            //konstant

            int m_id;

            //Funktionen

            void aktivitaet(int art);

            void finish_auftrag();
            void tun();
            void checkdirektarbeiten();
            bool kann_direktarbeiten();
            int berechne_arbeitszeit();
            int wasdingammeisten(int ort);
            void objektfallenlassen();
            void objekteaufnehmen();

            std::vector<int> find_orte(int ort, int haustyp);
            int wo_arbeiten();
            void findundgehzuort();
            void zielortgenauer();

            void sterben();

    public:
            //de-kon-struktor

            hafling(timer * in_uhr,save * speicher, int in_id);
            ~hafling();

            void ueberschreib(int mutter, int vater);

            //Befehle

            bool krieg_alarm(int Ort);
            void alarm();
            void entwarnung();
            void set_sollarbeit(int arbeit, int stark);
            //altern, überleben etc

            bool gesundheitscheck();

            //getter


            std::vector<int> saveit();
            void loadit(std::vector<int> load);

            //intelligenz

            void auftragsetzen();

            bool set_live(bool lebt);
            bool get_live();
            int get_aufenthaltsort();
            int get_tagesauftrag();
            int get_beschaeftigung();

            int get_skill_lvl(int skill);
            int get_fight_will();
            int get_hp();
            void set_hp(int hp);

};


der Code ist von einem der mit mir in der Gruppeist, die Hafling Klasse schreib ich nciht, also an Grafischen Makeln, bitte nicht an mich richten ^^aber hier mal noch die Klasse fals die was bringt.
genug Programmiert ist erst wen man nicht mehr weis wie man sich ohne Bildschirmausgabe artikuliert.

28

19.02.2009, 18:28

//links gelöscht

hier hab ichs mal als zip hochgeladen ist halt codeblocks projekt, aber einfach cpp dateien und headerdateien packen und naja ihr wiss sicher wie das geht :D

ach ja und da es noch eine unfertige verison ist, werden einige fehler wegen non-void-funktionen kommen die einfah so beendet wurden, etc. sonst dürfte eigentlich nichts kommen.
genug Programmiert ist erst wen man nicht mehr weis wie man sich ohne Bildschirmausgabe artikuliert.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

29

19.02.2009, 18:45

also nachdem ichs zum kompillieren gebracht hab sürzts bei mir ab, und zwar in zeile 96 in der datei timer.cpp, weil HaflingNR zu groß ist, also der index aus dem array läuft...

C-/C++-Quelltext

1
        tabelle[HaflingNR] = (this->secs_since_beginning+sekunden);  // kabumm



es is übrigens ziemlich gefährlich einfach mal so in ner funktion nix zurückzugeben obwohl sie eigentlich sollte. der gcc kompilliert das dann nämlich (außer man verbietet es ihm explizit), aber du hast keine ahnung was da für code rauskommt:

C-/C++-Quelltext

1
2
3
4
std::vector<int> statistik::load_stats(int spiel_sec)
{
    this->m_save_file->statistik_load(spiel_sec);
}


fix das mal, sowas is einfach falsch.

30

19.02.2009, 21:24

du hast natürlich recht so ne funktion is nciht in ordnung, hab ich bisher noch nicht entdeckt, hab ich ausgebessert, auserdem hab ich das problem im timer auch noch gelöst hier ist neue datei

//nicht mehr aktuell

hoffe es ist nciht noch mehr so zeug da, aber der fehler um den es hier geht, ist eh ncoh deutlich vor diesem timer problem, gewesen, wie gesagt normal compilieren und ohne debugger laufen lassen, also exe starten, dann trit das problem auf, sonst NICHT ich mein, ich bin kein oberpro aber kein absoluter noob, also glaubt mir doch entlich mal, Databyte hat das programm von mir auch schon, und den fehler bestätigt, vllt glaubt ihr ihm ja mehr ...

wenn das problem erstmal weg ist, kann ich die ganzen anderen kleinigkeiten die sonst noch falsch sind im programm, in windeseile auslöschen, alsso BITTE bleibt beim thema, welches ein seltsamer absturtz ist, der NICHT vom Debugger angezeigt wird. danke
genug Programmiert ist erst wen man nicht mehr weis wie man sich ohne Bildschirmausgabe artikuliert.

Werbeanzeige