Egoist Geschrieben September 12, 2018 Autor Share Geschrieben September 12, 2018 (bearbeitet) Hallo Forum, ich bin mir meiner Vermutung recht sicher, dass es keinen Sinn macht, ein Neuronetz, egal von welchem Design, mit puren Ziehungsergebnissen zu füttern. Rauschen --> Input ergibt Output --> Rauschen... Also muss man die Daten erst aufarbeiten. Nehmen wir uns mal eine EC vor, so generiert sie nicht nur immer ein neues Ergebnis, sondern füttert gleichzeitig eine Historie. Man sollte also die Historie im Auge behalten, denn sonst hat man nicht sehr viel. Nehmen wir weiter an, die Historie hat nur eine begrenzete Merkzeit, setzen wir sie mal willkürlich auf 8 Coups fest, so haben die verschiedenen Historien, die denkbar sind, deutlich unterschiedliche Häufigkeiten. Nimmt man Coups mit Ausgang Zero einfach mal als nicht geschehen an, damit es nicht zu schwierig wird, dann gibt es nur 1/128 Historien mit nur einer Farbe in allen NonZeroCoups. Das ist unter 1% und gleichzeitig die seltenste Historie. Trifft die gleiche Farbe auch ein 9. Mal, erhöht sich die Seltenheit der erzeugten Historie auf 1/256 usw. Zählt man dagegen die Farbtreffer in 8 NonZeroCoups aus, ergibt sich ein moderateres Bild. Da ich gerade zu faul bin, das auszurechen und andere Rechenkünstler hier vergrault habe, werden wir wohl nie erfahren, wieviele Historien von NonZeroCoups 4:4 ausgehen. 3:5 und 5:3 werden gleich oft vorkommen, ebenso 2:6 und 6:2. Selbst 1:7 und 7:1 sind gleich häufig zu erwarten und ganz erheblich häufiger als 0:8 und 8:0. Sicherlich wird auch aus einer 0:8 Historie im nächsten NonZeroCoup zur Hälfte ein 0:9, aber dann wird die Seltenheit weiter gepflegt. Hier wurden schon EC-Ausbleiber um die 30 Coups berichtet, aber die haben echten Seltenheitswert (19/37)^30. https://www.wolframalpha.com/input/?i=(19%2F37)^30 30 Treffer ohne Zerounterbrechung sind noch deutlich seltener: https://www.wolframalpha.com/input/?i=(18%2F37)^30 Frage: Wenn wir ein seltenes Ereignis in der Histore angereichert haben, wie stark ist die Tendenz des Zufalls, dies noch auszubauen? Und was macht dann ein Neuronetz aus solchem Input? Bisher habe ich beides noch nicht verheiratet und bin gespannt, wie es weiter geht. Gruss vom Ego bearbeitet September 12, 2018 von Egoist Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
novice Geschrieben September 12, 2018 Share Geschrieben September 12, 2018 Moin, nach meinen Aufzeichnungen sind alle Historien älter als 4 Stunden zu vernachlässigen! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
wiensschlechtester Geschrieben September 12, 2018 Share Geschrieben September 12, 2018 vor 21 Stunden schrieb Egoist: Hallo Forum, ich bin mir meiner Vermutung recht sicher, dass es keinen Sinn macht, ein Neuronetz, egal von welchem Design, mit puren Ziehungsergebnissen zu füttern. Rauschen --> Input ergibt Output --> Rauschen... Hallo Ego, eine kleine Anregung. Wie schon erwähnt schrieb ich ein Musterverfolgungsprogramm mit dem zu erwartenden Ergebnis, und relativ große Schwankungen. Da sich alleine durch einen Fehltreffer ein Ende eines verfolgten Musters anzeigte (ohne Längenbegrenzung), ist dieser Ansatz zum scheitern verdammt. Mit einer einfachen Chartanalyse für Figuren mit einer Größe von drei bis fünf Würfen meinerseits, sowie einer Lerntabelle von andere Seite schaffte man auch keine Gleichsatzüberlegenheit. Somit gehe ich konform, und es wurde auch bewiesen, mit der Vermutung eine Auswertung von Daten welche direkt aus Permanz ausgelesen werden können ist nicht zielführend. Nicht wirklich gut formuliert, vielleicht schafft es wer in klarere Weise, als auch exakter (!), zu formulieren. Wenn's also nicht einfach geht, wird's wohl anstrengend. Zerlegen wir die Problematik in kleine verdaubere Happen. Erster Happen: Welche indirekten Informationen würden uns wohl weiterhelfen? 1. abstrahierte Informationen Ist die Betrachtung von Favoritenwechsel bei Chancen und Mustern in kleineren sowie größeren Abschnitten zu direkt? 1.1. chaotische vs nichtchaotische Abschnitte Gebildeter Menschen könnten jetzt die aktuellen Theorien bezüglich Entropie einbringen. Alleine die Information ein Merkmal zeigt sich verstärkt in einer genügend langen Permanenzstrecke würde einem Spieler weiter helfen. Wobei nicht einmal dieses Merkmal vorweg beschrieben sein müsste, um dem besagten Spieler das Leben zu erleichtern, es reicht den Beginn einer derartigen, nicht zu kurzen, Strecke zu erfahren. ... Fortsetzung bei Geistesblitz (des koa dauern) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Egoist Geschrieben September 14, 2018 Autor Share Geschrieben September 14, 2018 Am 12.9.2018 um 13:10 schrieb novice: Moin, nach meinen Aufzeichnungen sind alle Historien älter als 4 Stunden zu vernachlässigen! Hallo Novice, Deine Zeitangabe ist etwas ungenau, denn je nach Umgebung kann Roulette weniger als 30 Coups pro Stunde generieren, oder aber auch sehr viel mehr. Deine Angabe würde sich also vermutlich auf 3-6 Rotationen beziehen. Geht man von Plein aus, so gibt es durchaus (sehr selten) 20 Rotationen in denen eine Zahl gar nicht vorkommt. Spielt man diese Situationen für 80 folgende Rotationen weiter, normalisieren sich die Treffer auf diesem Restanten im weiteren Spiel. Nach meiner Beobachtung kann man nicht genug Historie ansammeln. Allerdings verblasst mit jedem neuen Coup der Einfluss der älteren logarithmisch. Viel Erfolg beim Traden, Gruss vom Ego Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Egoist Geschrieben September 14, 2018 Autor Share Geschrieben September 14, 2018 Am 13.9.2018 um 00:01 schrieb wiensschlechtester: Erster Happen: Welche indirekten Informationen würden uns wohl weiterhelfen? Hallo Wiener, was uns helfen kann, werden wir erst hinterher wissen, wenn etwas geholfen haben wird. Es ist durchaus denkbar, dass gar nichts hilft Am 13.9.2018 um 00:01 schrieb wiensschlechtester: 1. abstrahierte Informationen Ist die Betrachtung von Favoritenwechsel bei Chancen und Mustern in kleineren sowie größeren Abschnitten zu direkt? Hier kann ich Dir nicht folgen, von welchen Chancen schreibst Du (EC, Plein), von Mustern höre ich eher im Zusammenhang mit EC, von Favoriten eher nur bei Pleinzahlen. Am 13.9.2018 um 00:01 schrieb wiensschlechtester: 1.1. chaotische vs nichtchaotische Abschnitte Auch muss mehr Präzision her, denn es ist unklar, wie Du (Nicht)Chaos definierst. Man könnte die Ausbildung einer langen EC-Serie als nichtchaotisch einsortieren, aber eigentlich ist die "lange Ordnung" als ein Ausdruck für die maximale Abweichung vom Erwartungswert zu werten. Am 13.9.2018 um 00:01 schrieb wiensschlechtester: Gebildeter Menschen könnten jetzt die aktuellen Theorien bezüglich Entropie einbringen. Alleine die Information ein Merkmal zeigt sich verstärkt in einer genügend langen Permanenzstrecke würde einem Spieler weiter helfen. Wobei nicht einmal dieses Merkmal vorweg beschrieben sein müsste, um dem besagten Spieler das Leben zu erleichtern, es reicht den Beginn einer derartigen, nicht zu kurzen, Strecke zu erfahren. Dazu fehlt mir noch so einiger Hintergrund. Mit den Wikipediaartikeln habe ich gewöhnlich einige Schwierigkeiten. Nett fand ich diese Aussage: Die Einheit 1 Shannon ist definiert als der Informationsgehalt eines Ereignisses mit der Wahrscheinlichkeit p=0,5{\displaystyle p=0{,}5}. Ein Beispiel für ein solches Ereignis ist das Ergebnis Kopf eines Münzwurfs. Sobald wir in Deep Learning einsteigen, wird sich weisen, dass wir uns nicht um Merkmale kümmern müssen, denn Neuronetze sind grossartig, wenn es um selbständiges Erkennen dieser Merkmale geht. Gruss vom Ego Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
roemer Geschrieben September 14, 2018 Share Geschrieben September 14, 2018 vor 45 Minuten schrieb Egoist: Hallo Novice, Deine Zeitangabe ist etwas ungenau, denn je nach Umgebung kann Roulette weniger als 30 Coups pro Stunde generieren, oder aber auch sehr viel mehr. Deine Angabe würde sich also vermutlich auf 3-6 Rotationen beziehen. Geht man von Plein aus, so gibt es durchaus (sehr selten) 20 Rotationen in denen eine Zahl gar nicht vorkommt. Spielt man diese Situationen für 80 folgende Rotationen weiter, normalisieren sich die Treffer auf diesem Restanten im weiteren Spiel. Nach meiner Beobachtung kann man nicht genug Historie ansammeln. Allerdings verblasst mit jedem neuen Coup der Einfluss der älteren logarithmisch. Viel Erfolg beim Traden, Gruss vom Ego Hi Egoist, kommt darauf an, bei EC sollte man irgendwann "abschneiden", sonst gibt es zuviele Möglichkeiten und wird eher verwirrend. Und man möchte nicht auf eine nicht mehr aktuelle Struktur/Ordnung setzen. Gruß roemer Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Egoist Geschrieben September 14, 2018 Autor Share Geschrieben September 14, 2018 vor 3 Minuten schrieb roemer: kommt darauf an, bei EC sollte man irgendwann "abschneiden", sonst gibt es zuviele Möglichkeiten und wird eher verwirrend. Und man möchte nicht auf eine nicht mehr aktuelle Struktur/Ordnung setzen. Hallo roemer, in der Praxis gebe ich Dir Recht, man muss die Tauglichkeit im Auge behalten, das im Casino (ohne elektronische Hilfe) umzusetzen. Wenn ich mal auf EC spielen sollte (selten) reicht mir die Ampel mit 10-20 Coups oft aus, um lohnenswerte Prognosen zu erstellen. Das sind dann aber eher seltene Konstellationen, die ich dann angreife. Gruss vom Ego Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Dr. Manque Geschrieben September 15, 2018 Share Geschrieben September 15, 2018 Hallo EGO, Die beiden Quelltexte vom Dienstag 00:58 und 01:04 habe ich übernommen. Nach dem Einsetzen eines eigenen Dateinamens path = 'F:\\Roulette\\Faustan\\Faustan1.txt' lief das Programm auf Anhieb und im spyder- Consolfenster sind die ganzen Listenprints und am Ende die Grafik erschienen - halt wie programmiert. (Die volle Grafik sieht man nur, wenn man scrollt. Mein Snippettool kann nur aktuell sichtbare Bereiche des Bildschirms aufnehmen.) Deinen Code habe ich weitgehend verstanden, und er hilft mir weiter. "import numpy as np" wird bei mir als "unused" markiert. "import re" nutzt Du ja auch noch nicht, wird aber nicht als "unused" markiert. Ich kämpfe noch mit tkinter, das sehr merkwürdige Effekte zeigt. Bis bald! Albert Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Egoist Geschrieben September 15, 2018 Autor Share Geschrieben September 15, 2018 (bearbeitet) Moin Herr Dr. und vielen Dank für Dein Lebenszeichen. Zitat Die beiden Quelltexte vom Dienstag 00:58 und 01:04 habe ich übernommen. Nach dem Einsetzen eines eigenen Dateinamens path = 'F:\\Roulette\\Faustan\\Faustan1.txt' lief das Programm auf Anhieb und im spyder- Consolfenster sind die ganzen Listenprints und am Ende die Grafik erschienen - halt wie programmiert. So soll es auch (fast) sein. In meiner Umgebung wirft matplotlib.pyplot.show() jedoch immer ein extra Fenster aus, welches man mit den einschlägigen Piktogrammen bis auf Vollbild stellen kann. Es gibt, soweit ich weiss, einen Metabefehl ("inline" oder so) für die Jupyternotebooks, die die Grafik in den Fliesstext der Konsole integrieren. So etwas ähnliches muss wohl bei Dir in Spyder vorbelegt sein. Zitat (Die volle Grafik sieht man nur, wenn man scrollt. Mein Snippettool kann nur aktuell sichtbare Bereiche des Bildschirms aufnehmen.) Im Extrafenster, so wie bei mir, kannst Du auch Zoomen, Scrollen, Speichern und noch mehr. Musst Du selber gucken, Spyder nutze ich noch nicht. Zitat Deinen Code habe ich weitgehend verstanden, und er hilft mir weiter. "import numpy as np" wird bei mir als "unused" markiert. "import re" nutzt Du ja auch noch nicht, wird aber nicht als "unused" markiert. Ja das kann sein, aber numpy wird sicherlich noch gebraucht, daher kannste das übergehen. "re" wird schon genutzt, daher auch nicht bemängelt (suche "re.match"). Zitat Ich kämpfe noch mit tkinter, das sehr merkwürdige Effekte zeigt. Wo hapert's? Ich habe damit zwar nicht weitergearbeitet, aber das finden wir gemeinsam sicher schnell raus. Gruss vom Ego bearbeitet September 15, 2018 von Egoist Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Egoist Geschrieben September 15, 2018 Autor Share Geschrieben September 15, 2018 (bearbeitet) So sieht das im Extrafenster aus: Zuerst alles im kleinen Fenster Dann alles im Vollbild und mit Zoom auf die ersten Coups bearbeitet September 15, 2018 von Egoist Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Egoist Geschrieben September 15, 2018 Autor Share Geschrieben September 15, 2018 Und hier noch ein fetter Zoom für @novice Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Egoist Geschrieben September 15, 2018 Autor Share Geschrieben September 15, 2018 (bearbeitet) Am 13.9.2018 um 00:01 schrieb wiensschlechtester: Wobei nicht einmal dieses Merkmal vorweg beschrieben sein müsste, um dem besagten Spieler das Leben zu erleichtern, es reicht den Beginn einer derartigen, nicht zu kurzen, Strecke zu erfahren. Es wird wohl darauf hinauslaufen, verschieden lange Historien mit verschiedenen Modellen zu trainieren/optimieren. Dann kann man anschliessend alle gleichzeitig zur Situation befragen, um eine demokratische Abstimmung zu veranstalten. Schaltet man noch ein Neuronetz dazwischen, welches die Stimmrechte aller so optimiert, dass das beste Ergebnis erscheint, hat man langsam Boden unter die Füsse geschüttet. Gruss vom Ego bearbeitet September 15, 2018 von Egoist Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
novice Geschrieben September 16, 2018 Share Geschrieben September 16, 2018 vor 10 Stunden schrieb Egoist: Und hier noch ein fetter Zoom für @novice Sehr schön, da bekomme ich doch gleich wieder Interesse Ein grober Überblick und ich greif mal "Ungerade" raus und erkenne mein Handlungsmuster! Gleiche Logik, nur andere Umsetzung für den Profitweg! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Dr. Manque Geschrieben September 16, 2018 Share Geschrieben September 16, 2018 Hallo novice, schau Dir mal bitte weitere Charts aus dem Trader-Umfeld an und vergleiche mit Ego's Bildern. Könnte es sein, dass die Roulette-Charts generell flacher sind? Albert Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
novice Geschrieben September 16, 2018 Share Geschrieben September 16, 2018 Ja zwangsläufig, darum habe ich für mich eine Mindeststrecke definiert ab welcher ich meine auftretende Muster akzeptiere. Anderseits zeigen meine Aufzeichnungen auch, das im "flachen" Verlauf genauso gut agiert werden kann, mit dem Nachteil einer sinkenden Trefferqoute. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Frenchy Geschrieben September 16, 2018 Share Geschrieben September 16, 2018 vor 46 Minuten schrieb Dr. Manque: Hallo novice, schau Dir mal bitte weitere Charts aus dem Trader-Umfeld an und vergleiche mit Ego's Bildern. Könnte es sein, dass die Roulette-Charts generell flacher sind? Albert Hi Albert, ich sehe das nicht so. Es ist der Auflösung geschuldet, dass der (eher geringe) Anstieg im Chart so steil erscheint. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Dr. Manque Geschrieben September 16, 2018 Share Geschrieben September 16, 2018 vor 14 Stunden schrieb Egoist: ... ... Wo hapert's? Ich habe damit zwar nicht weitergearbeitet, aber das finden wir gemeinsam sicher schnell raus. Gruss vom Ego Hallo Ego, es hapert mit tkinter an allen Ecken und Enden. Nimm dieses Fenster: Man sieht, das längste Element bestimmt die horizontale Ausrichtung. Da kann man für ein einzelnes Element im Parameter "width=..." eintragen was man will. Das Element selbst wird richtig bedient (Verbreiterung von width=6 auf width =60), aber es wirkt sich auf alle aus: In der Vertikalen gibt es eine ähnliche Macke. Ich habe die row-Parameter für die Buttons "Permtest von oben", "Permtest von unten" und "Pooltest" so eingestellt, dass diese Buttons weiter unten gestreut erscheinen müssten. "Pustekuchen" sagt tkinter und knallt die Buttons immer untereinander. Man kann keine Rahmen setzen. Man hat fast keine Macht über die Positionierung der Anzeigeelemente. Wenn man bedenkt, was dieses Fenster noch zeigen muss: die Satzanweisungen, die Abrechnungen, gestaffelt nach Coup, Perm und Pool, und die Trefferverläufe, dann spüre ich richtig körperliche Bauchschmerzen. In Excel-VBA wäre das alles easy und transparent und - schnell zu machen. Das probiere ich jetzt für ein "novice-analoges" Modell aus und messe die Arbeitszeit. Im Prinzip ist meine primitive tkinter-GUI soweit, dass man ein Modell einbauen könnte: Man kann ein beliebiges Verzeichnis anwählen, dann die darin enthaltenen Permnamen in die Combobox holen (Duisburg, Wien, CC, egal), dann eine Perm auswählen, die man über das Eingabefeld "Enter a Plein" fortsetzen kann. Den Quelltext stelle ich vorsichtshalber in das nächste Posting ein. Albert Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Frenchy Geschrieben September 16, 2018 Share Geschrieben September 16, 2018 Am 12.9.2018 um 02:13 schrieb Egoist: Nimmt man Coups mit Ausgang Zero einfach mal als nicht geschehen an, damit es nicht zu schwierig wird, dann gibt es nur 1/128 Historien mit nur einer Farbe in allen NonZeroCoups. Das ist unter 1% und gleichzeitig die seltenste Historie. Hallo Ego, bitte erläutere das mal im Detail. Für mich gilt bisher, dass eine 8er-Serie zu 1/256 erscheint... Gruss Frenchy Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Dr. Manque Geschrieben September 16, 2018 Share Geschrieben September 16, 2018 vor 3 Minuten schrieb Dr. Manque: ... ... Man kann ein beliebiges Verzeichnis anwählen, dann die darin enthaltenen Permnamen in die Combobox holen (Duisburg, Wien, CC, egal), dann eine Perm auswählen, die man über das Eingabefeld "Enter a Plein" fortsetzen kann. Den Quelltext stelle ich vorsichtshalber in das nächste Posting ein. Albert Hier ist der Quelltext: # -*- coding: utf-8 -*- #======================== # imports #======================== #import sys #sys.path.append("D:\Python") #print(sys.path) #import re # Modul für Regular Expressions #import numpy as np #import matplotlib.pyplot as plt #import roulib01 as roulEGO # Unsere eigene Library, sie hat eine neue Versionsnummer. import tkinter as tk from tkinter import ttk import os import roullib00 as roul ChArten = roul.ChancenArten() # Konstruktor, der eine Instanz mit frei wählbarem Namen erzeugt. # globale Strings hinweis01 = ["(Bitte Pfad oben eingeben)"] fehler01 = ["Pfad ist üngültig!"] fehler02 = ["keine Coup-Nr.!"] fehler03 = ["Eingabe ungültig!"] # Erzeuge eine Instanz win = tk.Tk() # Füge einen Titel hinzu win.title("Meine erste GUI") # Enable resizing x-dimension, disable y-dimension win.resizable(True, True) win.geometry('800x300') # Modul-globale Variable #----------------------------- lastcoup = 0 perm = [] couplist = [] # Kopierstrings für das Directory-Eingabefeld: # D:\4All\Roulette\Edgar\Wien_F1_1992 # F:\Roulette\Faustan def ResetPerm(): pass # lastcoup2 = 0 # perm2 = [] # couplist2 = [] # lastcoup = lastcoup2 # perm = perm2 # couplist = couplist2 def read_Directory(path): txtfiles = [] # leere Liste der Dateinamen, wird nur lokal erzeugt! zz = 0 try: # Die Dateinamen einsammeln for filename in os.listdir(path): txtfiles.append(filename) zz = zz + 1 #print(zz) #print(filename) except: print('Not found: Dir=' + path) txtfiles = fehler01 print(str(zz) + ' Permfiles gefunden') return txtfiles # Dateiliste zurückgeben (ist leer für ungültige und leere Pfade). def click_FillCombo(entry): fileliste = read_Directory(dirtext.get()) # ruft Dateiliste für aktuellen dirtext ab combo_1['values'] = fileliste # Die Combobox befüllen combo_1.current(0) def print_filename(): fn = dirtext.get() fn += "\\" fn += combo_1.get() # angeklickte Datei anhängen print(fn) # Anzahl der Perms wird angezeigt # Die Perm mit allem Drum und Dran in die Liste lines einlesen #---------------------------------------------------------------- file = open(fn) lines = file.readlines() print(str(len(lines)) + " Permlines gefunden.") file.close() # Die Listen perm und couplist füllen, dabei die Textzeilen aus lienes abtrennen #--------------------------------------------------------------------------------- x = 0 tx = 0 for each in lines: ti = lines[x].rstrip() # Escapes und Blanks herausnehmen try: i = int(ti) # print(i) perm.append(i) # der perm[]-Vektor wird gefüllt cp = roul.Coup() # eine neue Coup-Instanz # die Attribute aktualisieren cp.pl_nr = i cp.ec_SR = ChArten.ec_RS[i] cp.ec_GU = ChArten.ec_UG[i] cp.ec_MP = ChArten.ec_TH[i] # cp.dc_KO = ChArten.dc_col[i] # cp.dc_DU = ChArten.dc_duz[i] # cp.c6_TVS = ChArten.c6_tvs[i] # cp.c12_TVP = ChArten.c12_tvp[i] # ein paar Testausgaben # print(str(cp.pl_nr) + " " + str(cp.ec_SR) + " " + str(cp.ec_GU)) # nur Testanzeige couplist.append(cp) # die Couptabelle wird gefüllt except: tx += 1 # nichtnumerische Zeilen zählen # print("Textzeile:" + ti) x += 1 sizePerm = len(perm) # Anzahl der Permzahlen # Anzeige der Textzeilen und Permzahlen in label6 label6.configure(text=(str(tx) + " Textzeilen, " + str(sizePerm) + " Permzahlen")) def callback(entry): # universelle Ausgabe, als temporäre Debugfunktion print_filename() lastcoup = roul.Coup.counter print(str(lastcoup) + " Coup-Objekte angelegt") def entry1_return(event): try: i = int(entry1.get()) # if i<0 or i>36: print(i) perm.append(i) # der perm[]-Vektor wird gefüllt cp = roul.Coup() # eine neue Coup-Instanz # die aktuellen Attribute holen cp.pl_nr = i cp.ec_SR = ChArten.ec_RS[i] cp.ec_GU = ChArten.ec_UG[i] cp.ec_MP = ChArten.ec_TH[i] # ein paar Testausgaben print(str(cp.pl_nr) + " " + str(cp.ec_SR) + " " + str(cp.ec_GU)) # nur Testanzeige couplist.append(cp) # die Couptabelle wird gefüllt label6.configure(text=(str(len(perm)) + " Permzahlen")) # neue Perm-Anzahl anzeigen label7.configure(text=(str(i) + " angefügt")) # neue Permzahl anzeigen except: label7.configure(text=fehler03) def entry1_del(event): # entry_delete fand ich, lag zu nah an entry.delete, umbenannt entry1.delete(0, 'end') # Eingabefeld für Permzahlen entry1 = tk.Entry(win, width=6) #win, width=4, textvariable=PZahl) #entry1.bind('<Return>', on_change) entry1.bind("<Escape>", entry1_del) entry1.bind("<Return>", entry1_return) entry1.grid(column=1, row=3) entry1.focus() # Setze den Cursor in die Textbox # Eingabefeld für dirname name = tk.StringVar() dirtext = ttk.Entry(win, width=40, textvariable=name) dirtext.grid(column=2, row=4) dirtext.bind("<Return>", click_FillCombo) # Eine Combobox anlegen # Eine ComboBox hinzufügen combo_1 = ttk.Combobox(win, width=38, values=hinweis01) combo_1.grid(column=2, row=5) combo_1.current(0) combo_1.bind("<<ComboboxSelected>>", callback) # callback als Baustellenschild :) # Textfelder (Labels) hinzufügen #---------------------------------------------------- label1 = ttk.Label(win, text="Enter a Plein-Nr. & Return:") label1.grid(column=0, row=3) #label1.configure(text=fehler01) # 2 Überschriftszeilen label2 = ttk.Label(win, text="* User Interface für Roulette-Tests *") label2.grid(column=1, row=0) label3 = ttk.Label(win, text="*************************************") label3.grid(column=1, row=1) # Labels hinzufügen label4 = ttk.Label(win, text="Click on an entry:") label4.grid(column=1, row=5) # Labels hinzufügen label5 = ttk.Label(win, text="Permpool-Directory:") label5.grid(column=1, row=4) # Labels hinzufügen label6 = ttk.Label(win, width=100, text='Anzeigen') label6.grid(column=3, row=5) # Labels hinzufügen label7 = ttk.Label(win, width=42, text='Next Plein') label7.grid(column=2, row=3) # Buttons hinzufügen #-------------------------------------------------------- action1 = ttk.Button(win, text="Reset Perm", command='') action1.grid(column=1, row=2) #action1.configure(text="NO!") #action1.configure(text="NO!") # Einen 3. Button hinzufügen action2 = ttk.Button(win, text="Permtest von oben", command="") action2.grid(column=1, row=8) # Einen 3. Button hinzufügen action3 = ttk.Button(win, text="Permtest von unten", command="") action3.grid(column=1, row=10) # Einen 5. Button hinzufügen action4 = ttk.Button(win, text="Pooltest", command="") action4.grid(column=1, row=12) #================== # GUI-Start #================== win.mainloop() Gebraucht wird aus Ego's roulib01.py nur eine einzige Tabelle. Die steckt in roullib00.py: # -*- coding: utf-8 -*- """ Created on Thu Jul 12 20:40:55 2018 @author: Anwender """ # Ego's numerische Listen class ChancenArten(): pl_kessel = [0, 32, 15, 19, 4, 21, 2, 25, 17, 34, 6, 27, 13, 36, 11, 30, 8, 23, 10, 5, 24, 16, 33, 1, 20, 14, 31, 9, 22, 18, 29, 7, 28, 12, 35, 3, 26] pl_fach = [0, 23, 6, 35, 4, 19, 10, 31, 16, 27, 18, 14, 33, 12, 25, 2, 21, 8, 29, 3, 24, 5, 28, 17, 20, 7, 36, 11, 32, 30, 15, 26, 1, 22, 9, 34, 13] ec_RS = [0, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1] ec_TH = [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] ec_UG = [0, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1] dc_col = [0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3] dc_duz = [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3] c6_tvs = [0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6] c12_tvp = [0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 12] c9_car = [(0, 1, 2, 3), (1, 2, 4, 5), (2, 3, 5, 6), (4, 5, 7, 8), (5, 6, 8, 9), (7, 8, 10, 11), (8, 9, 11, 12), (10, 11, 13, 14), (11, 12, 14, 15), (13, 14, 16, 17), (14, 15, 17, 18), (16, 17, 19, 20), (17, 18, 20, 21), (19, 20, 22, 23), (20, 21, 23, 24), (22, 23, 25, 26), (23, 24, 26, 27), (25, 26, 28, 29), (26, 27, 29, 30), (28, 29, 31, 32), (29, 30, 32, 33), (31, 32, 34, 35), (32, 33, 35, 36)] c18_che = [(0, 1), (0, 2), (0, 3), (1, 2), (1, 4), (2, 3), (2, 5), (3, 6), (4, 5), (4, 7), (5, 6), (5, 8), (6, 9), (7, 8), (7, 10), (8, 9), (8, 11), (9, 12), (10, 11), (10, 13), (11, 12), (11, 14), (12, 15), (13, 14), (13, 16), (14, 15), (14, 17), (15, 18), (16, 17), (16, 19), (17, 18), (17, 20), (18, 21), (19, 20), (19, 22), (20, 21), (20, 23), (21, 24), (22, 23), (22, 25), (23, 24), (23, 26), (24, 27), (25, 26), (25, 28), (26, 27), (26, 29), (27, 30), (28, 29), (28, 31), (29, 30), (29, 32), (30, 33), (31, 32), (31, 34), (32, 33), (32, 35), (33, 36)] format_Farbe = ['\x1b[1;42;30m 0 \x1b[0m', '\x1b[1;41;37m 1 \x1b[0m', '\x1b[1;40;37m 2 \x1b[0m', '\x1b[1;41;37m 3 \x1b[0m', '\x1b[1;40;37m 4 \x1b[0m', '\x1b[1;41;37m 5 \x1b[0m', '\x1b[1;40;37m 6 \x1b[0m', '\x1b[1;41;37m 7 \x1b[0m', '\x1b[1;40;37m 8 \x1b[0m', '\x1b[1;41;37m 9 \x1b[0m', '\x1b[1;40;37m 10 \x1b[0m', '\x1b[1;40;37m 11 \x1b[0m', '\x1b[1;41;37m 12 \x1b[0m', '\x1b[1;40;37m 13 \x1b[0m', '\x1b[1;41;37m 14 \x1b[0m', '\x1b[1;40;37m 15 \x1b[0m', '\x1b[1;41;37m 16 \x1b[0m', '\x1b[1;40;37m 17 \x1b[0m', '\x1b[1;41;37m 18 \x1b[0m', '\x1b[1;41;37m 19 \x1b[0m', '\x1b[1;40;37m 20 \x1b[0m', '\x1b[1;41;37m 21 \x1b[0m', '\x1b[1;40;37m 22 \x1b[0m', '\x1b[1;41;37m 23 \x1b[0m', '\x1b[1;40;37m 24 \x1b[0m', '\x1b[1;41;37m 25 \x1b[0m', '\x1b[1;40;37m 26 \x1b[0m', '\x1b[1;41;37m 27 \x1b[0m', '\x1b[1;40;37m 28 \x1b[0m', '\x1b[1;40;37m 29 \x1b[0m', '\x1b[1;41;37m 30 \x1b[0m', '\x1b[1;40;37m 31 \x1b[0m', '\x1b[1;41;37m 32 \x1b[0m', '\x1b[1;40;37m 33 \x1b[0m', '\x1b[1;41;37m 34 \x1b[0m', '\x1b[1;40;37m 35 \x1b[0m', '\x1b[1;41;37m 36 \x1b[0m'] class Coup: counter = 0 def __init__(self): type(self).counter += 1 pl_nr = 0 ec_SR = 0 ec_GU = 0 ec_MP = 0 # dc_KO = 0 # dc_DU = 0 # c6_TVS = 0 # c12_TVP = 0 @classmethod def AnzahlCoups(): return Coup.counter pass Falls jemand das testen will, dann nach Run genau diese Reihenfolge beachten: - Zuerst einen Dir-Namen ohne Single-oder Doublequotes in das Directoryfeld kopieren und "Enter". - Danach in der Combobox scrollen und ein Entry anklicken. Die Perm ist dann in der Liste "perm" und etwas aufbereitet in der Liste "couplist" für die Verarbeitung bereit. Es gibt noch Macken: Der Button "ResetPerm" ist außer Funktion. Beim Anklicken eines 2., 3. etc. Entrys in der Combobox werden die Pleins addiert. Es gibt halt noch keine "ResetPerm"-Funktion. Albert Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
novice Geschrieben September 16, 2018 Share Geschrieben September 16, 2018 (bearbeitet) vor 1 Stunde schrieb Dr. Manque: Das probiere ich jetzt für ein "novice-analoges" Modell aus und messe die Arbeitszeit. Albert, dir fehlt dazu noch das hier: und wer mitdenken kann, sieht auch die anderen 3 Winner bearbeitet September 16, 2018 von novice Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Egoist Geschrieben September 16, 2018 Autor Share Geschrieben September 16, 2018 vor 1 Stunde schrieb Frenchy: Hallo Ego, bitte erläutere das mal im Detail. Für mich gilt bisher, dass eine 8er-Serie zu 1/256 erscheint... Gruss Frenchy Moin Frenchy, in 256 Coups werden je eine rote und eine schwarze 8er-Serie erwartet. Gruss vom Ego Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Egoist Geschrieben September 16, 2018 Autor Share Geschrieben September 16, 2018 vor 2 Stunden schrieb Dr. Manque: Da kann man für ein einzelnes Element im Parameter "width=..." eintragen was man will. Das Element selbst wird richtig bedient (Verbreiterung von width=6 auf width =60), aber es wirkt sich auf alle aus: Hallo Albert, Das ist fast wie bei Excel, denn dort richtet sich auch alles nach der breitesten Zelle. Was halt nicht geht, ist spaltenübergreifend Zellen zu vereinen. Wenn Du sowas willst, schaue Dir doch mal den "pack"-Manager an. https://www.python-kurs.eu/tkinter_layout_management.php vor 2 Stunden schrieb Dr. Manque: In der Vertikalen gibt es eine ähnliche Macke. Ich habe die row-Parameter für die Buttons "Permtest von oben", "Permtest von unten" und "Pooltest" so eingestellt, dass diese Buttons weiter unten gestreut erscheinen müssten. "Pustekuchen" sagt tkinter und knallt die Buttons immer untereinander. Sorry, aber das sind keine Macken, das hast Du so bestellt , wenn Du mit Gridlayout arbeitest. vor 1 Stunde schrieb Dr. Manque: Hier ist der Quelltext: vor 1 Stunde schrieb Dr. Manque: Gebraucht wird aus Ego's roulib01.py nur eine einzige Tabelle. Die steckt in roullib00.py: Ich finde es sehr schade, dass Du lieber Deine eigene (inkompatible) Moduldatei benutzen willst, ich musste deshalb alles zurückändern, ehe es lief. Deine Klasse "Coup" habe ich vorläufig an meine angehängt. vor 2 Stunden schrieb Dr. Manque: In Excel-VBA wäre das alles easy und transparent und - schnell zu machen. Das probiere ich jetzt für ein "novice-analoges" Modell aus und messe die Arbeitszeit. Wenn schon klar ist, dass Du den Gridmanager nicht nach Deinen Wünschen brauchen kannst, schau doch auch mal nach pyQT, da gibt es einen graphischen Designer, mit dem Du Deine Widgets einfach zusammenklicken kannst. vor 2 Stunden schrieb Dr. Manque: Wenn man bedenkt, was dieses Fenster noch zeigen muss: die Satzanweisungen, die Abrechnungen, gestaffelt nach Coup, Perm und Pool, und die Trefferverläufe, dann spüre ich richtig körperliche Bauchschmerzen. Aua, wie wäre es, wenn Du einen Prototypen Deines Gui in VBA machen würdest? So ein fertiges Fenster könnte man dann doch immernoch in Python übersetzen. Gruss vom Ego Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
sachse Geschrieben September 16, 2018 Share Geschrieben September 16, 2018 vor 46 Minuten schrieb novice: Albert, dir fehlt dazu noch das hier: und wer mitdenken kann, sieht auch die anderen 3 Winner Ich sehe zwar kein Schaf mehr aber wenn es da mal stand, dann war es sicherlich SHAUN das Schaf. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
novice Geschrieben September 16, 2018 Share Geschrieben September 16, 2018 (bearbeitet) genau. du weißt ja, ich habs nicht so mit der grammatik bearbeitet September 16, 2018 von novice Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
sachse Geschrieben September 16, 2018 Share Geschrieben September 16, 2018 vor 15 Minuten schrieb novice: genau. du weißt ja, ich habs nicht so mit der grammatik Kein Problem, denn es war nicht die Grammatik sondern die Orthografie. Denglisch ist für Leute aus deinem Dunstkreis auch wesentlich wichtiger . Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Wie ist deine Meinung dazu?
Du kannst jetzt schreiben und dich später registrieren. Bereits registrierter Teilnehmer? Dann melde dich jetzt an, um einen Kommentar zu schreiben.
Hinweis: Dein Beitrag wird nicht sofort sichtbar sein.