Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » Quadrate zählen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
04.06.2003, 15:19 Uhr
virtual
Sexiest Bit alive
(Operator)


Ich bekomme auch 66 Quadrate
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
04.06.2003, 17:45 Uhr
~guzi
Gast


hier ist meine Lösung. etwas ausführlicher als deine Lösung:

main.cpp

C++:
#include "spielfeld.h"

int main()
{
    spielfeld Spielfeld( 8);
    Spielfeld.aufbauen( "quadrate.txt");
    Spielfeld.zeichnen();
    Spielfeld.start();

    return 0;
};



spielfeld.h

C++:
#include "koordinate.h"

class spielfeld
{
public:
    spielfeld( int max);
    bool aufbauen( char *dateiName);
    void zeichnen();
    void start();
    bool istTreffer( int x, int y);

private:
    int anz;
    int **feld;
    int MAX;

    koordinate K1;
    koordinate K2;
    koordinate K3;
    koordinate K4;
};



koordinate.h

C++:
class koordinate
{
public:
    koordinate();
    koordinate( int x, int y);
    void naechste( int max);
    int gibX();
    int gibY();
    void set( int x, int y);

private:
    int X;
    int Y;
};



spielfeld.cpp

C++:
#include "spielfeld.h"
#include <fstream.h>
#include <iostream.h>


spielfeld::spielfeld( int max)
{
    MAX = max;
    feld = new int*[MAX];

    for( int z=0; z<MAX; z++)
        feld[z] = new int[MAX];

    K1.set( 0, 0);
    K2.set( 0, 0);
    K3.set( 0, 0);
    K4.set( 0, 0);

    anz = 0;
};

bool spielfeld::aufbauen( char *dateiName)
{
    char *eingeleseneZeile = new char[MAX+1];
    int zeile, spalte;
    zeile = spalte = 0;
    
    ifstream fin;
    fin.open( dateiName);

    for( int z=0; z<MAX; z++)
    {
        fin >> eingeleseneZeile;

        for( int s=0; s<MAX; s++)
            feld[zeile][s] = (int) (eingeleseneZeile[s] - 48);

        spalte = 0;
        zeile++;
    };

    return true;
};

void spielfeld::zeichnen()
{
    int zeile, spalte;
    zeile = spalte =0;

    for( int z=0; z<MAX; z++)
    {
        for( int s=0; s<MAX; s++)
            cout << feld[z][s] << " | ";

        cout << endl;
        cout << "-------------------------------" << endl;
    };
};

bool spielfeld::istTreffer( int x, int y)
{
    if( x >= MAX || y >= MAX)
        return false;

    if( x < 0 || y < 0)
        return false;

    if( feld[y][x] == 1)
        return true;
    
    else
        return false;
};

void spielfeld::start()
{
    int abstandX, abstandY;
    K2.naechste( MAX);
    
    while( K1.gibY() != MAX-1)
    {
        if( K2.gibY() == MAX-1 && K2.gibX() == MAX-1)
        {
            K1.naechste( MAX);
            K2.set( K1.gibY(), K1.gibX());
            K2.naechste( MAX);
        };

        abstandX = K2.gibX() - K1.gibX();
        abstandY = K2.gibY() - K1.gibY();
        
        if( abstandY >= 0 && abstandX > 0)
        {

        K3.set( K1.gibY() + abstandX, K1.gibX() - abstandY);
        K4.set( K2.gibY() + abstandX, K2.gibX() - abstandY);

        if( istTreffer( K1.gibX(), K1.gibY()) == true)
            if( istTreffer( K2.gibX(), K2.gibY()) == true)
                if( istTreffer( K3.gibX(), K3.gibY()) == true)
                    if( istTreffer( K4.gibX(), K4.gibY()) == true)
                        anz++;
        };

        K2.naechste( MAX);
    };

    cout << anz << endl;


};



koordinate.cpp

C++:
#include "koordinate.h"

koordinate::koordinate()
{
    X = -1;
    Y = -1;
};

koordinate::koordinate( int y, int x)
{
    X = x;
    Y = y;
};

int koordinate::gibX()
{
    return X;
};

int koordinate::gibY()
{
    return Y;
};

void koordinate::set( int y, int x)
{
    X = x;
    Y = y;
};

void koordinate::naechste( int max)
{
    if( X < max-1)
        X++;
    else
    {
        X = 0;
        Y++;
    };
};

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
26.06.2003, 15:20 Uhr
e-DJ



So, und jetzt das Ganze noch mit grafischer Oberfläche, wo man sich die Punkte in einer Matrix selber setzen kann und dann alle Quadrate kurz gezeichnet werden, damit man sie besser erkennt.

Wer macht's ???



e-DJ
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
26.06.2003, 15:34 Uhr
virtual
Sexiest Bit alive
(Operator)


Du?
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
26.06.2003, 16:18 Uhr
e-DJ



Hey, ich dachte, wir sind hier in der Rätselecke, wo man Aufgaben stellt und andere lösen das dann, oder


e-DJ
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
26.06.2003, 16:27 Uhr
virtual
Sexiest Bit alive
(Operator)


Nee nee: derjenige, der das Rätsel Stellt, sollte auch die Lösung haben. Sonst sind wir ganz schnell Mach-Mir-Bitte-Meine-Hausaufgaben-Ecke.
Tja. Jetzt ists zu spät. Du hast das Rätsel gestellt. Lösung bitte bis heute abend, 18.00 Uhr.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
26.06.2003, 16:49 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Eine graphische Oberfläche dazu machen ist kein Rätsel sondern eine Aufgabe. Die erfordert mehr Geduld und Liebe zum Detail als Hirnschmalz.

Solche dummen Rätsel sollten verboten werden, weil es eigentlich keine sind sondern das ist eher ein mach mal für mich die Fleissarbeit bei der ich sowieso fast nichts dazulernen würde Hausaufgabe.

Soviel von meiner Meinung zur tollen GUI-Programmierung.

Gruss Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
27.06.2003, 08:55 Uhr
e-DJ



okokokokokokokokokokokokokokokok

wollte eigentlich nur nen Scherz machen. Die grafische Oberfläche kann man sich ja eh jeden Tag bei 9Live anschauen.


e-DJ
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ Rätselecke ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: