Der Anfänger Thread



  • Du meinst "noch" und nicht "nich"?



  • hallo,
    ich habe auch eine frage.
    ich habe das buch Spieleprogrammieren mit C++ und Genesis3d für kids
    jetzt frage ich ob mir jemand den gesammten quelltext für ein leeres "windowsfenster" gibt?
    wäre nett
    euer neuling



  • C++ kennt keine "windowsfenster". Da musst du schon im entsprechenden Forum für dein System bzw. deinem verwendeten Framework nachschauen.



  • jetzt frage ich ob mir jemand den gesammten quelltext für ein leeres "windowsfenster" gibt?

    http://www.henkessoft.de/C++/WinAPI/WinAPI Kapitel 1 bis 6/api2.htm
    Hierzu musst Du nur Zugriff auf "windows.h" haben.



  • Also im buch ist folgendes:

    //-----------------------------------------------------------------------------
    //Header mit Klassendeklaration von G3DGame
    //-----------------------------------------------------------------------------
    #include <windows.h>
    #include "include\genesis.h"

    class TGame
    {
    public:
    //Eigenschaften
    geEngine *Engine;
    geWorld *World;
    geCamera *Camera;
    geDriver *Driver;
    geDriver_Mode *DMode;
    geXForm3d XForm;
    bool isRunning;
    //Methoden
    void CreateGame (void);
    void RunGame (void);
    void FreeGame (void);
    void SetDriver (void);
    void ExitError (char *Txt);
    };

    //Pfad- und Dateinamen
    const char *Pfad = ".\\levels\";
    const char *BSP_Datei = "World0.bsp";
    const char *GVersion = "GPlay1";
    const int MaxWidth = 640;
    const int MaxHeight = 480;

    HWND GHandle; //Handle des "Spielfensters"

    #include "Skelett.h"
    LRESULT CALLBACK WndProc (HWND hWnd,
    UNIT iMessage, WPARAM wParam, LPARAM lParam);
    int WINAPI WinMain
    (HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
    {
    WNDCLASS Win;
    MSG msg;
    Win.cbClsExtra = 0;
    Win.cbWndExtra = 0;
    Win.hInstance = hInstance;
    Win.hIcon = LoadIcon(hInstance, IDI_APPLICATION);
    Win.hCursor = LoadCursor(NULL, IDC_ARROW);
    Win.hbrBackground =
    (HBRUSH)GetStockObject (BLACK_BRUSH);
    Win.style = CS_HREDRAW | CS_VREDRAW;
    Win.lpfnWndProc = WndProc;
    LRESULT CALLBACK WndProc (HWND hWnd,
    UINT iMessage, WPARAM wParam, LPARAM lParam)
    {
    switch (iMessage)
    {
    case WM_KEYDOWN;
    {
    switch (wParam)
    {
    case VK_ESCAPE:
    {
    PostMessage(hWnd, WM_QUIT, 0, 0);
    }
    }
    }
    default:
    return DefWindowProc
    (hWnd, iMessage, wParam, lParam);
    }
    return 0;
    }
    Win.lpszClassName = "???";
    Win.lpszMenuName = NULL;
    RegisterClass (&Win);
    GHandle = CreateWindow (Win.lpszClassName,
    "Windows Minimum - [Esc]=Ende", WS_TILED,
    CW_USEDEFAULT, CW_USEDEFAULT, MaxWidth,
    MaxHeight, NULL, NULL, hInstance, NULL);
    if (!GHandle)
    {
    return 0;
    }
    ShowWindow (GHandle, nCmdShow);
    UpdateWindow (GHandle);
    isRunning = true;
    while (isRunning)
    {
    while
    (PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE))
    {
    if (!GetMessage(&msg, NULL, 0, 0))
    {
    isRunning = false;
    break;
    }
    TranslateMessage (&msg);
    DispatchMessage (&msg);
    }
    }
    return 1;
    }

    aber bei mir geht das einfach nicht 😞



  • "Geht nicht" ist keine Fehlerbeschreibung. Was erscheint denn im Protokollfenster, wenn du das Projekt baust? (Fehlermeldungen?)



  • [C++ Fehler] Fenster.cpp(5): E2209 include-Datei 'include\genesis.h' kann nicht geöffnet werden
    [C++ Fehler] Fenster.cpp(11): E2303 Typname erwartet
    [C++ Fehler] Fenster.cpp(11): E2139 In Deklaration fehlt ;
    [C++ Fehler] Fenster.cpp(12): E2303 Typname erwartet
    [C++ Fehler] Fenster.cpp(12): E2139 In Deklaration fehlt ;
    [C++ Fehler] Fenster.cpp(13): E2303 Typname erwartet
    [C++ Fehler] Fenster.cpp(13): E2139 In Deklaration fehlt ;
    [C++ Fehler] Fenster.cpp(14): E2303 Typname erwartet
    [C++ Fehler] Fenster.cpp(14): E2139 In Deklaration fehlt ;
    [C++ Fehler] Fenster.cpp(15): E2303 Typname erwartet
    [C++ Fehler] Fenster.cpp(15): E2139 In Deklaration fehlt ;
    [C++ Fehler] Fenster.cpp(16): E2303 Typname erwartet
    [C++ Fehler] Fenster.cpp(16): E2139 In Deklaration fehlt ;
    [C++ Fehler] Fenster.cpp(35): E2209 include-Datei 'Skelett.h' kann nicht geöffnet werden
    [C++ Fehler] Fenster.cpp(37): E2303 Typname erwartet
    [C++ Fehler] Fenster.cpp(52): E2451 Undefiniertes Symbol 'WndProc'
    [C++ Fehler] Fenster.cpp(53): E2108 Ungültige Verwendung von typedef 'LRESULT'
    [C++ Fehler] Fenster.cpp(53): E2379 In Anweisung fehlt ;
    [C++ Fehler] Fenster.cpp(87): E2451 Undefiniertes Symbol 'isRunning'



  • Deine Nachrichtenfunktion für das Hauptfenster steht ja mitten in WinMain. So geht das natürlich nicht. Setze diesen Teil

    LRESULT CALLBACK WndProc (HWND hWnd,
    UINT iMessage, WPARAM wParam, LPARAM lParam)
    {
    switch (iMessage)
    {
    case WM_KEYDOWN;
    {
    switch (wParam)
    {
    case VK_ESCAPE:
    {
    PostMessage(hWnd, WM_QUIT, 0, 0);
    }
    }
    }
    default:
    return DefWindowProc
    (hWnd, iMessage, wParam, lParam);
    }
    return 0;
    }
    

    einfach mal vor WinMain. Und benutze das nächste mal bitte Code Tags. Ansonsten ist der Code einfach unleserlich, und keiner hat Lust, sich den anzuschauen.



  • [C++ Fehler] Fenster.cpp(5): E2209 include-Datei 'include\genesis.h' kann nicht geöffnet werden
    [C++ Fehler] Fenster.cpp(11): E2303 Typname erwartet
    [C++ Fehler] Fenster.cpp(11): E2139 In Deklaration fehlt ;
    [C++ Fehler] Fenster.cpp(12): E2303 Typname erwartet
    [C++ Fehler] Fenster.cpp(12): E2139 In Deklaration fehlt ;
    [C++ Fehler] Fenster.cpp(13): E2303 Typname erwartet
    [C++ Fehler] Fenster.cpp(13): E2139 In Deklaration fehlt ;
    [C++ Fehler] Fenster.cpp(14): E2303 Typname erwartet
    [C++ Fehler] Fenster.cpp(14): E2139 In Deklaration fehlt ;
    [C++ Fehler] Fenster.cpp(15): E2303 Typname erwartet
    [C++ Fehler] Fenster.cpp(15): E2139 In Deklaration fehlt ;
    [C++ Fehler] Fenster.cpp(16): E2303 Typname erwartet
    [C++ Fehler] Fenster.cpp(16): E2139 In Deklaration fehlt ;
    [C++ Fehler] Fenster.cpp(35): E2209 include-Datei 'Skelett.h' kann nicht geöffnet werden
    [C++ Fehler] Fenster.cpp(37): E2303 Typname erwartet
    [C++ Fehler] Fenster.cpp(38): E2040 Deklaration nicht ordnungsgemäß abgeschlossen
    

    so schon wieder ne schwette voller fehler.. 😞



  • 'include\genesis.h' kann nicht geöffnet werden
    'Skelett.h' kann nicht geöffnet werden

    Das musst Du offenbar richtig einbinden. Schau erst mal bei Optionen oder Einstellungen oder Verzeichnissen, ob dort alles richtig eingestellt ist.



  • Entschuldigung, ich bin ein BlutigerAnfänger!
    wie kann ich den dort das verzeichniss angeben?



  • Welcher Compiler bzw. welche IDE benutzt du?

    In VC++ 2003 mußt du das Genesis-Include-Verzeichnis hier eintragen:
    Extras->Optionen->Projects->C++ Verzeichnisse
    Und dort in der Combobox Includeverzeichnisse.

    Genesis hat sicherlich auch Library-Dateien (*.lib), das Verzeichnis auch dort unter Bibliotheksdateien hinzufügen.

    Aber sowas steht eigentlich meistens in den Readme's oder Dokumentation der Bibliotheken (in deineem Fall Genesis3D)... meistens jedenfalls.



  • Schau Dich bei Deinem "Werkzeug" genau im Menü um, sonst wirst Du ständig solche Pannen erleben.



  • ich benütze Borland C++Builder.

    die cd de beim Buch dabei war...



  • Mit welchen dateien müsste ich den die windows.h, include\genesis.h und Skelett.h verknüpfen?

    ed



  • Hallo

    Das sollte doch alles in deinem Buch stehen.

    chrische



  • Hallo,
    Nö im Buch steht nichts über das verknüpfen.



  • so ich habs jetzt weiter gemacht aber kann mir jemand verraten warum das Programm manchmal geht manchmal nicht???

    bin total ratlos.

    //HEADER---------------------------------------------------------------------
    #include <iostream.h>
    #include <iomanip.h>
    #include <conio.h>
    #include <math.h>
    //VOID-Deklaration-----------------------------------------------------------
    void feld (void);
    //MAIN-----------------------------------------------------------------------
    
    int main()
    {
    
     feld();
    
    }
    //Spielfeld------------------------------------------------------------------
    void feld (void)
    {
    char w=205,s=186,k=206,elo=201,elu=200,ero=187,eru=188,sou=203,soo=202,sol=185,sor=204,l=255;
    char eingabe=0;
    int groesse=0,richtungseingabe=0,zeile=10,spalte=2,zeilenbegrenzunglinks=0;
    int zeilenbegrenzungrechts=0,spaltenbegrenzungunten=0,spaltenbegrenzungoben=0;
    int schiffanzahleinser=0,schiffanzahlzweier=0;
    int schiffanzahldreier=0,schiffanzahlvierer=0,schiffanzahlfuenfer=0,feldgroesse=0;
    int feld[12][12]={NULL};
    
     //Ascii- Tabelle
     /*char linie=0;
     for(int i=0;i<265;i++)
       {
        linie=i;
        cout<<i<<" = "<<linie<<endl<<endl;
       }
     getchar();*/
    
     /*Werte der ASCII Zeichen des Spielfeldes
       Ergebnis
       leer=255                                     l
       doppellinie waagrecht=205                    w
       doppellinie senkrecht=186                    s
       doppellinie kreuz=206                        k
       doppellinie ecke links oben=201              elo
       doppellinie ecke links unten=200             elu
       doppellinie ecke rechts oben=187             ero
       doppellinie ecke rechts unten=188            eru
       doppellinie seitenteil Oeffnung unten=203    sou
       doppellinie seitenteil Oeffnung oben=202     soo
       doppellinie seitenteil Oeffnung links=185    sol
       doppellinie seitenteil Oeffnung rechts=204   sor
     */
    
     do
       {
        clrscr();
        cout<<"\n\tWaehlen Sie Ihren gewuenschten Schwierigkeitsgrad aus:"
            <<"\n\n\n\n\tFuer leicht (Feld:  8x 8) druecken Sie die Taste\t[l] bzw. [L]"
            <<"\n\tFuer mittel (Feld: 10x10) druecken Sie die Taste\t[m] bzw. [M]"
            <<"\n\tFuer schwer (Feld: 12x12) druecken Sie die Taste\t[s] bzw. [S]"
            <<"\n\n\tFuer die Hilfe druecken Sie die Taste\t\t\t[h] bzw. [H]";
        gotoxy(64,2);
        eingabe=getch();
    
        switch(eingabe)   //Auswahl des Schwierigkeitsgrades
           {
            case'l':
            case'L':   zeilenbegrenzunglinks=10;     //Begrenzung des Spielfeldes
                       zeilenbegrenzungrechts=29;
                       spaltenbegrenzungunten=15;
                       spaltenbegrenzungoben=2;
    
                       schiffanzahleinser=0;
                       schiffanzahlzweier=2;
                       schiffanzahldreier=2;
                       schiffanzahlvierer=1;
                       schiffanzahlfuenfer=0;
                       feldgroesse=5;
                       groesse=8;                    //Breite und Hoehe des Spielfeldes
                       break;
    
            case'm':
            case'M':   zeilenbegrenzunglinks=10;     //Begrenzung des Spielfeldes
                       zeilenbegrenzungrechts=36;
                       spaltenbegrenzungunten=19;
                       spaltenbegrenzungoben=2;
    
                       schiffanzahleinser=2;
                       schiffanzahlzweier=2;
                       schiffanzahldreier=2;
                       schiffanzahlvierer=1;
                       schiffanzahlfuenfer=0;
                       feldgroesse=7;
                       groesse=10;                   //Breite und Hoehe des Spielfeldes
                       break;
    
            case's':
            case'S':   zeilenbegrenzunglinks=10;     //Begrenzung des Spielfeldes
                       zeilenbegrenzungrechts=41;
                       spaltenbegrenzungunten=23;
                       spaltenbegrenzungoben=2;
    
                       schiffanzahleinser=4;
                       schiffanzahlzweier=3;
                       schiffanzahldreier=2;
                       schiffanzahlvierer=1;
                       schiffanzahlfuenfer=1;
                       feldgroesse=9;
                       groesse=12;                   //Breite und Hoehe des Spielfeldes
                       break;
    
            case'h':
            case'H':
                       clrscr();
                       cout<<"\n\tHilfe";
                       getchar();
                       eingabe='a';                  //Schleife kann nicht beendet werden (variable 'eingabe' ist nicht 'l', 'L', 'm', 'M', 's', 'S', 'h' oder 'H' sondern 'a')
                       break;
    
           }
        }while(eingabe!='l' && eingabe!='L' && eingabe!='m' && eingabe!='M' && eingabe!='s' && eingabe!='S' && eingabe!='h' && eingabe!='H');
    
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    randomize();
    
    if(schiffanzahleinser!=0)
     {
     for(int zahl=0;zahl<schiffanzahleinser;zahl++)
        {
         int w=random(feldgroesse), s=random(feldgroesse); //Prueft ob platz schon belegt ist
    
             if(feld[w][s]==0)
               {
                int richtungswahl=random(2);
                if(richtungswahl==0)           //schiff in die waagerechte
                  {
                   feld[w][s]=1;
                  }
    
                if(richtungswahl==1)           //schiff in die senkrechte
                  {
                   feld[w][s]=1;
                  }
               }
    
             else
               {
                zahl--;
               }
    
        }
     }
    
    if(schiffanzahlzweier!=0)
     {
     for(int zahl=0;zahl<schiffanzahlzweier;zahl++)
        {
         int w=random(feldgroesse), s=random(feldgroesse);
    
             if(feld[w][s]==0&&feld[w+1][s]==0&&feld[w-1][s]==0&&feld[w][s+1]==0&&feld[w][s-1]==0) //Prueft ob platz schon belegt ist
               {
                int richtungswahl=random(2);
                if(richtungswahl==0)           //schiff in die waagerechte
                  {
                   feld[w][s]=1;
                   feld[w+1][s]=1;
                  }
    
                if(richtungswahl==1)           //schiff in die senkrechte
                  {
                   feld[w][s]=1;
                   feld[w][s+1]=1;
                  }
               }
    
             else
               {
                zahl--;
               }
    
        }
     }
    
    if(schiffanzahldreier!=0)
     {
     for(int zahl=0;zahl<schiffanzahldreier;zahl++)
        {
         int w=random(feldgroesse), s=random(feldgroesse);
    
             if(feld[w][s]==0&&feld[w+1][s]==0&&feld[w+2][s]==0&&feld[w-1][s]==0&&feld[w-2][s]==0&&feld[w][s+1]==0&&feld[w][s+2]==0&&feld[w][s-1]==0&&feld[w][s-2]==0) //Prueft ob platz schon belegt ist
               {
                int richtungswahl=random(2);
                if(richtungswahl==0)           //schiff in die waagerechte
                  {
                   feld[w][s]=1;
                   feld[w+1][s]=1;
                   feld[w+2][s]=1;
                  }
    
                if(richtungswahl==1)           //schiff in die senkrechte
                  {
                   feld[w][s]=1;
                   feld[w][s+1]=1;
                   feld[w][s+2]=1;
                  }
               }
    
             else
               {
                zahl--;
               }
    
        }
     }
    
    if(schiffanzahlvierer!=0)
     {
     for(int zahl=0;zahl<schiffanzahlvierer;zahl++)
        {
         int w=random(feldgroesse), s=random(feldgroesse);
    
             if(feld[w][s]==0&&feld[w+1][s]==0&&feld[w+2][s]==0&&feld[w+3][s]==0&&feld[w-1][s]==0&&feld[w-2][s]==0&&feld[w-3][s]==0&&feld[w][s+1]==0&&feld[w][s+2]==0&&feld[w][s+3]==0&&feld[w][s-1]==0&&feld[w][s-2]==0&&feld[w][s-3]==0) //Prueft ob platz schon belegt ist
               {
                int richtungswahl=random(2);
                if(richtungswahl==0)           //schiff in die waagerechte
                  {
                   feld[w][s]=1;
                   feld[w+1][s]=1;
                   feld[w+2][s]=1;
                   feld[w+3][s]=1;
                  }
    
                if(richtungswahl==1)           //schiff in die senkrechte
                  {
                   feld[w][s]=1;
                   feld[w][s+1]=1;
                   feld[w][s+2]=1;
                   feld[w][s+3]=1;
                  }
               }
    
             else
               {
                zahl--;
               }
    
        }
     }
    
    if(schiffanzahlfuenfer!=0)
     {
     for(int zahl=0;zahl<schiffanzahlfuenfer;zahl++)
        {
         int w=random(feldgroesse), s=random(feldgroesse);
    
             if(feld[w][s]==0&&feld[w+1][s]==0&&feld[w+2][s]==0&&feld[w+3][s]==0&&feld[w+4][s]==0&&feld[w-1][s]==0&&feld[w-2][s]==0&&feld[w-3][s]==0&&feld[w-4][s]==0&&feld[w][s+1]==0&&feld[w][s+2]==0&&feld[w][s+3]==0&&feld[w][s+4]==0&&feld[w][s-1]==0&&feld[w][s-2]==0&&feld[w][s-3]==0&&feld[w][s-4]==0) //Prueft ob platz schon belegt ist
               {
                int richtungswahl=random(2);
                if(richtungswahl==0)           //schiff in die waagerechte
                  {
                   feld[w][s]=1;
                   feld[w+1][s]=1;
                   feld[w+2][s]=1;
                   feld[w+3][s]=1;
                   feld[w+4][s]=1;
                  }
    
                if(richtungswahl==1)           //schiff in die senkrechte
                  {
                   feld[w][s]=1;
                   feld[w][s+1]=1;
                   feld[w][s+2]=1;
                   feld[w][s+3]=1;
                   feld[w][s+4]=1;
                  }
               }
    
             else
               {
                zahl--;
               }
    
        }
     }
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    
     clrscr();
     //kopfzeile des Spielfeldes
     cout<<"\t"<<elo;
     for (int a=0;a<groesse-1;a++)
         {
          cout<<w<<w<<sou;
    
         }
     cout<<w<<w<<ero<<endl;
     //innere flaeche des Spielfeldes
     for(int zeile=0;zeile<groesse-1;zeile++)
        {
         cout<<"\t"<<s;
         for(int spalte=0;spalte<groesse;spalte++)
            {
             cout<<l<<l<<s;
            }
         cout<<endl<<"\t"<<sor;
    
         for(int spalte2=0;spalte2<groesse-1;spalte2++)
            {
             cout<<w<<w<<k;
            }
         cout<<w<<w<<sol<<endl;
    
        }
     //fusszeile des Spielfeldes
     cout<<"\t"<<s;
         for(int spalte=0;spalte<groesse;spalte++)
            {
             cout<<l<<l<<s;
            }
    
     cout<<endl<<"\t"<<elu;
     for(int b=0;b<groesse-1;b++)
        {
         cout<<w<<w<<soo;
        }
     cout<<w<<w<<eru;
    
     gotoxy(zeile,spalte);      //geht ins erste Kaestchen des Spielfeldes (Wertzuweisung oben)
    
     int zaehlerzeile=0,zaehlerspalte=0;
     do
       {
        gotoxy(60,2);
        cout<<"Koordinate";
        gotoxy(60,5);
        cout<<"Spalte:"<<setw(3)<<zaehlerspalte+1;
        gotoxy(60,6);
        cout<<"Zeile:"<<setw(4)<<zaehlerzeile+1;
    
        gotoxy(zeile,spalte);
    
        int richtung=getch();
    
        if(richtung==77)        //schritt nach rechts
          {
           if(zeile<zeilenbegrenzungrechts)
             {
              zeile=zeile+3;
              zaehlerspalte++;  //setzt aktuelle Possition im Array
             }
          }
        else if(richtung==75)   //schritt nach links
          {
           if(zeile>zeilenbegrenzunglinks)
             {
              zeile=zeile-3;
              zaehlerspalte--;  //setzt aktuelle Possition im Array
             }
          }
        else if(richtung==80)   //schritt nach unten
          {
           if(spalte<spaltenbegrenzungunten)
             {
              spalte=spalte+2;
              zaehlerzeile++;   //setzt aktuelle Possition im Array
             }
          }
        else if(richtung==72)   //schritt nach oben
          {
           if(spalte>spaltenbegrenzungoben)
             {
              spalte=spalte-2;
              zaehlerzeile--;   //setzt aktuelle Possition im Array
             }
          }
    
        if(richtung==13)
          {
           if(feld[zaehlerspalte][zaehlerzeile]==1)
             {
              cout<<"X";
             }
    
           else if(feld[zaehlerspalte][zaehlerzeile]==0)
             {
              cout<<'~';
             }
          }
    
       }while(richtungseingabe!=120 && richtungseingabe!=88); //das druecken der Taste X beendet die richtungsauswahl
    }
    //---------------------------------------------------------------------------
    


  • Ich denke, hier wird sich niemand einen 400-Zeilen-Quelltext ansehen, nur um herauszufinden, wo etwas "manchmal nicht geht" - da solltest du dir schon etwas mehr Mühe damit geben, das Problem einzugrenzen.



  • dann sagt mir wenigstens warum das net funktioniert ...
    ab und zu gehts mal und dann auch NUR Mittel oder Schwer

    //---------------------------------------------------------------------------
    
    #include <iostream.h>
    #include <conio.h>
    
    //---------------------------------------------------------------------------
    
    int main()
    {
     int feld[12][12]={NULL};
     char eingabe=0;
     int schiffanzahleinser=0,schiffanzahlzweier=0;
     int schiffanzahldreier=0,schiffanzahlvierer=0,schiffanzahlfuenfer=0,feldgroesse=0;
    
     cout<<"leicht\t= l\nmittel\t= m\nschwer\t= s\n\n";
    
     eingabe=getch();
    
     switch(eingabe)
       {
        case 'l':
    
                    schiffanzahlzweier=2;
                    schiffanzahldreier=2;
                    schiffanzahlvierer=1;
                    feldgroesse=5;
                    break;
    
        case 'm':
    
                    schiffanzahleinser=2;
                    schiffanzahlzweier=2;
                    schiffanzahldreier=2;
                    schiffanzahlvierer=1;
                    feldgroesse=7;
                    break;
    
        case 's':
    
                    schiffanzahleinser=4;
                    schiffanzahlzweier=3;
                    schiffanzahldreier=2;
                    schiffanzahlvierer=1;
                    schiffanzahlfuenfer=1;
                    feldgroesse=9;
                    break;
    
       }
    
     randomize();
    
     for(int zahl=0;zahl<schiffanzahleinser;zahl++)
        {
         int w=random(feldgroesse), s=random(feldgroesse);
    
             if(feld[w][s]==0)
               {
                int richtungswahl=random(2);
                if(richtungswahl==0)           //schiff in die waagerechte
                  {
                   feld[w][s]=1;
                  }
    
                if(richtungswahl==1)           //schiff in die senkrechte
                  {
                   feld[w][s]=1;
                  }
               }
    
             else
               {
                zahl--;
               }
    
        }
    
     for(int zahl=0;zahl<schiffanzahlzweier;zahl++)
        {
         int w=random(feldgroesse), s=random(feldgroesse);
    
             if(feld[w][s]==0&&feld[w+1][s]==0&&feld[w-1][s]==0&&feld[w][s+1]==0&&feld[w][s-1]==0)
               {
                int richtungswahl=random(2);
                if(richtungswahl==0)           //schiff in die waagerechte
                  {
                   feld[w][s]=1;
                   feld[w+1][s]=1;
                  }
    
                if(richtungswahl==1)           //schiff in die senkrechte
                  {
                   feld[w][s]=1;
                   feld[w][s+1]=1;
                  }
               }
    
             else
               {
                zahl--;
               }
    
        }
    
     for(int zahl=0;zahl<schiffanzahldreier;zahl++)
        {
         int w=random(feldgroesse), s=random(feldgroesse);
    
             if(feld[w][s]==0&&feld[w+1][s]==0&&feld[w+2][s]==0&&feld[w-1][s]==0&&feld[w-2][s]==0&&feld[w][s+1]==0&&feld[w][s+2]==0&&feld[w][s-1]==0&&feld[w][s-2]==0)
               {
                int richtungswahl=random(2);
                if(richtungswahl==0)           //schiff in die waagerechte
                  {
                   feld[w][s]=1;
                   feld[w+1][s]=1;
                   feld[w+2][s]=1;
                  }
    
                if(richtungswahl==1)           //schiff in die senkrechte
                  {
                   feld[w][s]=1;
                   feld[w][s+1]=1;
                   feld[w][s+2]=1;
                  }
               }
    
             else
               {
                zahl--;
               }
    
        }
    
     for(int zahl=0;zahl<schiffanzahlvierer;zahl++)
        {
         int w=random(feldgroesse), s=random(feldgroesse);
    
             if(feld[w][s]==0&&feld[w+1][s]==0&&feld[w+2][s]==0&&feld[w+3][s]==0&&feld[w-1][s]==0&&feld[w-2][s]==0&&feld[w-3][s]==0&&feld[w][s+1]==0&&feld[w][s+2]==0&&feld[w][s+3]==0&&feld[w][s-1]==0&&feld[w][s-2]==0&&feld[w][s-3]==0)
               {
                int richtungswahl=random(2);
                if(richtungswahl==0)           //schiff in die waagerechte
                  {
                   feld[w][s]=1;
                   feld[w+1][s]=1;
                   feld[w+2][s]=1;
                   feld[w+3][s]=1;
                  }
    
                if(richtungswahl==1)           //schiff in die senkrechte
                  {
                   feld[w][s]=1;
                   feld[w][s+1]=1;
                   feld[w][s+2]=1;
                   feld[w][s+3]=1;
                  }
               }
    
             else
               {
                zahl--;
               }
    
        }
    
     for(int zahl=0;zahl<schiffanzahlfuenfer;zahl++)
        {
         int w=random(feldgroesse), s=random(feldgroesse);
    
             if(feld[w][s]==0&&feld[w+1][s]==0&&feld[w+2][s]==0&&feld[w+3][s]==0&&feld[w+4][s]==0&&feld[w-1][s]==0&&feld[w-2][s]==0&&feld[w-3][s]==0&&feld[w-4][s]==0&&feld[w][s+1]==0&&feld[w][s+2]==0&&feld[w][s+3]==0&&feld[w][s+4]==0&&feld[w][s-1]==0&&feld[w][s-2]==0&&feld[w][s-3]==0&&feld[w][s-4]==0)
               {
                int richtungswahl=random(2);
                if(richtungswahl==0)           //schiff in die waagerechte
                  {
                   feld[w][s]=1;
                   feld[w+1][s]=1;
                   feld[w+2][s]=1;
                   feld[w+3][s]=1;
                   feld[w+4][s]=1;
                  }
    
                if(richtungswahl==1)           //schiff in die senkrechte
                  {
                   feld[w][s]=1;
                   feld[w][s+1]=1;
                   feld[w][s+2]=1;
                   feld[w][s+3]=1;
                   feld[w][s+4]=1;
                  }
               }
    
             else
               {
                zahl--;
               }
    
        }
    
     for(int zeile=0;zeile<feldgroesse+3;zeile++)
        {
         for(int spalte=0;spalte<feldgroesse+3;spalte++)
            {
             cout<<feld[spalte][zeile];
            }
         cout<<endl;
        }
           getchar();
    }
    //---------------------------------------------------------------------------
    

Anmelden zum Antworten