Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Lets play...
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 03.09.2008, 16:16    Titel: Lets play... Antworten mit Zitat

Hier ein lustiger Quältext lächeln

http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=708

Vielleicht weiss ja jemand wie man das alles noch ein wenig beschleunigen kann.. oder ob man noch was interessantes hinzufügen könnte. Ich programmier gerne solche Spielplätze zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 03.09.2008, 19:38    Titel: Antworten mit Zitat

hast du die UDTs extra als PTR gedimmt? warum nicht einfach ganz normal den UDT benutzen?
und was RGB(0,255,0) und RGB(255,0,0) angeht, da kannste ne menge zeit sparen wenn du const color_green = rgb(0,255,0) usw machst
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 03.09.2008, 19:54    Titel: Antworten mit Zitat

Deine "Ameisen" haben eine seltsame Vorliebe für 45°-Winkel. Das riecht nach Integerdivision, wo eigentlich eine Fliesskommadivision hingehört hätte.


Nur so nebenbei: Das Programm liesse sich noch (ein Bisschen) optimieren, wenn aus den Funktionen red(), blue(), gree() "inline" Funktionen würden.

Lutz böse Ifer
_________________
Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 03.09.2008, 20:15    Titel: Antworten mit Zitat

und i-was mit der mausprüfung is faul... der macht sehr viel schneller wenn die maus nicht im fenster is...

@Lutz:
statt :
Code:

        tx = int((rnd *3) -1)   '... Schauen wir mal wo man so hintreten kann
        ty = int((rnd *3) -1)   'Einfach mal auf gut Glück

nimm:
Code:

        tx = (rnd *2) -1   '... Schauen wir mal wo man so hintreten kann
        ty = (rnd *2) -1   'Einfach mal auf gut Glück

_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 03.09.2008, 20:40    Titel: Antworten mit Zitat

@The_Muh: Ja das hab ich auch später gesehen. So siehts schon viel besser aus lächeln ... Vielen Dank für die Tipps! Werd das ganze aber noch etwas ausarbeiten lächeln wenn noch anregungen da sind, immer her damit zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 03.09.2008, 20:42    Titel: Antworten mit Zitat

Das in die Hauptschleife:
Code:

   if in = "p" then
      if pause = 0 then
         pause = 1
      else
         pause = 0
      end if
   end if
   
   if pause = 0 then apx->work : apx=apx->nx_px


und das als endbedinung für die hauptschleife:
Code:
loop until in = "q" or in = chr(27) or in = chr(255,107)

_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 05.09.2008, 12:50    Titel: Antworten mit Zitat

was ist chr(255,107) ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 05.09.2008, 13:18    Titel: Antworten mit Zitat

Alt+F4 alias "fenster schließen"
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 05.09.2008, 13:26    Titel: Antworten mit Zitat

@The_Muh:

Was meinst du mit:
"hast du die UDTs extra als PTR gedimmt? warum nicht einfach ganz normal den UDT benutzen? "

Wenn ich zur laufzeit neuen Speicherplatz für beliebig viele "Wanderpixel" belegen will, dann geht wohl kaum ein Weg um Pointer drum herum. Besonders wenn ich diese dann noch verketten will.

Hier eine neue Version mit euren Einflüssen und Ideen:

http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=710

Zum beginnen einfach "p" drücken!

Tasten:
c = löscht den Bildschirm und baut die Wanderpixel neu auf
p = pause

l = löscht den 1. Wegpunkt in der Kette (da muss ich aber noch was einbauen, da könnte was abstürzen wenn man alle wegpunkte entfernt)

+ = Es werden 10 Wanderpixel hinzugefügt
- = Es wird 1 Wanderpixel entfernt

Bin gespannt wie es weitergehen kann zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 05.09.2008, 13:27    Titel: Antworten mit Zitat

PS: Mit REDIM arbeite ich nicht gerne.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 05.09.2008, 13:47    Titel: Antworten mit Zitat

Folgendes ist mir aufgefallen:

Sobald sich wege kreuzen oder die Pixel sich an einem Wegpunkt "stauen" dann pflanzt sich der Stau rückwärts fort.. genau wie im im richtigen Leben happy *lol*
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 05.09.2008, 14:17    Titel: Antworten mit Zitat

Kann man das eigentlich auch in OpenGL programmieren? also mit 3 dimensionen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4702
Wohnort: ~/

BeitragVerfasst am: 05.09.2008, 14:32    Titel: Antworten mit Zitat

OneCypher hat Folgendes geschrieben:
PS: Mit REDIM arbeite ich nicht gerne.

Mit dem edit-Button auch nicht, hm? grinsen

Das Programm läuft bei mir so quälend langsam, dass ich mal eine Messung und Ausgabe eingebaut habe, wie lange es für einen Schleifendurchlauf braucht. Und prompt läuft es sehr flott geschockt

Woran liegt das? Ich habe das Gefühl, dass ohne meinen PRINT-Befehl gar nichts läuft und auch das Beenden ewig dauert. *wunder*
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 05.09.2008, 14:40    Titel: Antworten mit Zitat

Rüüühhsscchtüüüsch zwinkern .. "edit" benutzen doch nur leute die was zu verbergen haben *ggg*

@nemored: Ich arbeite hier mit WinXP Pro auf einem 1,86GHz Core2Duo 1GB Ram. Und da läufts auch mit 10000 wanderpixel noch recht flott. Allerdings muss ich zugeben das es auf einem anderen Rechner der Offiziell flotter sein soll, nicht so flott ist.
Dieser andere Rechner läuft mit Ubuntu 8.04 und hat die propritären Nvidia-Treiber installiert. Hat ne 2,4GHz Core2Quad CPU und 3GB Ram.

Warum das auf dem 2. Rechner langsamer läuft versteh ich in der Tat nicht!
Obs an den X-Treiber von NVidia liegt? Im Heise Ticker und in der CT hab ich schon öfters wegen Performance-verlusten unter Linux mit den Nvidia-treibern gelesen...



Angeblich sollte man ja ein "sleep 1" in die Hauptschleife einfügen damit das Betriebssystem auch kurz die Kontrolle über die Events bekommt.
Aber sobald ich das in die Hauptschleife einfüge läufts wirklich grotten langsam... Da lass ich das lieber ohne "sleep 1" laufen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4702
Wohnort: ~/

BeitragVerfasst am: 05.09.2008, 14:56    Titel: Antworten mit Zitat

Natürlich hat mein Laptop nicht den Hyperprozessor - mag mir ja z. B. im Zug nicht die Knie verbrennen - aber mehr als 10 Sekunden Reaktionszeit zum Programm beenden ist mir zu langsam. happy

Tatsächlich ist die Geschwindigkeit aber ganz passabel, wenn ich nur irgendwo eine Ausgabe einfüge. LOCATE 1,1 : PRINT "a" reicht da schon. Ansonsten rechnet er eine ganze Weile vor sich her und gibt irgendwann einmal ein Zwischenergebnis aus. Merkt das Programm ohne mein PRINT nicht, dass es schon etwas ausgeben soll? Bin etwas ratlos. Vor allem, weil es ja auch die Reaktion auf die Programmende-Taste verzögert.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 05.09.2008, 15:02    Titel: Antworten mit Zitat

@nemored: Was für ein OS benutzt du?
Ich hab merkwürdigkeiten unter Linux mit der funktion getmouse beobachtet. Warum es bei dir schneller wird sobald du eine textausgabe generierst versteh ich auch nicht. Bzw kann ich bei mir nicht nachvollziehen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4702
Wohnort: ~/

BeitragVerfasst am: 05.09.2008, 15:39    Titel: Antworten mit Zitat

OneCypher hat Folgendes geschrieben:
@nemored: Was für ein OS benutzt du?

Linux Ubuntu 8.04

(da soll noch einer sagen, PRINT würde die Programmgeschwindigkeit bremsen durchgeknallt )

Mit GETMOUSE habe ich normalerweise keine Probleme.

edit: mit SLEEP 1 und ohne PRINT läuft das Programm zwar wesentlich langsamer, aber es läuft. Ich kann mir nur vorstellen, dass das Programm so sehr mit der Berechnung beschäftigt ist, dass es gar nicht mehr zum zeichnen kommt. neutral
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 05.09.2008, 15:55    Titel: Antworten mit Zitat

wie wärs mit screensync ?

also in die hauptschleife reinbauen:

if apx = spx then screensync




Du lässt Ubuntu 8.04 auf einem laptop laufen hmm... okay, dann wird das wohl kein älterer laptop sein.. sonst bräuchte der 10 minuten zum hochfahren nach meinen erfahrungen.

Und WinXp hast du bei dir nicht installiert? .. ich schätze das liegt wirklich am OS. Oder an irgendwelchen Treibern.

edit: das einsetzen von "if apx = spx then screensync" bewirkt eine wirklich krasse verlangsamung auf dem Core2Duo (1,86GHz)... Bin mal gespannt wie sich das bei dir auswirkt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4702
Wohnort: ~/

BeitragVerfasst am: 05.09.2008, 16:47    Titel: Antworten mit Zitat

OneCypher hat Folgendes geschrieben:
Du lässt Ubuntu 8.04 auf einem laptop laufen hmm... okay, dann wird das wohl kein älterer laptop sein.. sonst bräuchte der 10 minuten zum hochfahren nach meinen erfahrungen.

dreieinhalb Jahre

OneCypher hat Folgendes geschrieben:
Und WinXp hast du bei dir nicht installiert?

Wozu?

Zitat:
das einsetzen von "if apx = spx then screensync" bewirkt eine wirklich krasse verlangsamung auf dem Core2Duo (1,86GHz)

bei mir ebenso, aber damit klappt es wesentlich besser:
Code:
if timer-t > .1 then
  screensync
  t = timer
end if

Eine Aktualisierung jede 10tel Sekunde reicht mir erst einmal. happy


edit:
Zitat:
dreieinhalb Jahre

stimmt ja gar nicht, es sind ja schon viereinhalb.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 05.09.2008, 16:57    Titel: Antworten mit Zitat

@nemored: Hast du zufällig den original NVidia-Treiber installiert?

Unter WinXP laufen leider immer noch viele beliebte Programme. Auch die Treiberunterstützung seitens Hardware-herstellern ist immer noch besser. Wird wohl auf absehbare Zeit auch nicht anders sein.

Ich schätze schon das es unter Linux genau deswegen oft zu Performance-Engpässen kommen kann.
Einfach deswegen weil dort oft nicht durchgängig Treiber werkeln die nicht vom Hersteller gepflegt werden. Sei es als OpenSource-Projekt wie viele Treiber von Intel, oder als propritäre Geschichte wie schon erwähnt Nvidia...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz