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

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

41

08.10.2006, 09:34

ne du hast doch ned das koordinatensystem gepostet ;)

drakon

Supermoderator

  • »drakon« ist der Autor dieses Themas

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

42

08.10.2006, 14:57

Ja, klar geht das Array selber nicht in den Minusbereich, habe es mit dem Wert verwechselt. :oops:
Hier habe ich es noch nach meinen Vorstellungen umgeschriben:

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
#include <iostream> 

using namespace std; 

//Prototyp 

void Feld_füllen   ( int Höhe, int Breite, unsigned char Feld[11][11]); 
void Feld_zeichnen ( int Höhe, int Breite, unsigned char Feld[11][11]); 

void main (void) 
{    
    //Konstanten 

    int unsigned const Höhe   = 11; 
    int unsigned const Breite = 11;
    int x_Koordinate; //Hier können, dürfen und werden die Werte in den Minusbereich gehen. ;-)

    int y_Koordinate; //

    unsigned char Feld [Breite][Höhe];

    //Feld füllen aufrufen 

    Feld_füllen (Höhe, Breite,Feld ); 

    //X - Koordinate eingeben

    cout <<"X - Koordinate eingeben: ";
    cin >> x_Koordinate;

    //Y - Koordinate eingeben

    cout <<"Y - Koordinate eingeben: ";
    cin >> y_Koordinate;

    //Punkt im Koordinatensystem ändern

    Feld [x_Koordinate +4][11-y_Koordinate+5]= 'X'; // Hier müssen die Werte des Array für ein Koordinatensystem

                                                    // angepast werden.

    //Feld anzeigen aufrufen

    Feld_zeichnen(Höhe, Breite, Feld);
} 
//Feld füllen 

void Feld_füllen (int  Höhe, int  Breite, unsigned char Feld[11][11]) 
{ 
    for(int y = 0 ; y < Höhe  ; y++) 
    for(int x = 0 ; x < Breite; x++)
            Feld [x][y] = ' ';
} 

//Feld zeichnen 

void Feld_zeichnen (int Höhe, int Breite, unsigned char Feld[11][11]) 
{ 
    for(int y=0;y<Höhe;y++) 
    { 
        for (int x = 0;x < Breite; x++)
        {   
            if ( x == Breite / 2)   //X- Achse einzeichnen

                Feld [x][y] = '|';

            if ( y == Höhe / 2)     //Y- Achse einzeichnen

                Feld [x][y] = '-';

            cout << Feld [x][y]; 
        }
        cout << endl; 
    } 
}

43

08.10.2006, 15:33

Wofür sag ich denn überhaupt noch was? ist ja abartig -.-

C-/C++-Quelltext

1
2
3
4
5
6
void FillField(unsigned int nHight, unsigned int nWidth, BYTE byField[11][11]) // Umlaute gibt es immer noch net ... nutz am besten Englisch für die Variablenbenennung ...

{
    for (unsigned int y = 0; y < nHeight; ++y) // Wenn nHeight < 0 ist würde die Schleife 0x durchlaufen ... d.h. kann ruhig alles unsigned int sein ...

        for (unsigned int x = 0; x < nWidth; ++x) // Das selbe wie oben ...

            byField[x][y] = ' ';
} 
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

drakon

Supermoderator

  • »drakon« ist der Autor dieses Themas

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

44

08.10.2006, 17:45

So, habe es jetzt ganz auf Englisch gemacht, und OHNE Umlaute!
Bis auf die "Koordinaten", die habe ich auf deutsch gelassen, denn da war ich mir nicht sicher, wie ich die auf Englisch nennen sollte.

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
#include <iostream> 

using namespace std; 

//Prototyp 

void fill_Field   ( unsigned int nHeight, unsigned int nWidth, unsigned char aField[11][11]); 
void show_Field   ( unsigned int nHeight, unsigned int nWidth, unsigned char aField[11][11]); 

void main (void) 
{    
    //Konstanten 

    int unsigned const nHeight   = 11; 
    int unsigned const nWidth  = 11;
    int x_Koordinate; //Hier können und werden die Werte in den Minusbereich gehen. ;-)

    int y_Koordinate; //

    unsigned char aField [nWidth][nHeight];

    //fill_Field aufrufen 

    fill_Field (nHeight, nWidth,aField ); 

    //X - Koordinate eingeben

    cout <<"X - Koordinate eingeben: ";
    cin >> x_Koordinate;

    //Y - Koordinate eingeben

    cout <<"Y - Koordinate eingeben: ";
    cin >> y_Koordinate;

    //Punkt im Koordinatensystem ändern

    aField [x_Koordinate +4][11-y_Koordinate+5]= 'X'; // Hier müssen die Werte des Array für ein Koordinatensystem

                                                    // angepast werden.

    //show_Field aufrufen

    show_Field(nHeight, nWidth, aField);
} 
//Feld füllen 

void fill_Field (unsigned int  nHeight, unsigned int  nWidth, unsigned char aField[11][11]) 
{ 
    for(unsigned int y = 0 ; y < nHeight  ; y++) 
    for(unsigned int x = 0 ; x < nWidth; x++)
            aField [x][y] = ' ';
} 

//Feld zeichnen 

void show_Field (unsigned int nHeight,unsigned int nWidth, unsigned char aField[11][11]) 
{ 
    for(unsigned int y=0;y<nHeight;y++) 
    { 
        for (unsigned int x = 0;x < nWidth; x++)
        {   
            if ( x == nWidth / 2)   //X- Achse einzeichnen

                aField [x][y] = '|';

            if ( y == nHeight / 2)     //Y- Achse einzeichnen

                aField [x][y] = '-';

            cout << aField [x][y]; 
        }
        cout << endl; 
    } 
}



@Devil
Was bedeutet das "BYTE" in der Parameterliste??
Achja, wenn du schon so genau bist, dann solltest du auch auf deinen eigenen Code so genau schauen, der hat auch Fehler drinn.
Aber sonst Danke für deine Tipps!

45

08.10.2006, 18:08

Hmm falls du wirklich der Ansicht bist, das Höhe das selbe ist wie "high" zu sein ... von mir aus ;) http://dict.leo.org/ende?lp=ende&p=/gQPU.&search=height und http://www.google.de/search?hl=de&q=define%3A+high&btnG=Suche&meta= :D

und BYTE ist momentan das selbe wie unsigned char ... was du an der definition sehen kannst ... so siehst es aber rel. unübersichtlich aus, wenn du die 2. for-Schleife der fill_Field Funktion nicht einrückst ... so könnte man auf die Idee kommen, das du nur ein ; hinter der 1. for vergessen hast :D
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

drakon

Supermoderator

  • »drakon« ist der Autor dieses Themas

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

46

08.10.2006, 18:31

Ist ja fast das gleiche..;-)- Ne, sorry, Schreibfehler.

BYTE ist das gleiche, wie unsigned char?!?!?-Das muss ich glaub noch nicht verstehen.

Weiter oben wird mir vorgeschlagen, dass ich die for-Schlaufen so, wie sie jetzt sind schreibe und nicht die zweite eingezogen. (Ich persönlich hätte auch die eingezogene Version bevorzugt, aber wenn es besserer Stil ist nicht eingezogen, dann mache ich das auch so.)

Sheddex

unregistriert

47

08.10.2006, 20:19

Dadran gibt's nichts zu verstehen ;)

typedef BYTE unsigned char

ebenso

typedef DWORD unsigned long

Du musst nur mit der Maus drüberfahren, zumindest in IDEs von Microsoft, um zu erfahren das dehintersteckt.

Werbeanzeige