Jump to content

Recommended Posts

Geschrieben (bearbeitet)

Hallo Forscher!

 

Soweit ich bisher den Stand der Technik richtig erfasst habe, programmieren hier alle unter Excel, wenn sie schon eine Weile dabei sind.

Es hat sich in der Welt da draussen aber inzwischen eine Menge getan!

 

Alle Leute, die heute etwas auf sich zählen, kennen zumindest Python, oder nutzen bereits die eleganten Möglichkeiten dieser Sprache.

Ich will da nicht länger tatenlos zusehen und arbeite mich jetzt in das Fachgebiet ein.

 

Hat hier sonst noch jemand das Gefühl abgekoppelt zu sein?

Lasst es uns angehen...

 

 

Gruss vom Ego

bearbeitet von Egoist

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Geschrieben (bearbeitet)

Nun, da mach ich mit!

 

Dolomon

bearbeitet von dolomon

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Geschrieben (bearbeitet)

Hallo Ego,

 

abgekoppelt in gewissem Sinne schon, Excel reicht einfach nicht mehr.

Am Anfang war das easy in Excel rein zu kommen, die ganzen starren Spielphantasien da reinzutippen.

Heute reicht es mir nicht mehr.

 

Vor 10 Jahren versuchte ich mal in VBA rein zu kommen, und war mit den Büchern hoffnungslos überfordert, ließ es sausen.

Bis dahin hatte ich nur Erfahrungen in Basic auf nem Amiga.

 

Die Schnelligkeit, mit der du hier Pyhton umgesetzt hast, hat mich sehr erstaunt.

Eine deutliche Neugier habe ich dadurch.

Die Hauptfrage ist dann immer, wo/womit fange ich an, um auch einen motivierenden Start zu haben...

 

Grüße

Feuerstein

 

 

bearbeitet von Feuerstein

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Ja, so eine gewisse "Anleitung"  einen " Schubs" den brauchte ich auch. Sage mir was für eine Lektüre ich brauche!

Dolo

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hallo Mitstreiter!

 

Als erste Massnahme sind die notwendigen Dateien zu installieren.

Das wäre zunächst einmal Python selbst und zwar in der Version 3.6.

Mit der 64bit Version für Windows kann es beim nachrüsten mit weiteren (wichtigen) Biblioteken zu Problemen bei der Installation kommen, daher im Zweifelsfall die 32bit Version versuchen.

 

Dann braucht man einen Texteditor, mit dem man auch gut klarkommen sollte.

Mit IDLE bringt Python schon eine rudimentäre Entwicklungsumgebung mit.

Wer keine englischen Videos versteht, kann sich mal folgenden Clip geben:

https://www.youtube.com/watch?v=lUDM93YQwsQ

 

Diese Reihe geht dann auch die Grundzüge von Python (recht verschult) durch.

Youtube bietet tausende Clips zu allen Möglichkeiten bis hin zur KI uvm. allerdings vor allem auf englisch.

 

Eine sehr gute Entwicklungsumgebung bietet das kostenfreie "PyCharm"

Vor allen Dingen klappt das mit der Installation der Bibliotheken auch mit der 64bit Version reibungslos und komfortabel.

 

Ein etwas ungelenkes, weil vermutlich ohne Plan erzeugtes Video zu PyCharm gibt es auf deutsch hier:

https://www.youtube.com/watch?v=laKR56zgOpg

 

Wenn Ihr einen richtig fähigen Pythonprogrammierer sehen wollt, schaut Euch mal die Videos von "sentdex" (english) an.

Hier ein etwas älteres  Tutorial zu den Basics :

https://www.youtube.com/watch?v=UsCQXe1OHZk&list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M&index=3

 

Wenn Ihr Python installiert habt, kann es auch bald losgehen...

 

 

Gruss vom Ego

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 9 Stunden schrieb novice:

 

Hallo novice,

 

Danke für den schönen Link!

 

Unter dem Reiter "numerisches Python" wird auf die beiden für uns wichtigsten Bibliotheken (Libraries)

"numpy"  und  "matplotlib" hingewiesen. Die werden wir baldmöglichst zum Einsatz bringen.

 

 

Gruss vom Ego

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Geschrieben (bearbeitet)

Ich habe mir installiert:

 

ANACONDOR mit spider als editor

 

MAIN.png

EDITOR.png

bearbeitet von novice

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

@Egoist , bitte noch eben Geduld. Ich bin noch nicht so weit.  Ich habe mehrere Möglichkeiten zu Installieren.  AUF EINE LINUX Maschine, windows 7, windows 10 ! Was würdest du bevorzugen? Ein Nachteil noch von mir........, ich kann kein Englisch, höchstens rudimentäre Begriffe. Das was ich im Endeffekt damit machen möchte ist,  mein Invers-Spiel zu programmieren das es  womöglich auch noch auf Android läuft.  ( mit eurer Hilfe )!

Vielen Dank

Dolomon

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 4 Stunden schrieb dolomon:

@Egoist , bitte noch eben Geduld. Ich bin noch nicht so weit.  Ich habe mehrere Möglichkeiten zu Installieren.  AUF EINE LINUX Maschine, windows 7, windows 10 ! Was würdest du bevorzugen?

 

Das ist doch egal, mach auf allen und arbeite auf der Maschine, mit der besten Tastatur und dem grössten Bildschirm.

 

vor 4 Stunden schrieb dolomon:

 

Ein Nachteil noch von mir........, ich kann kein Englisch, höchstens rudimentäre Begriffe.

 

Das ist sehr schade, vielleicht lernst Du erst einmal Englisch?

 

vor 4 Stunden schrieb dolomon:

Das was ich im Endeffekt damit machen möchte ist,  mein Invers-Spiel zu programmieren das es  womöglich auch noch auf Android läuft.  ( mit eurer Hilfe )!

 

Nana, mal langsam und kleinere Brötchen backen, Du kannst in einer neuen Sprache auch nicht gleich schöne Gedichte verfassen.

 

 

Gruss vom Ego

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 8 Stunden schrieb novice:

Ich habe mir installiert:

 

Dann bist Du sicherlich voll ausgerüstet. Gebraucht werden zunächst numpy und matplotlib.

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Geschrieben (bearbeitet)

Damit mal was vorangeht poste ich eine kommentierte Version eines kleinen Programms:

 

#Eine Pythondatei ist eine normale und menschenlesbare Testdatei,
# sie bekommt die Dateiendung .py

#Zu Beginn werden die Pakete importiert, welche zusätzliche Funktionalität einbringen

import numpy as np
import matplotlib.pyplot as plt
#Das "as" ist optional und erlaubt es in Zukunft z.B. "np" synonym zu "numpy" zu benutzen.

#Alle Zeilen, die mit "#" beginnen sind nur Kommentare und werden bei der Ausführung übersprungen.

# Es werden 37 Zufallszahlen im Bereich von 0 bis 36 ermittelt
neuePerm = np.random.random_integers(0,36,size=37)

#so wirft man sie auf den Schirm
print("Unsere Rotation ergab folgende Zahlen:\n",neuePerm)
#Es wird eine festgelegte Zeichenkette zwischen den "" ausgegeben und danach die kommaseparierte Variable (Liste)

#die Methode bincount zählt alle 37 Zahlen durch
bc  = np.bincount(neuePerm , minlength=37)
#Nun haben wir alle Treffer sortiert nach Vorkommen 0x, 1x, 2x usw in bc 
#das Ergebnis ist eine Tabelle in der die Treffer auf Zero zuerst stehen,
# gefolgt von den Treffern auf 1 ... 36
print("\nDas ergibt folgendes Trefferbild:\n",bc)

#Wenn "\n" in den Zeichenketten auftaucht, ist das ein Zeilenumbruch

# Graphisch ausgeben als Histogramm
#Erkärung folgt bei Bedarf
plt.hist(bc, color='r')
plt.hist(neuePerm,bins=73, color="g" , alpha=0.4)
plt.show()

 

Natürlich habe ich auch einen Fehler eingebaut, den ich aber in dem Fenster oben nicht mehr verschlimmbessern kann.

Laufen sollte das Programm aber trotzdem fehlerfrei, wenn alle Pakete richtig vorinstalliert wurden.

 

 

Nur Mut!

Es lohnt sich Python zu lernen!

 

 

Gruss vom Ego

 

Edit: Was im Code als Testdatei bezeichnet wurde, muss natürlich Textdatei heissen.

bearbeitet von Egoist

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Geschrieben (bearbeitet)

Damit dürfte auch die Warningmessage korr. sein:

 

neuePerm = np.random.randint(0,36+1,size=37)

bearbeitet von novice

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 9 Stunden schrieb Egoist:

Damit mal was vorangeht poste ich eine kommentierte Version eines kleinen Programms:

 

Nur Mut!

Es lohnt sich Python zu lernen!

 

Gruss vom Ego

 

Bhoh Ego,

 

das ist mal ein Anfang für Dummies, finde ich großartig!!!

Dankeschöön!

 

Nicht das ich das jetzt nachmachen könnte, Zeit gibt´s grad nicht, aber das ist hier ja auch we ein Notizbuch und immer verfüg- oder nachschlagbar ;-)

 

Grüße

Feuerstein

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 12 Stunden schrieb novice:

neuePerm = np.random.randint(0,36+1,size=37)

 

Stimmt, das ist die neue Version der abgekündigten Funktion, die ich noch benutzt habe.

Bei der neuen Funktion ist das letzte Element nicht mehr enthalten, daher ist 36+1 zu verwenden.

 

Das hast Du sehr schön gemacht @novice

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Damit es wieder ein wenig Anschub für Euch gibt, kümmern wir uns heute um die EC Rot-Schwarz

 

Das ist die bestbeachteste einfache Chance, aber die Zahlen lassen sich nicht einfach berechnen,

Rot und Schwarz wurden willkürlich auf dem Filz verteilt, ebenso wie die Zahlenfolge im Kessel.

Denn von dieser Kesselfolge hängen die Farben unmittelbar ab.

 

Da man die Kesselfolge später noch für viele andere Dinge brauchen kann, hacken wir sie einfach mal ein.

 

import numpy as np
import time

roulKessel = [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]
roulRot = np.zeros(18)
roulSchwarz = np.zeros(18)
roulFarbe = np.zeros(37)

Die beiden import-zeilen sollten von der Bedeutung schon bekannt sein.

Neu ist zwar das Modul time, aber das brauchen wir erst später im s_cript.

 

roulKessel definiert die Liste aller Kesselzahlen beginnend mit Zero und zwar im Uhrzeigersinn.

Darunter werden 3 leere numpyarrays definiert, die gleich gefüllt werden sollen.

roulRot soll alle roten Zahlen enthalten, roulSchwarz alle schwarzen.

roulFarbe ist ein Array, welches mit 0 (für Grün) für Zero an Position 0 befüllt werden soll,

an Position 1 mit +1 für Rot und mit -1 für schwarz an Position 2 usw...

 

Position 0 ist die Zero und erhält in roulFarbe[0] eine 0

Position 32 ist die rechts neben der Zero, sie ist eine rote Zahl, also wird in roulRot[0] eine 32 vermerkt.

Da sich rote und schwarze Zahlen im Kessel abwechseln, kann man das auch berechnen.

 

Vorher kommt noch ein Teil, den ich noch nicht erkläre:

pRot ="\033[1;41;37m"
pGrün ="\033[0;42;30m"
pSchwarz ="\033[0;40;37m"
pNorm ="\033[0m"
pFarbe =[pSchwarz, pGrün, pRot]
pZahl = []

Dieser Schnipsel ist in der Tat etwas abwegig, er wird auch erst später eingesetzt.

Einfach einkopieren und später nachfragen.

 

Nun kommt die Zuordnung der Farben, abgeleitet von der Kesselposition.:

for x in range(0, 18):
    roulRot[x] = roulKessel[x*2+1]
    roulSchwarz[x] = roulKessel[x*2+2]

Das kann man vielleicht auch eleganter lösen, aber ich bin blutiger Anfänger.

x läuft in einer Schleife von 0...17 (die Endbedingung=18 ist immer exklusiv in Python).

 

Nun werden sowohl roulRot, als auch roulSchwarz mit den Kesselzahlen befüllt, die ihre Farbe haben.

Durch die Multiplikation mit 2 hüpft x in 2er Schritten durch den Kessel und sammelt alle roten Zahlen ein.

Die passende schwarze Zahl wird immer rechts daneben (+2 statt +1 in der Formel) eingesammelt.

 

Jetzt wird das Farbarray befüllt, damit man später damit arbeiten kann.

 

for x in range(0, 37):
    if x in roulRot:
        roulFarbe[x]=1
    elif x in roulSchwarz:
        roulFarbe[x]=-1
    else:
        roulFarbe[x]=0

 

Fallunterscheidungen hatten wir noch nicht besprochen.

Vorgeschädigte aus Excel kennen diese unter dem Begriff WENN("bla";"Blubb";"42")

Hier in Python nennt sich das schlicht "if" , gefolgt von der Bedingung (im ExcelTeil "bla").

Was "for" macht, bitte ich inständig selbst zu ermitteln, soviel geben auch deutsche Youtubevideos locker her.

Hier läuft also x durch 37 Zustände von 0...36,

Dann wird nachgesehen, ob es eine rote Zahl ist und wird wenn ja, in roulFarbe als+1 eingetragen.

Andernfalls wird nachgesehen, ob es eine schwarze Zahl ist, falls ja, erhält roulFarbe dort eine -1.

Nur bei Zero taucht x nicht in den Farben auf und roulFarbe erhält eine 0 an der Stelle (0).

 

Zur Kontrolle werfen wir nun roulFarbe aus.

 

for x in range(0,37):
    if x<10:
        temp = pFarbe[int(roulFarbe[x])+1]+"  "+str(x)+" "+pNorm
    else:
        temp = pFarbe[int(roulFarbe[x]) + 1] +" "+ str(x) + " " + pNorm
    print(temp, end="")
    pZahl.append(temp)
print()

Auch hier wird ein Schleife (for loop) für x durchlaufen, die die Zustände von 0 bis 36 einnimmt.

Die Fallunterscheidung hier beguckt, ob wir es mit einer 1 oder 2stelligen Zahl zu tun haben.

Alle einstelligen Zahlen bekommen eine Leerstelle (Space) mehr, als die 2 stelligen, damit die Textausgaben gleichlang werden.

Der resultierenden Zeichenkette "Leerzeichen+optionales Leerzeichen+Zahl+Leerzeichen",

werden zwei vorbestimmte Zeichenketten (s.o.) voran, bzw nachgestellt.

Diese stellen nur die Farben für die Textausgabe auf der Konsole um und nach der Ausgabe wieder zurück.

 

Es sollte bei Euch eine abgerollte Kesselfolge auf dem Schirm, farblich korrekt erscheinen, sonst habe ich wieder einen Fehler eingebaut.

 

 

Gruss vom Ego

 

 

 

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Geschrieben (bearbeitet)

Alles Ok :)

 

is_ok.png.73544fb78b3d1e041ff398411a533929.png

bearbeitet von novice

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Geschrieben (bearbeitet)

Da in den letzten Monaten die Sprache in der ich meine Roulette-Apps schrieb in die digitale Wüste, nach etwa fünfjährigen Bestehen, geschickt wurde bin ich sowieso auf der Suche nach geeignetem Ersatz. Tja, und für meine Bedürfnisse sind sowieso zwei Sprachen nötig.

 Python hat ja schon weit mehr Jahre auf dem Buckel, wird somit auch nicht so schnell verschwinden.

 

Kleine Anmerkung an dolomon:
Mein Hauptaugenmerk liegt auf die kleinen handlichen Rechner genannt Smartphones. Stets dabei für den praktischen Einsatz. Ist mir schon klar, dafür ist es nicht die Ideallösung, beim Äpfelchen fast  unbrauchbar, aber als Zweitsprache sollte es schon reichen. Bei Smartphones gibt es die Möglichkeit sich auf ein Betriebssystem zu spezialisieren, oder sich mit Java, C++ und Swift gleichzeitig anzufreunden, sollte man den jeweiligen Vorgaben folgen, oda ma pfeift drauf und macht s  ganz anders.

 

Laien wie mir, denen auch schon mal die Orientierungslosigkeit eines Pointers zur Last gelegt wurde, dabei was i net amoi wer des is da Herr Pointer, sind ja schon mit viel weniger zufrieden - Hauptsache einfach.

 

@Egoist
Der Gedanke die Arbeit für ein paar Roulette spezifische Bibliotheken aufzuteilen ist bestechend logisch, und ich werde demnächst einsteigen.

 

bearbeitet von wiensschlechtester

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor einer Stunde schrieb wiensschlechtester:

@Egoist
Der Gedanke die Arbeit für ein paar Roulette spezifische Bibliotheken aufzuteilen ist bestechend logisch, und ich werde demnächst einsteigen.

 

 

Moin Wiener,

 

es freut mich sehr, wenn Du hier mitmachen willst, denn an überquellendem Interesse leidet der Thread bisher nicht ;)

 

Ich habe keine Ahnung, wie Du seit 5 Jahren Androiden programmiert hast, aber da kann ich Dich auch trösten.

Ohne mich bisher sehr dafür interessiert zu haben, lief mir dazu ein "Kivy" über den Weg.

Soweit ich das verstanden habe, ist das eine Bibliotek, die Python-Anwendungen für Smartphones kompatibel hält und anschliessend .apk sowie das Pendant für Apfelprodukte kompilieren kann.

 

Da Du sicherlich englisch zumindest verstehen kannst, guckst Du hier:

https://www.youtube.com/watch?v=CYNWK2GpwgA&amp;list=PLQVvvaa0QuDe_l6XiJ40yGTEqIKugAdTy

 

 

 

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 16 Stunden schrieb novice:

Alles Ok :)

 

is_ok.png.73544fb78b3d1e041ff398411a533929.png

 

Hallo @novice,

 

ganz so ok scheint es noch nicht zu sein, die schwarzen Zahlen sehen noch etwas schlapp aus, weil ich vergessen hatte, sie fett auszugeben.

 

Ausserdem habe ich inzwischen entdeckt, dass mir PyCharm so allerhand Verbesserungen anempfohlen hat,

das aber sehr dezent, so dass man es nicht sofort merkt.

 

Der Variablenname "pGrün" z.B., enthält ein Sonderzeichen, das ist unschön und ich habe es korrigiert (ist nun pGruen).

 

Du scheinst schon gut in das Thema eingestiegen zu sein, mit Anaconda hast Du auf alle Fälle die umfangreichere Umgebung wie ich.

Vielleicht hast Du ja schon Ideen, wie wir uns weiter entwickeln können, oder was Du gern programmiert hättest.

Als einsamer Vorturner, vergeht mir bestimmt rasch die Lust.

 

 

Gruss vom Ego

 

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Heute der vorerst letzte Teaser, weil ich mehr Videos angeschaut habe, als selbst etwas zu schreiben.

 

Dieses Mal sind die Kommentare auch wieder im Code, denn ich finde es nicht gut, Code und Kommentare zu trennen.

Der Quellcode quillt zusehens ;)

80 Zeilen sind zwar noch nicht die Welt, zumal kommentiert wurde, aber mehr sollte es dann auch nicht werden.

import numpy as np
import time
from typing import TextIO

roulKessel = [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]
roulRot = np.zeros(18)
roulSchwarz = np.zeros(18)
roulFarbe = np.zeros(37)
pRot = "\033[1;41;37m"
pGruen = "\033[1;42;30m"
pSchwarz = "\033[1;40;37m"
pNorm = "\033[0m"
pFarbe = [pSchwarz, pGruen, pRot]
pZahl = []

for x in range(0, 18):
    roulRot[x] = roulKessel[x * 2 + 1]
    roulSchwarz[x] = roulKessel[x * 2 + 2]
for x in range(0, 37):
    if x in roulRot:
        roulFarbe[x] = 1
    elif x in roulSchwarz:
        roulFarbe[x] = -1
    else:
        roulFarbe[x] = 0

for x in range(0, 37):
    if x < 10:
        temp = pFarbe[int(roulFarbe[x]) + 1] + "  " + str(x) + " " + pNorm
    else:
        temp = pFarbe[int(roulFarbe[x]) + 1] + " " + str(x) + " " + pNorm
    print(temp, end="")
    pZahl.append(temp)
print()

start = time.time()  # speichert den aktuellen Zeitpunkt in start
rotationen = 100000  # Bei 16GB nicht höher als 20Mio gehen, sonst swap oder MemoryError
neuePerm = np.random.randint(0, 37, size=rotationen * 37)
print(neuePerm)  # wird glücklicherweise nicht voll ausgeführt

# in der nächsten Zeile wir start von der aktuellen Zeit wieder abgezogen
print("Ziehung von", neuePerm.size, "Coups dauerte:", time.time() - start, "Sekunden")
bal = 0  # speichert die Balance von Rot und Schwarz, negative Werte für Schwarzüberschuss
nul = 0  # zählt die Nullstellen mit
min = 0  # hier wird immer das tiefste Minus (also der grösste Schwarzüberschuss) festgehalten.
max = 0  # hier das gleiche für Pluswerte (Rotüberschuss)

for x in range(neuePerm.size):  # x läuft von 0 bis Permanenzende
    bal = bal + roulFarbe[neuePerm[x]]  # neuePerm[x] ist die xte Ziehung (Start immer bei 0)
    if bal == 0:  # Hier ist eine Nullstelle gefunden
        nul = nul + 1  # sie wird nummeriert (startet bei 1.) und dann ausgegeben:
        print(str(nul) + ". Nullstelle bei Coup", x, "Zwischenstand:", int(bal),
              "Min:", int(min), "Max:", int(max))
    if min > bal:  # neues Minimum gefunden
        min = bal  # wird festgehalten
    if max < bal:  # neues Maximum gefunden
        max = bal  # und festhalten
# Schleifenende wenn nicht mehr eingerückt wird
# Bitte das wichtige Thema der Einrückung in Python nachlesen!

# Finale Ausgabe nach dem letzten Coup
# hier wird eine neue Möglichkeit genutzt Strings (Zeichenketten) in Python zu formatieren.
# die Methode format füllt an den numerierten Platzhaltern {x} den jeweils xten Parameter ein
# es wird erst ein temporärer String (temp) erzeugt, da die Ausgabe 2x erfolgen wird
temp = "{0} Nullstellen bei Coup {1} Endstand:{2}  Min:{3} Max:{4}  Dauer: {5}sec".format(str(nul),
                                                                                          str(neuePerm.size),
                                                                                          str(int(bal)),
                                                                                          str(int(min)),
                                                                                          str(int(max)),
                                                                                          str(time.time() - start))
print(temp)  #hier die Ausgabe auf der Konsole

# Zusätzlich wird die finale Ausgabe an eine Textdatei angehängt
# damit man später die Ergebnisse mehrerer Durchläufe vergleichen kann.
# Man sorge dafür, dass auf Laufwerk D: ein Verzeichnis namens temp exsistiert
# oder der Pfad muss vorher geändert werden.
f: TextIO = open("D:\\temp\\test" + str(neuePerm.size) + ".txt", "a") #öffnet zum anhängen "a"
f.write(temp + "\n")  #schreibt in die Datei und beendet mit Zeilenende
f.close()  # schliesst die Datei wieder, das ist wichtig.

Bitte nicht stumpf kopieren und speichern/starten, denn in den Kommentaren steht was über den erforderlichen Pfad,

ohne den nix geht.

 

 

Gruss vom Ego

 

p.s.: Es ist sehr vom verfügbaren Hauptspeicher abhängig, wie gross man die Permanenz wählen darf.

Spätestens bei 25Mio Rotationen machte mein Lappy die Backen dick und das ist immerhin ein I7 mit 16GB und 4GB NVidia GraKa.

Unter Umständen friert der komplette Rechner ein (ganz im Gegenteil, weil er heiss laufen wird) und wird unbenutzbar,

bis Python das Programm abbricht, oder Du killst es selbst...

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Geschrieben (bearbeitet)

Als nächstes, würde ich vorschlagen, kümmern wir uns mal um Funktionsdefinitionen und Klassen.

Dann wird es wirklich langsam produktiv.

 

Ausserdem könnte man damit beginnen, fertige Codeteile in einer Bibliothek zu konservieren,

was nachfolgenden Code wieder schlank und rank machen wird.

 

Mal als Beispiel anhand von der Klasse Coup:

  • Wir definieren einen Coup, der hat verschiedene Eigenschaften
  • Die rote oder schwarze bzw grüne Farbe zum Beispiel ist abhängig von der Zahl, die gezogen wurde.
  • Es gibt aber noch die beiden anderen EC, wer mitarbeitet, sollte diese schon passend programmieren können.
  • Der Coup hat aber noch viele andere Eigenschaften, wie Dutzend, Kolonne, TVS, TVP,  Carre, Kesselsektor usw...
  • Ausserdem gibt es noch historische Daten, die man nicht vergessen sollte, z.B. das letzte Auftreten der Plein

 

Dann brauchen wir die Klasse Permanenz:

  • Die kann Eigenschaften speichern, wie Ziehungsort und Zeit
  • dann hortet sie eine Liste von Coups
  • und sie kann abhängig von der Zeit, oder der Coupnummer, eine Statistik erstellen
  • uvm...

 

Es gibt viel zu packen, tun wir es an...

bearbeitet von Egoist

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 1 Stunde schrieb Egoist:

 

Moin Wiener,

 

es freut mich sehr, wenn Du hier mitmachen willst, denn an überquellendem Interesse leidet der Thread bisher nicht ;)

 

Ich habe keine Ahnung, wie Du seit 5 Jahren Androiden programmiert hast, aber da kann ich Dich auch trösten.

Ohne mich bisher sehr dafür interessiert zu haben, lief mir dazu ein "Kivy" über den Weg.

Soweit ich das verstanden habe, ist das eine Bibliotek, die Python-Anwendungen für Smartphones kompatibel hält und anschliessend .apk sowie das Pendant für Apfelprodukte kompilieren kann.

 

Da Du sicherlich englisch zumindest verstehen kannst, guckst Du hier:

https://www.youtube.com/watch?v=CYNWK2GpwgA&amp;list=PLQVvvaa0QuDe_l6XiJ40yGTEqIKugAdTy

 

 

 

 

Moin Nichtwiener,

 

also ich hatte anfänglich auch mit windowsphones zu tun, daher auch ein kurzfristiger Softwarewechsel, danach war mir das Betriebssystem ziemlich egal.

Danke für die Info, Kivy scheint sehr beliebt zu sein, bin schon vorher darüber gestolpert, doch das Thema mobile devices sollten wir auf später verschieben, wenn noch Interesse herrscht.

 

Servus

 

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 24 Minuten schrieb wiensschlechtester:

das Thema mobile devices sollten wir auf später verschieben, wenn noch Interesse herrscht.

 

Jo, es besteht.

 

Momentan kämpfe ich mit mir, ob ich mir das S8 Note holen soll.

Seit Jahren besitze ich das Note 8.0, welches mir immer Freude bereitet hat,

bis der Akku eingeknickt ist.

 

Nach einer Operation war aber der Akkutausch auch gegessen und es rennt wie neu,

auch nach Bauchklatscher auf den Badezimmerfliesen...

 

Auf alle Fälle steht die Auslagerung von Klassen weit vorne auf der ToDo-Liste.

 

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden

×