Seite 112 von 202 ErsteErste ... 1262102108109110111112113114115116122162 ... LetzteLetzte
Ergebnis 1.666 bis 1.680 von 3026

Thema: [Programmiererstammtisch] "Zum ächzenden Compiler"

  1. #1666
    Wolf im Krokodilpelz Avatar von Mongke Khan
    Registriert seit
    25.06.11
    Ort
    KA
    Beiträge
    19.057
    Zitat Zitat von Shakka Beitrag anzeigen
    Aber als Anfänger hat man eigentlich mehr Spaß daran, das Rad zum tausendsten mal neu zu erfinden
    Das fand ich immer furchtbar langweilig und frustrierend
    Zitat Zitat von Ghaldak Beitrag anzeigen
    Wären die Beiträge der Admins alles, was zählt, dann wäre dieses Forum eine Geisterstadt mit Adventskalender.

  2. #1667
    schwarz weiß Avatar von Rorschach
    Registriert seit
    25.02.02
    Ort
    Ruhrgebiet
    Beiträge
    5.951
    Zitat Zitat von Shakka Beitrag anzeigen
    Ich finde, das ist ein gutes Projekt um mit dem Programmieren anzufangen.

    Python ist sicher auch gut dafür geeignet.
    Allerdings kommt es darauf an, wie Du Dir das Userinterface vorstellst. Wenn es grafisch und mit Mausbedienung sein soll, wird das der schwierigste Teil an diesem Projekt.
    Bei Python empfehle ich pygame. Das ist eigentlich für die Spieleprogrammierung gedacht. Damit kann man aber leicht was auf den Bildschirm malen und die Maus abfragen. Das ist dann also sehr simpel und man muss viel selbst von Hand machen. Aber als Anfänger hat man eigentlich mehr Spaß daran, das Rad zum tausendsten mal neu zu erfinden als irgendwas zu benutzen, was alle Probleme schon gelöst hat, dafür aber viel Einarbeitungszeit benötigt weil es so komplex ist.
    Über das Interface habe ich mir noch kaum Gedanken gemacht. Anfangs erstmal die Mathematik und Struktur vernünftig abbilden und die Würfel in der Kommandozeile eingeben.
    Im zweiten Schritt dann ein Eingabefeld, dann vielleicht Kästchen zum Anklicken, ob z.b. die kleine Straße schon weg ist und zum Schluss, den ganzen Kniffel Zettel bauen, damit der Bonus auch berechnet werden kann.

    Pygame schaue ich mir mal

  3. #1668
    schwarz weiß Avatar von Rorschach
    Registriert seit
    25.02.02
    Ort
    Ruhrgebiet
    Beiträge
    5.951
    Welchen Editor für Python empfehlt ihr denn?

    Ich hatte drpython runtergeladen, aber krieg den nicht zum Laufen

  4. #1669
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.449
    Ich benutz einfach Notepad++ unter Windows und geany unter Linux.

  5. #1670
    schwarz weiß Avatar von Rorschach
    Registriert seit
    25.02.02
    Ort
    Ruhrgebiet
    Beiträge
    5.951
    Bestens

    Die anderen, fancy Editoren haben dann noch Bibliotheken eingebaut? DrPython z.B. hat dann noch C++ Bibliotheken integriert bzw. erlaubt es diese über wxpython zu nutzen?

  6. #1671

  7. #1672
    L'Éléphant terrible Avatar von Gigaz
    Registriert seit
    28.11.06
    Ort
    Zuhause
    Beiträge
    13.229
    idle forever

  8. #1673
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Zitat Zitat von Gigaz Beitrag anzeigen
    idle forever

  9. #1674
    schwarz weiß Avatar von Rorschach
    Registriert seit
    25.02.02
    Ort
    Ruhrgebiet
    Beiträge
    5.951
    Ist idle schon direkt eingebaut?
    Ein Rechtsklick gibt mir zumindest die Möglichkeit edit with idle

    Ich habe mir ein paar Gedanken gemacht und von den Problemen, die mir eine kl. und gr. Straße bereiten wird, will ich mal gar nicht erst anfangen

    Mein erster Ansatz ist jetzt

    Code:
    Eingabe = list(input("Ihre Eingabe? (xxxxx)"))
    
    Neuwurf = (5-Eingabe.count("1"))
    
    print((Eingabe.count("1"))+(Neuwurf*1/6))
    
    Offen = input("lass offen Junge")
    Das müsste eigentlich für Einser-Sechser funktionieren.

    Das funktioniert aber schon nicht
    Code:
    Eingabe = list(input("Ihre Eingabe? (xxxxx)"))
    
    Neuwurf.Einser = (5-Eingabe.count("1"))
    
    EV.Einser = ((Eingabe.count("1"))+(Neuwurf.Einser*1/6))
    
    Neuwurf.Zweier = (5-Eingabe.count("2"))
    
    EV.Zweier = ((Eingabe.count("2")*2)+(Neuwurf.Zweier*2/6))
    
    print(EV.Einser, EV.Zweier)
    
    Offen = input("lass offen Junge")
    Wie kann ich das Fenster offen lassen?

    Auch bei Error poppt es nur für einen Sekundenbruchteil auf

    €: Jetzt müsste der EV für Zweier zumindest in der Theorie stimmen

    Und die Variable Neuwurf.XXX muss ich ja eigentlich auch nicht definieren
    Geändert von Rorschach (04. Juni 2017 um 21:36 Uhr)

  10. #1675
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Zitat Zitat von Rorschach Beitrag anzeigen
    Ist idle schon direkt eingebaut?
    Ein Rechtsklick gibt mir zumindest die Möglichkeit edit with idle
    Bei Windows ist das der Fall.

    Mein erster Ansatz ist jetzt

    Code:
    Eingabe = list(input("Ihre Eingabe? (xxxxx)"))
    Neuwurf = (5-Eingabe.count("1"))
    print((Eingabe.count("1"))+(Neuwurf*1/6))
    
    Offen = input("lass offen Junge")
    Das müsste eigentlich für Einser-Sechser funktionieren.
    1. Namen von Variablen werden klein geschrieben. Also "neuwurf" statt "Neuwurf".
    2. Die count-Methode gibt es auch für Strings. Z.B. "11111".count("1") ergibt 5.
    3. Die Klammern in der 3. Zeil sind alle überflüssig, bis auf die zu print gehörigen Klammern.
    4. Was soll eigentlich passieren?

    Code:
    Eingabe = list(input("Ihre Eingabe? (xxxxx)"))
    
    Neuwurf.Einser = (5-Eingabe.count("1"))
    
    EV.Einser = ((Eingabe.count("1"))+(Neuwurf.Einser*1/6))
    
    Neuwurf.Zweier = (5-Eingabe.count("2"))
    
    EV.Zweier = ((Eingabe.count("2")*2)+(Neuwurf.Zweier*2/6))
    
    print(EV.Einser, EV.Zweier)
    
    Offen = input("lass offen Junge")
    1. Was ist EV? Ist nicht definiert, kann somit ein Attribut mit dem Namen "Einser" nicht geben.
    2. Was ist Neuwurf? Auch nicht definiert.

    Wie kann ich das Fenster offen lassen?
    Was für ein Fenster? Was verwendest du?

  11. #1676
    schwarz weiß Avatar von Rorschach
    Registriert seit
    25.02.02
    Ort
    Ruhrgebiet
    Beiträge
    5.951
    Zitat Zitat von alpha civ Beitrag anzeigen
    1. Was ist EV? Ist nicht definiert, kann somit ein Attribut mit dem Namen "Einser" nicht geben.
    Das war das Problem, ich wollte keine Attribute vergeben, sondern einfach Na.me machen

    Zitat Zitat von alpha civ Beitrag anzeigen
    4. Was soll eigentlich passieren?
    Ich habe es etwas angepasst und erweitert

    Code:
    eingabe = input("Ihre Eingabe? (xxxxx)")
    
    eveinser = ((eingabe.count("1")*1)+((5-eingabe.count("1"))*1/6))
    
    evzweier = ((eingabe.count("2")*2)+((5-eingabe.count("2"))*2/6))
    
    evdreier = ((eingabe.count("3")*3)+((5-eingabe.count("3"))*3/6))
    
    evvierer = ((eingabe.count("4")*4)+((5-eingabe.count("4"))*4/6))
    
    evfünfer = ((eingabe.count("5")*5)+((5-eingabe.count("5"))*5/6))
    
    evsechser = ((eingabe.count("6")*6)+((5-eingabe.count("6"))*6/6))
    
    print("EVEinser", eveinser, evzweier, evdreier, evvierer, evfünfer, evsechser)
    
    Offen = input("lass offen Junge")
    Eingabe gibt die Würfelergebnisse aus dem ersten Wurf, mit Eingabe.count zähle ich wieviel 4er etc schon dabei sind und 5-Eingabe.count gibt mir, wieviel Würfel ich für z.B. die Vierer neuwerfen muss.
    Da es keine Simulation ist, nehme ich die direkt die Wahrscheinlichkeit, mit der ich eine bestimmte Zahl würfele, und multipliziere sie mit dem Punktwert (für 4er 4*1/6 -> 4/6) und das gibt mir dann zusammen mit den schon rausgelegten 4er den Gesamterwahrtungswert.

    Nächster Schritt wäre dann erstmal, die Ergebnisse in Liste zu packen und die zu sortieren und mir nur das beste Ergebnisse anzeigen zu lassen. Nur muss ich dann auch noch eine Beschriftung ausgeben lassen, dass ich weiß was das denn war.
    Das müsste doch mit tupel gehen, die kann man doch auch in eine Liste packen oder?

    Zitat Zitat von alpha civ Beitrag anzeigen
    Was für ein Fenster? Was verwendest du?
    Editor -> als *.py speichern und mit Python öffnen, dann kommt doch das Kommandozeilen(?) Fenster und das schließt sich direkt wieder, wenn das Program fehlerfrei oder auch mit Fehlern durchgelaufen ist.
    Kann ich das offen lassen?

  12. #1677
    Administrator
    Registriert seit
    20.08.04
    Beiträge
    8.966
    Du kannst das py-File in IDLE öffnen.
    Dann kannst Du es mit IDLE mit Syntaxhighlighting bearbeiten. Und Du kannst es in IDLE direkt ausführen.
    Außerdem bringt IDLE eine interaktive Python-Eingabeaufforderung mit.
    Damit kann man schnell mal dinge ausprobieren.

    Zum Beispiel:

    >>> liste={}
    >>> liste[1]=1.5
    >>> liste[2]=4
    >>> liste[3]=3
    >>> liste
    {1: 1.5, 2: 4, 3: 3}
    >>> max(liste, key=liste.get)
    2
    Verstand op nul, frituur op 180.

  13. #1678
    Administrator
    Registriert seit
    20.08.04
    Beiträge
    8.966
    Die beste Wahrscheinlichkeit direkt auszurechnen ist mathematisch schon recht schwierig.

    Ich würde es so machen:
    Eine Funktion bauen, die die Punkte eines Wurfs ausrechnet.

    Dann für jeden Wurf alle Kombinationen an Würfel stehen lassen, die übrigen neu würfeln und das Ergebnis in eine Liste eintragen. Dann kann man in der Liste gucken, welche Würfel man am besten raus legen sollte.
    Verstand op nul, frituur op 180.

  14. #1679
    Registrierter Benutzer Avatar von alpha civ
    Registriert seit
    22.07.06
    Beiträge
    16.757
    Zitat Zitat von Shakka Beitrag anzeigen
    Zum Beispiel:

    >>> liste={}
    >>> liste[1]=1.5
    >>> liste[2]=4
    >>> liste[3]=3
    >>> liste
    {1: 1.5, 2: 4, 3: 3}
    >>> max(liste, key=liste.get)
    2
    Deine Bezeichnung ist etwas unglücklich. Denn liste ist keine Liste.

  15. #1680
    Administrator
    Registriert seit
    20.08.04
    Beiträge
    8.966

    Vielleicht besser grundsätzlich keine deutschen Begriffe Verwenden.
    Steuwerttabelle oder assoziatives Datenfeld sind ja auch keine dollen Begriffe.
    Verstand op nul, frituur op 180.

Seite 112 von 202 ErsteErste ... 1262102108109110111112113114115116122162 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •