Fragen zu enum in struct u klasse



  • hallo, ich versuche ein schiffe verseknen zu programmieren!

    das ist jetzt erstmal test, aber einwas verstehe ich nicht!

    ich habe eine Klasse Spielfeld, mit einem Struct für die Eigenschaften jedes Feldes!

    darunter ist auch ein enum, ob das feld von einem feind oder mir besetzt ist!

    struct FIELD
    	{
    	  bool free;
    	  enum status{player=1,enemy=10};
    	  status s;
    
    	};
    	 FIELD **field;
    

    in meiner methode SetShip möchte ich eben dieses Flag setzen:

    bool SetShip(int x,int y,int methode)
    	 {
    		 bool ok = false;
    		 if(methode==1)
    		 {
    		   if((field[x][y].free==true) && (field[x+1][y].free == true))
    		   {
    			   field[x][y].free=false;
    			   field[x][y].s=player;
    
    			   field[x+1][y].free=false;
    			   field[x+1][y].s=player;
    			   ok = true;
    			   return ok;
    		   }
    		   else
    		   {
    			   ok = false;
    			   return ok;
    		   }
    		 }
    		 else if(methode==2)
    		 {
    		  if((field[x][y].free==true) && (field[x][y+1].free == true))
    		   {
    			   field[x][y].free=false;
    			   field[x][y].s=player;
    
    			   field[x][y+1].free=false;
    			   field[x][y+1].s=player;
    			   ok = true;
    			   return ok;
    		   }
    		   else
    		   {
    			   ok = false;
    			   return ok;
    		   }
    		 }
    		 else
    		  {
    			  ok = false;
    			  return false;
              }
         }
    

    nur geht es nicht, er sagt das player unbekannt ist, wenn ich den int wert (1 od 10) zuordne, geht es, aber das find ich doof!

    was habe ich falsch gemacht?

    sonst irgendwelche verbesserungsvorschläge??



  • Da der enum in deiner Struktur liegt, muss es FIELD::player heißen.



  • Sonstige Verbesserungsvorschläge:

    dsafsdfdsf schrieb:

    ok = false;
    return ok;
    

    Sinnlos.

    dsafsdfdsf schrieb:

    ok = false;
    return false;
    

    Noch sinnloser.

    Warum, verrat ich Dir wenn Du nicht selbst drauf kommst 😉


Anmelden zum Antworten