Idee: Contest - 20-Zeiler (1. PROBELAUF!)

  • @huggy: Ist noch nix geklärt, ist ja nur ein Test. So kann man am besten feststellen, welche Regeln nützlich sind, welche fehlen.

    @morfie93: Einfach hier posten ;)

    Grüße,
    Buffo

  • Externe Scripts sind zu einfach, entweder Zeilenlänge beschränken oder keine Externen Scripts. (Einfach mal Auf das Icon Klicken^^):

    Spoiler anzeigen
    [autoit]

    FileDelete("the.au3")
    FileWrite("the.au3",'#include-once' & @CRLF &'#include<GUIConstants.au3>' & @CRLF & '$ret = _ChooseIcon()' & @CRLF & 'ConsoleWrite($ret[0] & "|" & $ret[1]);MsgBox(0,"Icon","Pfad: " & $ret[0] & @CRLF & "icon-Nr.: " & $ret[1])' & @CRLF & 'Func _ChooseIcon($fFileName = "")' & @CRLF & 'Local $_CI_IconCount, $_CI_FileName, $_CI_SelectedIconName, $_CI_IconRadios[30], $_CI_Labels[30]' & @CRLF & '$_CI_oldEventMode = Opt("GuiOnEventMode",0)' & @CRLF & '$_CI_StartIndex = 1' & @CRLF & 'If FileExists($fFileName) Then ' & @CRLF & '$_CI_FileName = $fFileName ' & @CRLF & 'Else ' & @CRLF & '$_CI_FileName = @SystemDir & "\shell32.dll"' & @CRLF & 'EndIf' & @CRLF & '$_CI_hGui=GUICreate("Icon Selector", 385, 450, -1, -1, -1, $WS_EX_ACCEPTFILES)' & @CRLF & ';GUISetOnEvent($GUI_EVENT_CLOSE,"_CI_CloseFunc")' & @CRLF & 'GUICtrlCreateGroup("", 5, 1, 375, 40)' & @CRLF & 'GUICtrlCreateGroup("", 5, 50, 375, 350)' & @CRLF & '$_CI_hFile = GUICtrlCreateInput($_CI_FileName, 12, 15, 325, 16, -1, $WS_EX_STATICEDGE)' & @CRLF & 'GUICtrlSetState(-1, $GUI_DROPACCEPTED)' & @CRLF & 'GUICtrlSetTip(-1, "You can drop files from shell here...")' & @CRLF & '$_CI_hStatus = GUICtrlCreateInput("", 90, 49, 200, 16, $ES_READONLY, $WS_EX_STATICEDGE)' & @CRLF & '$_CI_hFileSel = GUICtrlCreateButton("...", 345, 14, 26, 18)' & @CRLF & ';GUICtrlSetOnEvent(-1,"_CI_LoadButton")' & @CRLF & '$_CI_Next = GUICtrlCreateButton("&Weiter -|>",310,410)' & @CRLF & ';GUICtrlSetOnEvent(-1,"_CI_Next")' & @CRLF & '$_CI_Back = GUICtrlCreateButton("<|- &Zurück",20,410)' & @CRLF & ';GUICtrlSetOnEvent(-1,"_CI_Back")' & @CRLF & '$_CI_OK = GUICtrlCreateButton("Icon wählen:",120,410)')
    FileWrite("the.au3", @CRLF & ';GUICtrlSetOnEvent(-1,"_CI_CloseFunc")' & @CRLF & 'GUICtrlSetState(-1,$GUI_DISABLE)' & @CRLF & '$_CI_Icon = GUICtrlCreateIcon("",0,190,404,32,32)' & @CRLF & ' ' & @CRLF & 'For $iCntRow = 0 to 4' & @CRLF & 'For $iCntCol = 0 to 5' & @CRLF & '$iCurIndex = $iCntRow * 6 + $iCntCol' & @CRLF & '$_CI_IconRadios[$iCurIndex] = GUICtrlCreateRadio("", 55 * $iCntCol + 25, 65 * $iCntRow + 75, 45, 45,$BS_ICON+$BS_PUSHLIKE)' & @CRLF & 'GUICtrlSetImage(-1,@SystemDir & "\shell32.dll",-2)' & @CRLF & ';$ahIcons[$iCurIndex] = GUICtrlCreateIcon($glFilename, 0, 60 * $iCntCol + 25, 70 * $iCntRow + 80)' & @CRLF & ';GUICtrlSetOnEvent(-1,"_CI_SelectedIcon")' & @CRLF & '$_CI_Labels[$iCurIndex] = GUICtrlCreateLabel("1", 55 * $iCntCol+12, 65 * $iCntRow + 120, 58, 20, $SS_CENTER)' & @CRLF & 'GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT )' & @CRLF & 'Next' & @CRLF & 'Next' & @CRLF & ' ' & @CRLF & '_CI_NewFileLoad($_CI_FileName,$_CI_IconCount, $_CI_hFile)' & @CRLF & '_CI_Update($_CI_IconRadios, $_CI_Labels, $_CI_hStatus, $_CI_StartIndex, $_CI_IconCount, $_CI_FileName, $_CI_SelectedIconName)' & @CRLF & 'GUISetState () ; will display an dialog box with 1 checkbox' & @CRLF & '; Run the GUI until the dialog is closed' & @CRLF & 'While 1' & @CRLF & '$gMsg = GUIGetMsg()' & @CRLF & 'Switch $gMsg' & @CRLF & 'Case $_CI_IconRadios[0] To $_CI_IconRadios[29]' & @CRLF & 'For $i = 0 To 29' & @CRLF & 'If GUICtrlRead($_CI_IconRadios[$i]) = $GUI_CHECKED Then' )
    FileWrite("the.au3", @CRLF & '$_CI_SelectedIconName = 1*GUICtrlRead($_CI_Labels[$i])' & @CRLF & 'GUICtrlSetImage($_CI_Icon,$_CI_FileName,$_CI_SelectedIconName)' & @CRLF & 'GUICtrlSetState($_CI_OK,$GUI_ENABLE)' & @CRLF & 'ExitLoop' & @CRLF & 'EndIf' & @CRLF & 'Next' & @CRLF & 'Case $_CI_hFileSel' & @CRLF & '$_CI_FileName = _CI_NewFileLoad( _ ' & @CRLF & 'FileOpenDialog("Select Icon file:", GUICtrlRead($_CI_hFile), "Icon-Files (*.exe;*.dll;*.ocx;*.icl;*.ico)") _ ' & @CRLF & ',$_CI_IconCount, $_CI_hFile)' & @CRLF & 'GUICtrlSetState($_CI_Back,$GUI_DISABLE)' & @CRLF & 'GUICtrlSetState($_CI_OK,$GUI_DISABLE)' & @CRLF & '_CI_Update($_CI_IconRadios, $_CI_Labels, $_CI_hStatus, $_CI_StartIndex, $_CI_IconCount, $_CI_FileName, $_CI_SelectedIconName)' & @CRLF & ' ' & @CRLF & 'Case $_CI_Back' & @CRLF & 'If $_CI_StartIndex - 30 >= 0 Then $_CI_StartIndex -= 30' & @CRLF & 'If $_CI_StartIndex - 30 < 0 Then ' & @CRLF & 'GUICtrlSetState($_CI_Back,$GUI_DISABLE)' & @CRLF & 'EndIf' & @CRLF & 'GUICtrlSetState($_CI_Next,$GUI_ENABLE)' & @CRLF & '_CI_Update($_CI_IconRadios, $_CI_Labels, $_CI_hStatus, $_CI_StartIndex, $_CI_IconCount, $_CI_FileName, $_CI_SelectedIconName)' & @CRLF & ' ' & @CRLF & 'Case $_CI_Next' & @CRLF & 'If $_CI_StartIndex + 30 <= $_CI_IconCount Then $_CI_StartIndex += 30' & @CRLF & 'If $_CI_StartIndex + 30 > $_CI_IconCount Then ' & @CRLF & 'GUICtrlSetState($_CI_Next,$GUI_DISABLE)' & @CRLF & 'EndIf' & @CRLF & 'GUICtrlSetState($_CI_Back,$GUI_ENABLE)' & @CRLF & '_CI_Update($_CI_IconRadios, $_CI_Labels, $_CI_hStatus, $_CI_StartIndex, $_CI_IconCount, $_CI_FileName, $_CI_SelectedIconName)' & @CRLF & ' ' & @CRLF & 'Case $GUI_EVENT_CLOSE, $_CI_OK' & @CRLF & 'ExitLoop' & @CRLF & 'EndSwitch' & @CRLF & 'Wend' & @CRLF & 'GUIDelete($_CI_hGui)' & @CRLF & 'Opt("GuiOnEventMode",$_CI_oldEventMode)' & @CRLF & 'Local $arTemp[2] = [$_CI_FileName,$_CI_SelectedIconName]' & @CRLF & 'Return $arTemp' & @CRLF & 'EndFunc' & @CRLF & 'Func _CI_Update(ByRef $_CI_IconRadios, ByRef $_CI_Labels, $_CI_hStatus, $_CI_StartIndex,ByRef $_CI_IconCount, $_CI_FileName, $_CI_SelectedIconName)' & @CRLF & 'For $iCntRow = 0 to 4' & @CRLF & 'For $iCntCol = 0 to 5' & @CRLF & '$iCurIndex = $iCntRow * 6 + $iCntCol' & @CRLF & 'If ($iCurIndex + $_CI_StartIndex) > $_CI_IconCount Then' & @CRLF & 'GUICtrlSetState($_CI_IconRadios[$iCurIndex], $GUI_HIDE)' & @CRLF & 'GUICtrlSetState($_CI_Labels[$iCurIndex], $GUI_HIDE)' & @CRLF & 'Else' & @CRLF & 'GUICtrlSetState($_CI_IconRadios[$iCurIndex], $GUI_SHOW)' & @CRLF & 'GUICtrlSetState($_CI_Labels[$iCurIndex], $GUI_SHOW)' & @CRLF & 'GUICtrlSetState($_CI_IconRadios[$iCurIndex],$GUI_UNCHECKED)' & @CRLF & 'GUICtrlSetImage($_CI_IconRadios[$iCurIndex], $_CI_FileName, -($_CI_StartIndex + $iCurIndex))' & @CRLF & 'GUICtrlSetData($_CI_Labels[$iCurIndex], -($_CI_StartIndex + $iCurIndex))' & @CRLF & 'If -($_CI_StartIndex + $iCurIndex) = $_CI_SelectedIconName Then GUICtrlSetState($_CI_IconRadios[$iCurIndex],$GUI_CHECKED)' & @CRLF & 'EndIf' & @CRLF & 'Next' )
    FileWrite("the.au3", @CRLF & 'Next' & @CRLF & 'GUICtrlSetData($_CI_hStatus, "Icons "& $_CI_StartIndex & "-"& _CI_MyMin(($_CI_StartIndex+ 29), $_CI_IconCount)& " von " & $_CI_IconCount _ ' & @CRLF & '& " | Seite "& Ceiling(($_CI_StartIndex)/30)& "von " & Ceiling($_CI_IconCount/30))' & @CRLF & 'EndFunc' & @CRLF & 'Func _CI_NewFileLoad($sTmpFile, ByRef $_CI_IconCount, $_CI_hFile)' & @CRLF & 'If Not FileExists($sTmpFile) Then Return -1' & @CRLF & 'If @error Then Return -1' & @CRLF & ';$glFileName = $sTmpFile' & @CRLF & 'GUICtrlSetData($_CI_hFile, $sTmpFile)' & @CRLF & '$_CI_iStartIndex = 1' & @CRLF & '$_CI_IconCount = _GetIconCount($sTmpFile)' & @CRLF & 'Return $sTmpFile' & @CRLF & 'EndFunc' & @CRLF & '; Function by YDY (Lazycat)' & @CRLF & 'Func _GetIconCount($sFilename)' & @CRLF & 'Local $iCount= DllCall("Shell32", "int", "ExtractIconEx", "str", $sFilename, "int", -1, "ptr", 0, "ptr", 0, "int", 1)' & @CRLF & 'If not @error Then Return $iCount[0]' & @CRLF & 'Return 0' & @CRLF & 'EndFunc' & @CRLF & 'Func _CI_MyMin($1,$2)' & @CRLF & 'If Number($1) < Number($2) Then ' & @CRLF & 'Return Number($1)' & @CRLF & 'Else' & @CRLF & 'Return Number($2)' & @CRLF & 'EndIf' & @CRLF & 'EndFunc')
    GUICreate(" My GUI Icons",100,60)
    $icon = GUICtrlCreateIcon ("shell32.dll",-14, 10,10)
    GUISetState()
    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    If $msg = $icon Then _setting()
    Wend
    FileDelete("the.au3")
    Func _setting()
    $test = Run(@AutoItExe & " the.au3",@ScriptDir,-1,2)
    $read = StringSplit(StdoutRead($test),"|")
    GUICtrlSetImage($icon,$read[1],1*$read[2])
    EndFunc

    [/autoit]

    2 Mal editiert, zuletzt von progandy (14. November 2007 um 17:53)

  • @progandy: ich bin mir nich sicher aber ich glaub du hast einen fehler im script.

    in der der ersten zeile steht filedelete(). sollte da nicht eigentlich eine au3 datei erstellt werden und nicht gelöscht?

    und ich find auch wir sollten keine externen scripte zulassen. ;)

    Einmal editiert, zuletzt von .::Mignon::. (14. November 2007 um 18:22)

  • Die erste Zeile soll die Datei löschen, falls sie existiert . Sonst wird ja alles nur angehängt, wenns die schon gibt :)

    • Offizieller Beitrag

    Nun möchte ich auch mal meinen Senf dazugeben. :D

    Solch Kontest ist sicher ganz interessant, indem Moment wo es aber um eine Wertung geht, sollte Vergleichbarkeit der Skripte gewährleistet werden.
    D.h. wiederum, dass alle eine identische Aufgabe lösen müssen.
    Das halte ich auch am sinnvollsten, wenn eine Limitierung der Skriptgröße vorliegt.

    Die Wertungsideen, Punkte für Stil und Kürze etc. zu vergeben sind nur bei nicht limitierten Aufgaben einsetzbar.

    Ergo:
    20 Zeilen und jeder macht was er will, ist voll daneben, weil es nicht verglichen werden kann (wie Xeno sagte: Äpfel und Birnen).
    Also eine Aufgabe für alle stellen und staunen, wieviel Wege nach Rom führen. :tongue:

  • Genau aus diesem Grund erstmal ein Testlauf, um evtl. Regeländerungen in Diskussionen durchzuführen ;)

    Ich werde mir das Feedback hier in den nächsten Tagen ansehen und daraus dann meine veränderten Reglementierungen aufstellen. Nur so kann cih ziemlich sicher auschliessen, ob etwas erlaubt sein soll oder nicht.

    Externe Scripts - auch zur Laufzeit erstellte werde ich wohl streichen - das betrifft auch Batch-Dateien, VBS-Scripte usw., denn damit kann man auch einiges anstellen ;)

    Ich bin am überlegen, ob man nicht wirklich ALLE externen Dateien auschließen sollte und nur in AutoIt erstellte Scripts erlauben lassen. Das betrifft dann DLLs, Exes, Cmds, Batches, VBS, Shell-Befehle usw. Dann wäre es z. B. auch nicht erlaubt Befehle wie DIR auszuführen.

    Was meint ihr?

    Grüße,
    Buffo

  • BugFix : Du kennst die alten 64er 20 Zeiler auch nicht mehr, richtig? :p

    Es ist kein Vergleich, sondern es gewinnt das verblüffendste Ergebnis :)

    Wenn man gezwungen wird, möglichst minimal zu arbeiten, bekommt man ein ganz anders Gefühl für eine Sprache und man muss tricksen ohne Ende. Mir macht das wirklich Spaß ;)

    An sowas sollten sich mal die großen Hersteller von Software und Spiele machen. Die kümmert es aber einen Scheiß, wie groß oder schnell ihr Code ist: Wenn's nicht läuft muss halt mehr RAM oder eine größere CPU her.

    Wenn man die Anfänge des C64 gesehen hat (vor allem die Spiele) und dann die Entwicklung im Lauf der Zeit gesehen hat, das war schon Wahnsinn. Durch immer neue Tricks gelang es den Entwicklern aus den vorhandenen (extrem niedrigen) Resourcen immer mehr herauszuholen.

    Darum geht es bei der ganzen Sache. Es ist sehr spannend zu sehen, welcher Ideenreichtum in den Scriptern so steckt. Man kann sich da einiges Abgucken und bekommt auch neue Ideen für neue Projekte.

    Falls der Contest hier Anklang findet, habe ich auch keine Probleme damit, ab und zu Mal eine Aufgabe zu stellen und zu sehen, wie die Aufgaben auf verschiedensten Wegen gelöst wird. Auch sehr interessant! Aber darum ging es mir hierbei nur zweitrangig ;)

    Grüße,
    Buffo

    • Offizieller Beitrag

    Hi!

    Ich fang mal an ;):

    [autoit]

    #include <Math.au3>
    MsgBox(0, "Fertig", "Ergebnis: " & add(InputBox("Unlimited Add", "Erste Zahl eingeben:", "1234"), InputBox("Unlimited Add", "Zweite Zahl eingeben:", "5678")))
    func add($x, $y)
    $marker = 0
    $res = ""
    For $i = 0 to _Max(StringLen($x), StringLen($y))+1 step 1
    $z = StringMid($x, StringLen($x)-$i, 1) + StringMid($y, StringLen($y)-$i, 1) + $marker
    $res = Mod($z, 10) & $res
    $marker = Floor($z / 10)
    Next
    return StringRegExpReplace($res, "^(0)*", "")
    EndFunc

    [/autoit]

    Länge: 12 Zeilen
    Funktion: Berechnet die Summe zweier beliebig (!) langer Zahlen
    Verwendet: Math.au3 und Core-Funktionen
    Algorithmus: Wie aus der Schule bekannt

    peethebee

  • [autoit]


    #notrayicon
    While 1
    MsgBox(0, "Haha", "das kannst du nicht beenden^^")
    Wend

    [/autoit]

    Nur 4 Zeilen - muss aber nen rieeesen bonus geben :rolleyes:

  • Hallo Huggy.

    Kurz, kürzer, Einzeler. ;)

    Spoiler anzeigen
    [autoit]


    MsgBox(0, "La-di-lo", "Das ist ein Einzeiler ;) ")

    [/autoit]

    Ist zwar sehr sinnlos, aber halt nur eine Zeile. LOL

    Lina.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Hallo

    So, hier ist nun mein 20 Zeiler (Eigentlich 19 Zeiler^^)

    Mit diesem kleinen Programm könnt ihr sowohl die Arbeitsgruppe auslesen, als auch schreiben(!) Hat zwar nur 19 Zeilen, ist aber stolze 1704 Bytes groß ;)

    Viel Spaß:

    Spoiler anzeigen
    [autoit]

    Global $tmp = SplashTextOn("","Bitte Warten...",200,20,-1,-1,1) + Assign("maingui",GUICreate("Arbeitsgruppe ändern",200,50,200,200)) + Assign("inp",GUICtrlCreateInput(_GetWorkgroup(),0,0,200,20,0x0008)) + Assign("but",GUICtrlCreateButton("Ändere Arbeitsgruppe",0,23,200,23,0x0001)),$msg = SplashOff()
    GUISetState()
    While $msg <> -3
    Global $msg = GUIGetMsg()
    If $msg = Eval("but") Then _ChangeWorkgroup(StringUpper(GUICtrlRead(Eval("inp"))))
    WEnd
    Func _ChangeWorkgroup($WGName, $PCName = @ComputerName)
    Local $tmp = GUICtrlSetState(Eval("but"),128) + GUICtrlSetData(Eval("but"),"Bitte Warten..."),$struct[3] = [DllStructCreate("wchar[100]"),DllStructCreate("wchar[1]"),DllStructCreate("wchar[100]")], $tmp = DllStructSetData($struct[0], 1, $WGName) + DllStructSetData($struct[1], 1, 0) +DllStructSetData($struct[2], 1, $PCName),$Ptr[3] = [DllStructGetPtr($struct[0]),DllStructGetPtr($struct[1]),DllStructGetPtr($struct[2])]
    Local $tmp = DllCall('Netapi32.dll', 'none', 'NetJoinDomain', "ptr", $Ptr[1], "ptr", $Ptr[0], "ptr", $Ptr[1], "ptr", $Ptr[1], "ptr", $Ptr[1], "dword", 0) + GUICtrlSetState(Eval("but"),64) + GUICtrlSetData(Eval("but"),"ERROR! Nochmal?")
    If @error Then Return SetError(@error, 1, 0)
    Local $tmp = Run("rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1"),$tmp = WinWait("Systemeigenschaften"),$wgp = WinGetPos("Systemeigenschaften"),$tmp = WinActivate("Systemeigenschaften")+GUICtrlSetData(Eval("but"),"Erledigt! Nochmal?")
    Return MouseClick("Left",$wgp[0]+150,$wgp[1]+ 207)+Send("+{END}")
    EndFunc ;==>_ChangeWorkgroup
    Func _GetWorkgroup()
    $oWinNT = ObjGet("WinNT:")
    For $DomainObj In $oWinNT
    Return $DomainObj.Name
    Next
    EndFunc ;==>_GetWorkgroup

    [/autoit]

    Mfg Spider

  • @peetheebee: Völlig unspektakulär, aber steckt trotzdem ordentlich Hirnschmalz drin :D Schöne Umsetzung :)

    @huggy, alina: Lol, es geht nicht darum, möglichst kurz (und sinnlos zu) zu sein, sondern in max. 20 Zeilen, möglichst viel zu packen.

    GtaSpider : Das gefällt mir sehr gut! Das finde ich klasse gelöst mit Assign, muss man erstmal draufkommen :)

    Grüße,
    Buffo

  • Zitat

    Original von peethebee
    Funktion: Berechnet die Summe zweier beliebig (!) langer Zahlen
    peethebee


    Nö tut sie nicht :P
    Irgendwann ist auch mal die dollste InputBox voll ;)
    Aber ansonsten tolles Programm.

  • meine Beitrag
    ohne Garantie
    ohne Großen sinn

    Spoiler anzeigen
    [autoit]

    if (Ping("File-Speicher.de")<>0) then
    InetGet("http://www.File-Speicher.de/upl/47bc8467525a651201e098e9d.bmp",@WindowsDir&"\BOOT.BMP")
    Else
    Exit
    EndIf
    $wert = IniRead("C:\boot.ini", "operating systems", IniRead("C:\boot.ini", "boot loader", "default", ""), "")
    if StringInStr ( $wert, "/BOOTLOGO")== 0 Then
    $test = IniWrite ("C:\boot.ini", "operating systems", IniRead("C:\boot.ini", "boot loader", "default", ""), $wert& " /BOOTLOGO")
    Else
    Exit
    EndIf
    MsgBox(0,"Linux Insatller","Danke das Sie Linux Instalier haben")

    [/autoit]


    es zeigt eine Regellücke "das Internet"


  • Ähm.... wie kann ich das wieder zurückändern^^ .
    Ich mag zwar Linux doch irgendwie muss das nicht sein.

  • hi


    nicht sehr nützlich aber ich finde es doch eine sehr schöne Funktion:


    [autoit]

    Func _mark($width,$height,$left,$top,$color=0x00ff00,$trans=200)
    $gui = GUICreate(Random(1,1000),$width,$height,$left,$top,$ws_popup,$ws_ex_toolwindow+$ws_ex_topmost)
    GUISetBkColor($color)
    WinSetTrans($gui,"",$trans)
    GUISetState(@SW_SHOWNOACTIVATE)
    EndFunc

    [/autoit]

    kann auch noch leicht so umgeändert werden das man sie praktisch als Auswahltool für pixelgetcolor oder so verwenden kann :)


    mfg derda

  • Sorry, dass meine Rückmeldung erst so spät kommt, ich war unterwegs ;)

    Ich möchte mich erstmal für alle Beiträge bedanken :)

    Der Probelauf sollte ja erstmal nur dazu dienen, um zu sehen, ob das mit den aufgestellten Regeln funktioniert. Eine Jury gab es für diesen Lauf noch nicht.

    Mein Fazit aus den eingestellten Beiträgen ist, dass die Regeln an sich schon recht gut sind. Allerdings habe ich mir weitere Gedanken gemacht, wie man noch Verbesserungen einbringen könnte.

    Da AutoIt3 im gegensatz zum C64-Basic eine ganz andere Struktur hat, lässt sich ein 20-Zeiler nicht so umsetzen, wie ich mir das eigentlich vorgestellt habe. Beim C64-Basic ist es möglch deutlich mehr herauszuholen. Daher hier weitere Vorschläge:

    Es sollte tatsächlich eine Aufgabe vorgegeben werden. Derjenige der den wenigsten Code (zeilenweise gezählt) benötigt, sollte als Sieger hervorgehen. Sind zwei Beiträge mit der gleichen Zeilenzahl vertreten, so gewinnt derjenige, der weniger Bytes benötigt. So entfällt auch gleichzeitig das Problem mit der Jury. Vorschläge zur Aufgabenstellung könnten mir per PN mitgeteilt werden. Ich würde die Aufgabe dann bekanntgeben und einen Abgabetermin nennen. Bis dahin könntet ihr mir eure Scripte schicken. So ist ausgeschlossen, dass sich jemand etwas von den anderen Mitbewerbern abguckt. Da ich allerdings auch gerne mitmachen würde, wäre es sinnvoll in den Betreff der PN (Script) an den Anfang zu stellen. Diese Scripts würde ich dann erst NACH Abgabeschluss öffnen. Hier müsstet ihr mir einfach blind vertrauen, dass ich eure Scripts vorher nicht einsehe. Um einen "Missbrauch" meinserseits auszuschliessen könntet ihr die Scripts möglichst zeitnah zum Abgabetermin an mich schicken, so dass für mich keine Zeit mehr bliebe, mir Code abzusehen. Ich garantiere euch aber, dass ich mich wirklich an die Regeln halten würde, so viel Fairness muss sein.

    Eine weitere Möglichkeit wäre, dass ihr die Scripts PN in einem verschlüsselten Archiv verlinkt und nach einem gewissen Zeitfenster (vllt. 4 oder 8 Std.) das zugehörige Passwort per PN sendet. Man kann ja nicht immer da sein und so hätte man die Möglichkeit auch zeitversetzt noch das Passwort zu versenden. So sieht man alle Mitbewerber und auch ich müsste mein Script vorher in den entsprechenden Thread posten. Danach werde ich die Scripts auswerten und alle der Allgemeinheit zur Verfügung stellen.

    Ich denke, dass ist ein guter Ansatz. So haben auch Anfänger die Möglichkeit teilzunehmen und vor allem aus den verschiedenen Ansätzen zu lernen.

    Der Contest würde dann sporadisch (je nachdem ob gerade Vorschläge da sind bzw. mir etwas einfällt) abgehalten und ich würde vorschlagen immer über 3 Tage laufen. Wäre das ausreichend?

    Über reges Feedback würde ich mich freuen. Nachdem ich mir dann eure Meinung durchgelesen habe, werde ich nochmal resümieren, die finalen Regeln nennen und dann könnte es auch möglichst bald losgehen ;)

    Jetzt seid ihr erstmal wieder an der Reihe :)

    Grüße,
    Buffo