Rechenspiel



  • Ach, das würde ich nicht so sagen. Der Ton ist rau, aber hilfreich, wenn man sich beim Stellen der Frage Mühe gibt und über die Antworten entsprechend nachdenkt.
    Vielleicht war hier das Problem, dass du eine sehr allgemeine Frage gestellt hast.



  • Hyde++, ich danke dir für die ausführliche Antwort 🙂
    Also das die Werte unterschiedlich sind liegt daran, dass es sich in der Funktion rechenzeichenNummer um Multiplikatoren handelt. Sie wird in der Funktion runGame aufgerufen und mit 15 multipliziert einfach weil es ja schwerer ist */ als +- zu rechnen. Das wird benötigt für den Highscore.

    Zu den Parametern habe ich mir auch schon Gedanken gemacht, allerdings kommen die Werte ja aus der Funktion rechne und ich brauche die Werte in der Funktion runGame.
    Da müsste ich doch zick aufrufe an zick Stellen machen, damit die Daten so über kommen?



  • Hyde++ schrieb:

    Sehen wir uns der einfachheit halber mal die Funktion rechenzeichenNummer an. [...]

    Ne, das machen wir bitte nicht. Schon einmal darum nicht, weil alleine der Name bullshit ist - er impliziert eine Nummerierung von Rechenzeichen, die nicht gegeben ist - und eine Zuordnung von Operationen zu Multiplikatoren für irgendeinen Score bestenfalls ein Array oder eine map ist und keine Funktion.


  • Mod

    Swordfish schrieb:

    Hyde++ schrieb:

    Sehen wir uns der einfachheit halber mal die Funktion rechenzeichenNummer an. [...]

    Ne, das machen wir bitte nicht. Schon einmal darum nicht, weil alleine der Name bullshit ist - er impliziert eine Nummerierung von Rechenzeichen, die nicht gegeben ist - und eine Zuordnung von Operationen zu Multiplikatoren für irgendeinen Score bestenfalls ein Array oder eine map ist und keine Funktion.

    Zwar wäre rechenzeichenMultiplikator tatsächlich ein besserer Name, aber ein array oder eine map für 4 verschiedene Möglichkeiten vor zu schlagen, ist ja wohl selber bullshit². Am besten noch eine Hashmap, dann können wir die Hashfunktion wieder rechenzeichenNummer nennen:

    int rechenzeichenNummer(char rechenzeichen)
    {
      switch(rechenzeichen)
      {
        case '+': return 1;
        case '-': return 2;
        case '*': return 3;
        case '/': return 4;
      }
      return 0;
    }
    
    int rechenzeichenMultiplikator(char rechenzeichen)
    {
      static const int multiplikatormap[5] = {0, 2, 2, 5, 5};
      return multiplikatormap[rechenzeichenNummer(rechenzeichen)];
    }
    

    Moderne Programmierung!



  • SeppJ schrieb:

    Am besten noch eine Hashmap,

    Mindestens!!



  • SeppJ schrieb:

    int rechenzeichenNummer(char rechenzeichen)
    {
      switch(rechenzeichen)
      {
        case '+': return 1;
        case '-': return 2;
        case '*': return 3;
        case '/': return 4;
      }
      return 0;
    }
    
    int rechenzeichenMultiplikator(char rechenzeichen)
    {
      static const int multiplikatormap[5] = {0, 2, 2, 5, 5};
      return multiplikatormap[rechenzeichenNummer(rechenzeichen)];
    }
    

    Moderne Programmierung!

    Ich verstehe nicht ganz, warum das oben besser sein soll als das:

    int rechenzeichenMultiplikator(){											// Gibt den Multiplikator des Rechenzeichens wieder.
    	switch(rechenzeichen) {
    		case '+':
    		case '-':
    			return 2;
    		case '*':
    		case '/':
    			return 5;
    	}
    }
    

    Das ist doch viel kürzer und bewirkt genau das gleiche? Und sicher ist es doch auch von der Performance viel schneller, da nicht extra wieder noch eine andere Funktion aufgerufen werden muss?


  • Mod

    Wir brauchen wirklich endlich Ironie-Tags für das Forum.


  • Mod

    SeppJ schrieb:

    Wir brauchen wirklich endlich Ironie-Tags für das Forum.

    Ich fürchte dass diese dann leider missbraucht werden und zahllose Threads unlesbar und zweideutig machen würden.


  • Mod

    Arcoth schrieb:

    SeppJ schrieb:

    Wir brauchen wirklich endlich Ironie-Tags für das Forum.

    Ich fürchte dass diese dann leider missbraucht werden und zahllose Threads unlesbar und zweideutig machen würden.

    Dann eben nur verfügbar für verantwortungsvolle, verdiente Personen mit Vorbildfunktion. Wie Moderatoren. [/ironie]



  • *lach*


  • Mod

    Du hast vor einer kleinen Weile mal das Wort "Penis" in einem fraglichen Kontext verwendet. Das nennst du vorbildhaftlich?

    (Hier ist der Link. Irgendein kleinpubertärer Troll hat den Thread zur damaligen Zeit mit dummen und naivem Schwachsinn zugekleistert... ein Vorläuferaccount von Swordfish? 🤡 )

    ~PS: Ich habe nicht einfach vulgäre Wörter in die Forensuche gesteckt um zu schauen wo du gesündigt hast, ich erinnere mich an viele solche Threads leider nur zu gut, da sie in meinem Hirn wie gebrandmarkt herumgeistern.~ 😞



  • Arcoth schrieb:

    Irgendein kleinpubertärer Troll hat den Thread zur damaligen Zeit mit dummen und naivem Schwachsinn zugekleistert... ein Vorläuferaccount von Swordfish? 🤡 )

    Hey ... bleib sportlich ... 😮


  • Mod

    Mann, das war nur ein Scherzle. Du bist zu keinem Zeitpunkt auch nur annaeherend so unertraeglich wie Hacker es damals gewesen sein muss.


Anmelden zum Antworten