Archive for the 'Programmieren' Category

[III] The Game Of Life

Irgendwie geht mir das nicht aus dem Kopf. Jetzt war mit Python zu langsam und ich habe mich seit meinem letzten Eintrag mit C++ beschäftigt. Zumindest was die Geschwindigkeit angeht, kann ich mich jetzt überhaupt nicht mehr beschweren. ;-)

Ich habe Borlands / Codegears Turbo C++ verwendet. Die grafische Oberfläche ist demnach auch mit der VCL gemacht. Irgendwie bereue ich diesen Schritt. Ich muss euch jetzt leider 2 DLLs mitliefern. Das gesamte Paket ist 1,38MB groß. ZIP-gepackt zum Glück nur noch 625kB. Ich werde wohl irgendwann mal eine andere Oberfläche benutzen. Kann doch nicht sein, dass ich für so ein bisschen Code gleich 1,38MB brauche.

Naja, mal zu den Dingen die das Teil momentan kann. Man kann das Spielfeld in Größe und Anzeige bearbeiten. Außerdem (im Gegensatz zur alten Konsolen Version) kann man die Felder des Spielfelds durch einfache Links- und Rechtsklicks bearbeiten. Man hat sogar die Möglichkeit das Spielfeld in eine Datei abzuspeichern und natürlich auch wieder zu laden. Außerdem sind noch ein paar Extras dabei, die einem die Bedienung erleichtern. Den Source-Code werde ich später einmal veröffentlichen.

Ihr könnt euch das Programm ja gerne mal anschauen. Ich denke ich werde daran noch weiter arbeiten, denn irgendwie macht mir das Spaß. ;-) Besonders das erwähnte Thema mit der Oberfläche will ich noch ändern. Vielleicht hinterlässt der ein oder andere ja mal ein wenig Kritik in Form eines Kommentars hier. Download:

zip The Game Of Life (625.18 KB, zip)

[II] The Game Of Life

So, ich habe das Ding jetzt von der Geschwindigkeit etwa verdreifacht. Außerdem noch ein wenig aufgeräumt und den Debug-Code entfernt. Noch ein paar Kommentare und eine Priese Dokumentation dazu und fertig ist’s. Wer sich mein Game Of Life gerne mal anschauen möchte hat hiermit die Gelegenheit. Downloadlink.  Oder einfach auf “more” klicken. Read more »

The Game Of Life

Heute bin ich auf das “Game Of Life” gestoßen. Auf den ersten Blick langweilig, ist das eigentlich eine total lustige Spielerei. Das Spiel hat ganz einfache Regeln. Es ist aufgebaut wie eine Art Schachfeld. Also ein 2-dimensionales Array. Jedes dieser Felder kann entweder tot oder lebendig sein. Tote und lebendige Felder unterscheidet man ganz einfach durch ihr aussehen. Nun verändert sich bei jedem Durchgang (Generation genannt) das Spielfeld mit Hilfe von ganz einfachen Regeln. Hat eine tote zelle genau 3 lebende Nachbarn, so wird das tote zu einem lebendem Feld. Hat eine lebende Zelle weniger als 2 lebende Nachbarn, so stirbt sie. Hat eine lebende Zelle genau 2 oder 3 Nachbarn bleibt sie lebendig. Hat eine lebende Zelle mehr als 3 lebende Nachbarn, so stirbt sie.

Nun kann man bei diesem Spiel sehr lustige Figuren beobachten, wenn man einfach mal einige beliebige (möglichst nah beieinander liegende) Zellen belebt. So können dabei Animationen entstehen und so lange weitergehen, bis alle Zellen wieder tot sind. Es kann aber auch passieren, dass das ganze in ein totales Chaos verfällt und selbst mach 1000en von Generationen immer noch alles drunter und drüber geht.

Aus reiner Langeweile und aus Interesse wie leicht sowas denn zu programmieren sei, habe ich mal mein eigenes Game of Life programmiert. Es ist in Python geschrieben und gibt seine Zellen bisher leider nur über die Konsole aus. Dazu ist es momentan auch noch sehr langsam, kann also bei mir nur so ca. 88 Generationen in 5 Sekunden berechnen. Ich werde es die nächsten Tage mal ein wenig optmimieren und dann auch hier mal reinstellen. Jetzt erstmal ein wenig ASCII-Art.

                    XX                              X              X      XX
                   X  X                            X X            X X   X XX
                    XX                             XX             X X  XXXXX
                                                                   X       X X
                                        XX                                 X  X
                                       X  X                                 XX
                                        XX
                                    XX                X
                    X               X X              X X
                    X               X                 XX                  XXX
                    X                                                    X   X
                                                            XX  XXXXX    X   X
                                                              XXX    X   X   X
                                                                XX XX     XXX
                                                            X     XX
                                                             X   XX
                             XX       XX                      X   X
                             XX       XX

Python: mod_cband Scoreboard lesen

So, jetzt habe ich es endlich geschafft. *g* Ich wollte mit Python ein Scoreboard des Apache-Moduls mod_cband auslesen. Nach etlicher Sucherei und intensiver Einarbeitung in die mod_cband Source habe ich hier folgende Lösung zu präsentieren:

  1. #!/usr/bin/python
  2.  
  3. import struct
  4.  
  5. f = file("my_scoreboard_file", "rb")
  6. st = struct.unpack("4QLli", f.read())
  7. f.close()
  8.  
  9. scoreboard = {
  10.   "total_bytes": st[0],
  11.   "class_bytes": ( st[1], st[2], st[3] ),
  12.   "start_time": st[4],
  13.   "score_flush_count": st[5],
  14.   "was_request": st[6]
  15. }
  16.  
  17. print scoreboard

Ich hoffe jemanden damit geholfen zu haben. :-)

« Previous Page