Will mir jemand ein Schiffeversenken programmieren? [was: Funktion ?]



  • Hallo zusammen ich habe eine frage kann mir jemand eine funktion zu folgendem Problem schreiben ?:

    Also eigentlich was ganz einfaches man hat ein schachbrett, dass aus 10 mal 10 buttons besteht, nun soll man seine schiffe der größe nach anlegen könne als erste also ein Fünfer, dann ein vierer, dann zwei dreier und dann ein zweier, bei jedem klick soll überprüft werden ob das schiff an dieser stelle gesetzt werden darf, und wenn nicht ist eine meldung auszugeben.
    Die schiffe dürfen nur Vertikal und Horizontal angeordnet sein.
    Kann mir jemand helfen, wie soll ich das problem lösen. 😃

    Vielen dank schon mal im Vorraus für ihre antworten.

    <edit=kingruedi>
    Benutzt doch mal vernünftige Topics, was soll ein Topic wie "Funktion ?" [sic] über den Inhalt eines Threads aussagen? 😡
    erst lesen vor dem nächsten Post wmfrs
    </edit>



  • mal davon abgesehen das das eher ins passende programmiersprachenforum gepostet hätte werden sollen (so weiss keienr mit welcher oberfläche, welcher programmiersprache usw...), wo genau hackt es denn. einfach nur wer macht mir die hausaufgaben ist ein wenig billig...



  • Erstelle doch ein 10x10 bool(/boolean)-Feld und setze, wenn das erste Schiff plaziert wurde, die betreffenden Werte auf true. Beim nächsten Schiff fragst du dann halt ab, ob nicht eines von den Feldern, auf das es gesetzt werden soll, schon belegt ist usw. (dafür reicht eine einfache for-Schleife!)



  • jep wie gesagt ins passende forum posten
    z.b. mfc, borland oder so
    dann warum mit buttons?
    die schiffe per click and drop? oder wie?
    ist aber wahrscheinlich ein konsolenprogramm.
    also null info --> null antworten
    aber schau ruhig mal auf
    www.hausaufgaben.de
    maybe hilft dir da einer im forum 🙂



  • Dieser Thread wurde von Moderator/in Jester aus dem Forum Mathematik in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Das gehört ins Prjekte-Forum. Er will das andere dies für ihn machen.



  • Dieser Thread wurde von Moderator/in kingruedi aus dem Forum Rund um die Programmierung in das Forum Projekte verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • fubar schrieb:

    Erstelle doch ein 10x10 bool(/boolean)-Feld und setze, wenn das erste Schiff plaziert wurde, die betreffenden Werte auf true. Beim nächsten Schiff fragst du dann halt ab, ob nicht eines von den Feldern, auf das es gesetzt werden soll, schon belegt ist usw. (dafür reicht eine einfache for-Schleife!)

    bin zwar delphianer und weiß nicht, was es in C++ so gibt, aber ich würde lieber ein Byte-Array nehmen, dann kann man nämlich gleich wunderschön mit abfragen (lassen), ob z.b. ein bestimmtes schiff versenkt wurde...
    außerdem kann man sich dann leicht eine recht simple-zeichenmethode basteln...

    wenn du es dann ganz schön (und kompakt) machen willst, nimmst ein array von einem record, dass aus einem byte- (oder einem selbst-definierten ordinal-) und einem bool-wert besteht. dann steht an der position im array:
    A) zu welchem schiff die position gehört
    😎 ob die stelle schon gestroffen wurde

    mal sehen...

    type
      TFieldType = (ftEmpty, ftSizeTwo, ftSizeThree, ftSizeFour, ftSizeFive);
    
      TFieldRecord = record
        FieldHit  : Boolean;
        FieldType : TFieldType;
      end;
      TFieldArray = array[1..10] of array[1..10] of TFieldRecord;
    

    was man noch beachten muss, ist:
    wenn man jetzt einen Wert aus dem Array lesen will, muss man erst den Y- und dann den X-wert angeben.... 😉

    procedure DoSomething(var AFieldArray : TFieldArray; AXPosition : Byte; AYPosition : Byte);
    begin
      AFieldArray[AYPosition][AXPosition].FieldHit := true;
    end;
    

    wfg,
    ShiKai


Anmelden zum Antworten