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

      Da steht doch auch was dazu
      Original von Alina
      Also ich würde sagen, für die ersten 5 Scripte bildet das "Team" die Jury, danach dürfen die besten drei User (Platz 1-3 also) der Jury für die nächsten 5 Scripte mit gleichen Rechten begleiten.

      "Jetzt, wo ich weiß wie es geht, versteh ich auch die Gebrauchsanleitung"
      Antworten auf Hilfegesuche per PN werden nicht garantiert.
      Hallo.

      Ja, Alinas Idee fand ich auch gut.

      Aber ich finde man darf weder den Befehl Execute benutzen, noch ein anderes Script ausführen. Alles muss in einer Datei sich abspielen. Keine EXTRA Dll's (also Windows dlls dürfen benutzt werden) keine EXTRA Objekte insgesamt keine EXTRA Dateien.

      Mfg Spider
      Habe gerade mal ein bisschen rumprobiert, was mit einem "normalen" 20-Zeilen-Script machen kann. Bin auf die Idee gekommen, die TCP-Einstellungen fürs Internet zu optimeren (nach Anleitung von GSchwarz):

      ACHTUNG: Werte in der Registry werden geändert!

      1. HKLM\System\CurrentControlSet\Services\Tcpip\Parameters, TcpWindowSize
      2. HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{ID-LAN-Adapter}, MTU

      Die Werte (falls vorhanden) am besten vorher sichern ;)

      AutoIt-Quellcode

      1. Dim $n, $m, $v, $iChanged, $iFile, $sTmp = @TempDir & '\tmp.log', $sRegP = "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters", $sRegI = $sRegP & "\Interfaces\", $asMsg[2] = ["erfolgreich", "erforderlich"]
      2. SplashTextOn("", "Optimiere TCP-Einstellungen bitte warten...", 340, 16, -1, -1, 1, "Tahoma", 10, 600)
      3. For $n = 1464 To 68 Step - 1
      4. RunWait(@Comspec & ' /c ping -f -l ' & $n & ' google.com | findstr Antwort && echo ' & $n & ' > tmp.log', @TempDir, @SW_HIDE)
      5. If FileExists($sTmp) Then ExitLoop
      6. Next
      7. $iFile = FileDelete($sTmp)
      8. SplashOff()
      9. If $n > 67 Then
      10. For $m = 1 To 25
      11. $v = RegEnumKey($sRegI, $m)
      12. If @error <> 0 Or $iChanged = 1 Then ExitLoop
      13. If RegRead($sRegI & $v, "IPAddress") = @IPAddress1 And RegRead($sRegI & $v, "MTU") <> $n + 28 Then $iChanged = RegWrite($sRegI & $v, "MTU", "REG_DWORD", $n + 28)
      14. Next
      15. EndIf
      16. If RegRead($sRegP, "TcpWindowSize") <> ($n - 12) * 44 Then $iChanged = RegWrite($sRegP, "TcpWindowSize", "REG_DWORD", ($n - 12) * 44)
      17. If $iChanged > 0 Then
      18. If MsgBox(36, "TCP-Optimierung abgeschlossen", "Zum Aktivieren der neuen Parameter muss der PC neu gestartet werden." & @LF & "PC jetzt neu starten?") = 6 Then Shutdown(2)
      19. EndIf
      20. If $iChanged = 0 Then MsgBox(0, "TCP Optimierung abgeschlossen", "Optimierung war nicht " & $asMsg[$iFile] & ".")


      Man muss ein wenig rumtricksen, aber es geht ;)

      Wie ich mich kenne, ist das wieder total kompliziert, da es eine WMI-Methode oder sogar eine interne AutoIt-Funktion dafür gibt :D

      BTW: Alle Verbote, die nicht explizit aufgestellt werden, können von ALLEN umgangen werden (z. B. Execute). Das ist dann aber nicht unfair, da es ja ALLE nutzen können. Man muss nur überlegen, ob es nicht Sinn macht, so etwas auszuschliessen.

      Grüße,
      Buffo
      Hi alle,

      dann möchte ich auch mal was zum Thema sagen.

      Kommentare sollten zur Erläuterung erlaubts werden, aber da ja Auskommentiert sind, nicht als Zeile gezählt werden. Somit vieleicht für viele leichter zu verstehen, was passiert.
      Somit könnte man eine Func/Schleife oder andere Sachen geziehlt für Anfänger ( wie mich, oder Noobie´s oder Dau´s wie Sie sich gerne selber bezeichnen ) erklären. Somit hätten alle was von,
      auch wenn einige sagen das brauchen wir nicht.


      Das Forum wendet sich doch an alle und Hilft jedem, somit sollte es auch für alle verständlich sein was ein Script macht, und den aufbau sollte jeder verstehen und nachvollziehen können.
      Dann wird man sehen, wenn´s eine weiterführung gibt, das bestimmt ( denke ich ) auch Anfänger
      beim nächsten mal mit kleinen Scripten vertreten sind.

      Ich denke nämlich das beim 1sten Contest eh nur Leute mit entsprechenden kenntnisen vertreten sind,es sei denn, man macht verschiedene Gruppen
      ( entsprechend des Ranges ( Grünschnabel/Eroberer/Doppe-As/ Haudegen und so ))
      dann hätten auch Anfänger eine Chance...... mit zumachen.......
      Aber kopieren aus vorhandenen Scripten oder Teile aus vorhandenen Scripten sollte verboten/unterbunden sein......

      Das script soll nur laufen und kurz sein, jedoch keine bestimmte Funktion erfüllen....

      Zur Jury würde ich beim ersten mal sagen: Alle Admins und Mods des Autoit.de-Forums.
      Die sind Kompetent und haben das Knowhow.... Vieleicht auf einen geeigneten Nenner/Anzahl bringen...... 5/15 oder so ....

      In diesem Sinne
      Sonnige grüße aus Portugal.
      Chicago
      Site´s die ich gerne besuche:
      autoit.de

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Chicago“ ()

      Original von Xenobiologist
      Hi,

      steht denn das Ziel des Skripts schon fest?

      So long,

      Mega


      Es gibt kein Ziel, du kannst coden was du möchtest. Laß deiner Kreativität freien Lauf :)

      Im Moment ist ja noch kein Contest, wir könnten aber - so wie ich ein paar Posts bevor - schon mal ein paar Sachen testen, so sieht man was evtl. noch geregelt werden sollte.

      Grüße,
      Buffo
      Es soll ja gar kein Vergleich sein, es geht einfach darum, was alles möglich ist in eine vorgegebene Größe zu packen. Man muss gänzlich anders an die Sache herangehen. Am Ende sollte der gewinnen, der es durch trickreiches Coding schafft, die Jury am meisten zu beeindrucken, was man mit wenigen Zeilen Code alles machen kann.

      Grüße,
      Buffo

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Buffo“ ()

      Nee, nee, so einfach ist es dann auch nicht ;)

      Das Script soll halt etwas machen, was man niemals von so einem kurzen Script erwartet hätte und dadurch halt beeindrucken. Dass man auf diese Art einige Kniffe und Tricks anwenden muss, versteht sich von selbst.

      Ich eröffne jetzt einfach Mal einen "Contest", aber ohne Bewertung. Jeder kann mitmachen. Ich stelle erstmal die Regeln auf und nach Ablauf diskutieren wir darüber, was verbesserungswürdig ist :)

      Los geht's :D

      Hier die Regeln:
      • max. 20 Zeilen Code
      • AutoIt Version 3.2.8.1 Stable
      • Lauffähig ab Windows XP SP2
      • erlaubte UDFs: Standard-UDFs unter AutoIt3\Includes
      • erlaubte externe Tools: alle, die Windows mit sich bringt (keine Support-Tools oder ähnliches, die extra installiert werden müssen, auch keine externen Scripte (außer zur Laufzeit erstellt))
      • erlaubte DLLs: alle Standard-Windows-DLLs bei normaler Installation
      • nach Beendigung müssen alle zur Laufzeit erstellten temporären Dateien gelöscht sein
      • Zieleinlauf: spätestens 16.11.2007 um 17:00 h


      Ich habe bewusst einen kurzen Zeitraum und eine sehr begrenzte Zeilenzahl gewählt, damit man abzuschätzen lernt, was überhaupt möglich ist. Schon eine simple If-Abfrage hat 4 Zeilen (außer es passt halt in eine Zeile). Es ist gar nicht so einfach, wie es aussieht ;)

      Erlaubt ist alles, was nicht explizit verboten ist. So können wir nach Ablauf die auftretenden Probleme anbsprechen und Diskutieren. Ich denke, das ist besser als hier nur rein theoretisch zu mutmassen :P

      Und ab dafür :D

      Viel Spaß!
      Buffo
      Externe Scripts sind zu einfach, entweder Zeilenlänge beschränken oder keine Externen Scripts. (Einfach mal Auf das Icon Klicken^^):
      Spoiler anzeigen

      AutoIt-Quellcode

      1. FileDelete("the.au3")
      2. 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)')
      3. 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' )
      4. 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' )
      5. 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')
      6. GUICreate(" My GUI Icons",100,60)
      7. $icon = GUICtrlCreateIcon ("shell32.dll",-14, 10,10)
      8. GUISetState()
      9. While 1
      10. $msg = GUIGetMsg()
      11. If $msg = $GUI_EVENT_CLOSE Then ExitLoop
      12. If $msg = $icon Then _setting()
      13. Wend
      14. FileDelete("the.au3")
      15. Func _setting()
      16. $test = Run(@AutoItExe & " the.au3",@ScriptDir,-1,2)
      17. $read = StringSplit(StdoutRead($test),"|")
      18. GUICtrlSetImage($icon,$read[1],1*$read[2])
      19. EndFunc

      "Jetzt, wo ich weiß wie es geht, versteh ich auch die Gebrauchsanleitung"
      Antworten auf Hilfegesuche per PN werden nicht garantiert.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „progandy“ ()

      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
      Hi!

      Ich fang mal an ;):

      AutoIt-Quellcode

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


      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.de Webutation