Schiffe versenken mit microController



  • Hallo Leute,

    ich arbeite zusammen mit meinem Kumpel an einem Projekt für die schule. Wir programmieren das spiel Schiffe versenken auf dem computer (in c++) und wollen das ganze über die tasten auf dem "Teachdongle" (8051 oder 8052, bin mir nicht ganz sicher) (in C)steuern. Nun zeigt sich aber das problem, dass weder mein kumpel noch ich große Ahnung von der Materie haben...Die grundidee steht, aber wir haben tausende kleine Probleme....im moment scheiterts daran, dass wir beim besten willen nicht drauf kommen, wie man eigene klassen erstellt und einfügt und deren funktionen(objekte?) aufruft. Das zweite problem ist, dass wir eine klasse für die schiffe allgemein erstellen und dann jeweils für jedes schiff andere werte einsetzen wollten.´ich bin mir nicht mehr sicher, aber ich glaube, da gabs einen befehl

    Klassenname::klasse[0] *new;
    

    oder so ähnlich

    kannn mir da jemand helfen? ich bin grad ziemlich am verzweifeln 😞


  • Mod

    Was ist denn die Frage? Ob wir euch C++ komplett beibringen koennen? Wenn ihr Klassen nutzen wollt, aber nicht wisst, wie man Klassen benutzt, dann hilft ein kleiner Forenbeitrag da auch nicht weiter. Das ist eher etwas fuer ein paar hundert Seiten in einem Lehrbuch. Dir scheint zudem grundlegende Syntax zu fehlen.

    Vergiss new. Dies ist nicht Java.



  • es ist nicht so, dass ich gar nichts weis, schließlich "lerne" ich das seid ca 1 1/2 jahren in der schule, aber ich weis nicht, ob ich den hauptteil in eine .cpp datei oder in ein header-file (.h) schreiben muss und ob ich überhaupt ein header-file benötige (für funktionsprototypen oder sowas). Und wie erzeuge ich sonst neue objekte dieser klasse?(ich glaube es sind objekte, die man am anfang des ptrogrammes erzeugt, oder nicht?)



  • Du kannst auch alles in einer .cpp Datei schreiben. In einer .h/.hpp kommen generell Deklarationen und in einer .cpp Definitionen.

    Beispiel 1:
    main.cpp:

    #include <iostream> 
    
    class A{
    public:
    	A() : hp(0), dmg(0), x(0), y(0) {std::cout << "Default Werte" << std::endl;}
    	A(int healthpoints, int damage, int cordX, int cordY) : 
    		hp(healthpoints), dmg(damage), x(cordX), y(cordY){std::cout << "Angegebene Werte" << std::endl;}
    private:
    	int hp;
    	int dmg;
    	int x;
    	int y;
    };
    
    int main(){ 
    	A a1;	//erstellt Objekt von Klasse A
    	A a2(10,20,2,5); //erstellt Objekt von Klasse A
    	return 0;
    }
    

    Beispiel 2:
    main.cpp:

    #include <iostream> 
    #include "A.hpp"
    
    int main(){ 
    	A a1;	//erstellt Objekt von Klasse A
    	A a2(10,20,2,5); //erstellt Objekt von Klasse A
    	return 0;
    }
    

    A.hpp:

    #ifndef A_HPP
    #define A_HPP
    
    #include <iostream> 
    
    class A{
    public:
    	A();
    	A(int healthpoints, int damage, int cordX, int cordY); 
    private:
    	int hp;
    	int dmg;
    	int x;
    	int y;
    };
    #endif
    

    A.cpp:

    #include "A.hpp"
    
    A::A() : hp(0), dmg(0), x(0), y(0) {std::cout << "Default Werte" << std::endl;}
    
    A::A(int healthpoints, int damage, int cordX, int cordY) : 
    	hp(healthpoints), dmg(damage), x(cordX), y(cordY){std::cout << "Bestimmte Wert" << std::endl;}
    


  • danke, das mit den klassen haben wir hinbekommen und für die verschiedenen schiffe verwenden wir jetzt eine extra klasse nur für daten 🙂


Anmelden zum Antworten