Spiel



  • Hallo leute ich wollte fragen wie man eine hüpffunktion programmiert bei der man die feldgröße nach vorne springen kann danke im vorraus



  • @anonymouse98 sagte in Spiel:

    Hallo leute ich wollte fragen wie man eine hüpffunktion programmiert bei der man die feldgröße nach vorne springen kann danke im vorraus

    Hast du schon quellcode?

    Und die frage etwas besser formulieren. Sonst bekommst du keine Antworten.

    Wie weit den hüpfen? Wie sieht dein Spielfeld aus? Ist es ein "einfaches" Array, ein 2D Array, vector, map, ...?

    nur eine "Hüpffunktion" bringt dir nichts wenn du kein Spielfeld hast.



  • man hat praktisch ein array eindimensional zb: char array[20]={1,2,3,5,6,7,8,9,2,1,3,4,5,6,...},
    man fängt ganz links an und springt dann die zahl zb array[0]n wäre ja die eins , somit einmal springen bis man das letzte feld erreicht hat im array



  • @anonymouse98

    somit einmal springen bis man das letzte feld erreicht hat im array

    Glaubst du, dass das irgendjemand versteht?



  • ein einfaches Array in dem man die größe eines feldest weit springt



  • @anonymouse98
    #include <stdio.h>
    #include <math.h>
    #include "testat-7.h"

    int huepfspiel(spielfeld * s, int nr);
    int huepfspiel(spielfeld * s, int nr) {
    int rc = 0;
    int rechts, links, feldInhalt;
    nr =16;

       	while(nr< 21){
       		feldInhalt= s->feld[nr];
       		if((nr + feldInhalt)<21){
    		   nr+= feldInhalt;
    		   rc = nr;
    		   printf("rechts: %d\n", rc);
    		}else{
    		   links = feldInhalt/2;
    		   nr-= links;
    		   //rc = nr;
    		   printf("links: %d\n", rc);
    		}
       	}		
    return rc;
    

    }

    int main() {
    spielfeld s = {20, {5,3,2,1,7,5,1,2,3,4,5,1,3,7,1,5,1,9,0,1}};
    printf("Loesbar: %d\n", huepfspiel(&s, 0));
    return 0;
    }



  • Ich dachte hier gäbs ein Spiel 😞 😞 😞

    @513cui Bitte schreib in eine Zeile vor deinen Code ``` und in eine Zeile nach deinem Code nochmal ```, oder markiere Deinen Code, wähle im Dropdown über dem Bearbeitungsfenster die Sprache aus und klicke auf </> daneben. Die Funktion "Bearbeiten" findest du in dem 3-Punkte-Menü rechts unter deinem Beitrag. Danke.


  • Gesperrt

    @anonymouse98 sagte in Spiel:

    man hat praktisch ein array eindimensional zb: char array[20]={1,2,3,5,6,7,8,9,2,1,3,4,5,6,...},
    man fängt ganz links an und springt dann die zahl zb array[0]n wäre ja die eins , somit einmal springen bis man das letzte feld erreicht hat im array

    Das letzte Feld ist: sizeof(array)-1. Jedenfalls bei char-Arrays.
    Allgemein ist es: sizeof(array)/sizeof(*array)-1.



  • @anonymouse98 sagte in Spiel:

    ein einfaches Array in dem man die größe eines feldest weit springt

    In wie fern Springen. Möchtest du das dann zb in Array[0] das aus Array[size-1] steht?

    Oder hast du in deiner main funktion eine index declariert in dem du speichern möchtest?

    Ohne etwas konkretere "Aufgabenstellung" kann man dir keine gute hilfe geben.

    Was bedeutet für dich "Springen" möchtest du den inhalt des nächsten spielfeldes haben? oder nur den index?



  • den Inhalt genau



  • @Darktutnix sagte in Spiel:

    Ohne etwas konkretere "Aufgabenstellung" kann man dir keine gute hilfe geben.



  • @anonymouse98 sagte in Spiel:

    den Inhalt genau

    int main(){
              int arr[]; //hier das array declarieren (natürlich richtig)
              int index; //aktuelle stelle wo du dich befindest
    
             //TODO: was auch immer du tun willst mit dem Spiel
             int next_wert;
             //hier wird jetzt deine hüpffunktion "aufgerufen" (sind zwei zeilen Code im hauptprogramm)
             index++;
             next_wert = arr[index];
             //oder fals du es umbedingt in eine funktion auslagern musst, würde ich es so machen
             next_wert = jump(arr,index);
             
           //TODO: was auch immer du mit dem wert des Spielfeldes machen möchtest zb.
          print(next_wert);
    }
    
    int jump(int *arr,  int &index){ 
    //gleicher code, gleiche wirkung (nur halt um das benötigte return erweitert)
         index++;
         return arr[index];
    }
    
    // oder was mir weil wegen java besser gefällt (int arr[]) 
    

    !Wichtig!: Deklariere das array richtig bei dir und das ist nur Psydocode im C++ style zur erklärung wie das aussehen könnte. Du kannst den Code so nicht compilen.

    @Swordfish nicht zu hart stompen pls ... x.x



  • @Darktutnix sagte in Spiel:

    Psydocode im C++ style

    Das ist kein Pseudocode im C++-Style, sondern im "C mit cout"-Style. Wenn überhaupt...
    Und die Kommentare erschließen sich mir auch nicht. Zu templates: wenn C++, dann doch wohl eher std::vector... Und dem ganzen wird die Krone aufgesetzt durch die Bemerkung, Funktionen nicht zu verwenden, außer wenn man sie mehrfach an unterschiedlichen Stellen benutzt?!

    Na egal. Bei der Qualität der Ausgangsfrage konnte hier ja auch nichts sinnvolles rauskommen!



  • @Darktutnix sagte in Spiel:

    next_wert = jump(&arr,index);
    

    & überflüssig.

    @Darktutnix sagte in Spiel:

    Ohne etwas konkretere "Aufgabenstellung" kann man dir keine gute hilfe geben.

    Immer noch.


Anmelden zum Antworten