Seite 11 von 16

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 17.04.2012 22:07
von RSBasic
Wenn dieses "Spiel" vorbei ist, können wir vielleicht ein Performance-"Spiel" starten?
Das heißt: Man nimmt einen fertigen Code (irgendeine Berechnung/Verarbeitung von Daten) und man muss den Code immer wieder weiter optimieren, damit es beim Berechnen/Verarbeiten schnellerer ist, als der vorherige Code. Wie wärs damit?

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 17.04.2012 22:18
von c4s
@RSBasic
Dann würde es wohl schnell in die ASM-Ecke rücken, oder?

Die Disziplin "möglichst kleiner Code" ist meiner Meinung nach bisher ziemlich spannend. :allright:

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 17.04.2012 22:28
von NicTheQuick
Das muss deswegen nicht gleich in ASM abdriften, außer es wird noch reichlich SSE2, SSE3, usw. eingebaut. Bei manchen Problemen kann man auch schön Multithreading ausnutzen. Schwer wird nur zu sagen welcher Code besser ist, weil man dazu eine einheitliche Testmaschine braucht.

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 17.04.2012 22:32
von RSBasic
c4s hat geschrieben:Dann würde es wohl schnell in die ASM-Ecke rücken, oder?
Stimmt. :D
c4s hat geschrieben:Die Disziplin "möglichst kleiner Code" ist meiner Meinung nach bisher ziemlich spannend. :allright:
Ja finde ich auch. Nur ist die Frage, was man danach so schönes machen kann. 7x7 hat ja bereits mit dem Spiel vorgeschlagen, nur das gleiche Thema mit dem Kürzen.
NicTheQuick hat geschrieben:Das muss deswegen nicht gleich in ASM abdriften,
Man könnte ja eine Regel wie "Keine ASM-Nutzung" aufstellen.
NicTheQuick hat geschrieben:Schwer wird nur zu sagen welcher Code besser ist, weil man dazu eine einheitliche Testmaschine braucht.
Stimmt, daran habe ich garnicht gedacht. :oops:

Weitere Vorschläge: Überleg ich mir noch....^^

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 17.04.2012 23:03
von NicTheQuick
Die Optimierung von "d+d*(f/d)" zu "d+1" ist eigentlich auch Mist, da vorher garantiert war, dass d nur vergrößert wird, wenn f auch größer geworden ist. Jetzt wird es bei jedem "<" und ">" in Brainfuck vergrößert, was nicht ganz Sinn der Sache ist. Möglich wäre noch "d+f/d" gewesen, aber jetzt ist es so und jeder von uns sollte auch genügend Speicher haben um ein bisschen Brainfuck ausführen zu können. :wink:

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 17.04.2012 23:04
von RSBasic
So, nun ein paar Vorschläge:
-64 KB (oder weniger) Grafik-Demo
-Beste Benutzeroberfläche für eine bestimmte Anwendungsart entwickeln und anschließend eine Umfrage starten
-Bugs in PB finden :D (diese können dann natürlich im engl. Forum gepostet werden)
-Programmierung eines Bots
-PB-Funktionen selber schreiben, d.h. man schreibt zum Beispiel seine eigene Funktion für Mid(), aber Mid() darf nicht verwendet werden

PS: Es sind nur Vorschläge. :D

\\Edit:
-Mit wenig festgelegten PB-Befehlen ein nützliches Programm schreiben

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 17.04.2012 23:36
von STARGÅTE
RSBasic hat geschrieben:-Programmierung eines Bots
Das hatte ich auch schon mal vorgeschlagen.
Aufgabe: Schreibe den besten 4-Gewinnt-Bot (also der, der gegen andere Bots deutlich gewinnt (bei 10'000 Spielen 6'000 mal))
Ich könnte dann kurz die "Simulation" schreiben, in der es zwei Spielzug-Prozeduren gibt, die dann von den jeweiligen Bots ersetzt werden können.
Alle die teilnehmen können dann ihre eigene Spielzug-Prozedur schreiben, in der Form:

Code: Alles auswählen

Procedure.i STARGATE(Array Field.i(2), Eigene Spielfarbe)
(Feld wäre dann 0-Leer, 1-Farbe1, 2-Farbe2)
Man bekommt immer die aktuelle Spielfeldsituation und muss seinen nächsten Zug zurück geben (also die Spalte für den Stein, 0-6)

Ich würde das mal vorbereiten und dann einfach mal n neues Thema starten.

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 18.04.2012 01:12
von WPö
Moin!

Hatte dann auch schonmal begonnen, ein paar Lösungsalgorithmen zu schreiben für Sudoku. Die funktionieren zwar bereits, man könnte sie aber sicherlich beschleunigen und auch noch weitere Abfragen einbauen für den Schwertfisch usw.. Ist nur ein Vorschlag. Interesse?

Gruß - WPö

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 18.04.2012 04:57
von STARGÅTE
642

Code: Alles auswählen

EnableExplicit
Global a,d,f,j,m,n,c.s,h.s,i.s
Macro U
h=Input()
EndMacro
Macro W
EndIf
EndMacro
OpenConsole()
Print("Filename (blank to use std in)...?")
U
If ReadFile(1,h)
Repeat
i+ReadString(1)
Until Eof(1)
Else
U
While h
i+h
U
Wend
W
h=i
While h
m+1
h=Mid(i,m,1)
If FindString("+-<>.,[]",h)
c+h
j-((Asc(h)/23)!3-3)/3
W
Wend
i="Uneven brackets"
If j=0
Dim k(d)
m=@c
While PeekA(m)
n=PeekA(m)-44
i=""
k(f)-n&1*n*(1-n/47)
If n=0
If h=i
U
W
k(f)=Asc(h)
h=Mid(h,2)
W
If n>15
If n>46
a=(k(f)XOr n/49)!1*(48-n)
j=a
While j
m+a
j-((PeekA(m)/23)!3-3)/3
Wend
Else
f+n-17
If f<0
i="Memory pointer out of range"
Break
W
d+1
ReDim k(d)
W
W
If n=2
Print(Chr(k(f)))
W
m+1
Wend
W
Print(i+RSet("Press ENTER to exit",22,#LF$))
U 

Re: Wäre es nicht mal wieder an der Zeit...

Verfasst: 18.04.2012 09:57
von 7x7
Mann, gebt euch mal mehr Mühe :mrgreen:
639

Code: Alles auswählen

EnableExplicit
Global a,d,f,j,m,n,c.s,h.s,i.s
Macro U
h=Input()
EndMacro
Macro W
EndIf
EndMacro
OpenConsole()
Print("Filename (blank to use std in)...?")
U
If ReadFile(1,h)
Repeat
i+ReadString(1)
Until Eof(1)
W
U
While h
i+h
U
Wend
h=i
While h
m+1
h=Mid(i,m,1)
If FindString("+-<>.,[]",h)
c+h
j-((Asc(h)/23)!3-3)/3
W
Wend
i="Uneven brackets"
If j=0
Dim k(d)
m=@c
While PeekA(m)
n=PeekA(m)-44
i=""
k(f)-n&1*n*(1-n/47)
If n=0
If h=i
U
W
k(f)=Asc(h)
h=Mid(h,2)
W
If n>15
If n>46
a=(k(f)XOr n/49)!1*(48-n)
j=a
While j
m+a
j-((PeekA(m)/23)!3-3)/3
Wend
Else
f+n-17
If f<0
i="Memory pointer out of range"
Break
W
d+1
ReDim k(d)
W
W
If n=2
Print(Chr(k(f)))
W
m+1
Wend
W	
Print(i+RSet("Press ENTER to exit",22,#LF$))
U