PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C/C++ Coding-Wettbewerb #4: Ideen



blackberry
13.06.2009, 13:32
http://img198.imageshack.us/img198/9210/cccw.png

Hallo,

Da es ja schon einen .NET Coding-Wettbewerb gab wäre es doch schade, wenn die C/C++ Programmierer auf soetwas verzichten müssten.
(kein Visual C++! - die .NET Section ist woanders - wir arbeiten hier mit C/C++!)

Jetzt fragt sich vielleicht einer "wieso #4?" - ganz einfach: scheinbar wurden hier schonmal ein paar Wettbewerbe abgehalten ( http://free-hack.com/showthread.php?t=9927 ) und ich will die Nummerierung nicht so einfach abbrechen lassen ;)

Ich stelle mir das wie folgt vor: jeder, der Interesse an einer Teilnahme hat, kann hier einen Vorschlag für ein Programm abgeben, dass sich für einen solchen Wettbewerb eignen könnte.
Bitte beachtet aber, dass euer Vorschlag folgende Kriterien erfüllen sollte:


das Programm soll nicht zu ausgefallen sein
die Entwicklung sollte nicht Jahre dauern
es sollte für Benutzer verschiedener Betriebssystem möglich sein ein solches Programm zu entwickeln und zu testen (nichts generell Plattformspezifisches - die Endimplementierung kann auch Plattformspezifisch sein, muss aber nicht ;) )
es sollte etwas nützliches entstehen (dieser Punkt muss nicht gegeben sein, wäre aber schön - gerne auch etwas, das nichts mit der "Szene" zu tun hat!)
es darf nicht zu simpel sein (ich weiß nicht, wie das mit Punkt 2. zu vereinbaren ist, jedoch ist ein Wettbewerb unsinnig, wenn man nichts zu bewerten hat - bei einem "Hello World"- Programm kann man nicht viel falsch machen [Extrembeispiel])
es sollte fair sein (wenn ihr bereits soetwas gemacht habt und nurnoch kopieren müsst ist das nicht gerade fair, oder? - gleiche Chancen für jeden!)

Also wenn ihr einen Vorschlag habt, der diese Kriterien erfüllt: bitte teilt ihn uns mit.
Mit "uns" meine ich auch die, die gerne teilnehmen würden, da ich mir vorgestellt habe, dass die Benutzer selber auswählen, was sie gerne Programmieren würden.
Vielleicht wäre es auch sinnvoll, mehrere Auswahlmöglichkeiten anzubieten.
Das erschwert jedoch den direkten Vergleich.

Falls genug Vorschläge eintreffen, würde ich dann einen weiteren Thread aufmachen, in welchem abgestimmt werden kann, welcher/welche Vorschlag/Vorschläge der/die beste(n) ist/sind ;)

"genug Vorschläge" habe ich auch nicht umsonst gesagt.
Damit meine ich, dass es keinen Sinn macht, einen Wettbewerb zu veranstalten, bei dem nur 2 Leute mitmachen (beim .NET Wettbewerb waren es gerade mal 3).
Darum betrachte ich eine Wahl im Entscheidungsthread für die Vorschläge als Verpflichtend. Das heißt: wer dort für den Vorschlag XYZ abstimmt, verpflichtet sich auch etwas für diesen abzugeben.
(nein deshalb wird niemand gebannt, oder so - ich habe ihn dann eben nicht mehr lieb :eek:)
Unter 5 Teilnehmern findet kein Wettbewerb statt!

Vielleicht ganz interessant sind noch folgende Sachen (auch wenn wir jetzt noch nicht so weit sind):

Teams
Wer nicht gerne allein Programmiert, kann gerne ein Team bilden.
Jedoch werden Teams mit mehr als 2 Mitgliedern nicht akzeptiert.

Was wird bewertet
Ich bin mehr ein Verfechter von "form follows function" als "function follows form".
Folglich ist es egal, ob das Programm CUI oder ein GUI hat.
Also:


Funktionalität (ein Programm, das hässlich aussieht, aber seinen Job erledigt, ist besser als ein Programm, das gut aussieht, aber nichts macht)
Extrafunktionen (wie gesagt: Hauptsache das Programm tut seinen Job. Wenn es jedoch mehr als nur das tut bin ich gerne bereit dies in Form von Punkten zu berücksichtigen)
Design (damit meine ich nicht das Aussehen - ich meine die Art, wie das Programm implementiert ist, dh. wie es seinen Job tut - bei zwei Programmen, die genau das selbe zuverlässig erledigen, entscheide ich danach, wieviel Code gebraucht wurde)
Plattformunabhängigkeit (C/C++ Compiler existieren für viele Plattformen - wieso sollte das Programm nicht davon profitieren)

Anforderungen an den Sourcecode


ich bewerte eure Arbeit, nicht die von anderen. Wer also eine Open-Source Bibliothek findet, die bereits alle vom Wettbewerb geforderten Funktionen erfüllt, wird die Benutzung einer solchen nicht bewertet.
auch wenn Punkt 1 Bibliotheken auszuschließen scheint, ist es durchaus erlaubt bekannte Bibliotheken zu benutzen um die Portabilität zu erhöhen (z.B. GTK+ für GUIs) - bitte beachtet aber, dass es nicht Berge versetzen will um das Programm compilieren zu können
der Sourcecode sollte gut leserlich sein. Eine einheitliche Struktur einzubauen und Tabs zu benutzen sollte wirklich Standard sein! (ich will keine Punkte anhand des Einrückens von Code geben, jedoch beachtet bitte, dass der Code verständlich sein soll)
an komplizierteren Stellen wären Kommentare angebracht - das erleichtet das Verstehen eures Gedankenweges erheblich!

Abgabe
Die Abgabe erfolgt per PM (an mich). Abgegeben werden Sourcecode + Programm.
In der anschließenden Siegerehrung werden alle Programme + Sourcecodes aufgelistet.
Die Abgabe ist auf ein Programm pro Teilnehmer bzw. Team beschränkt.
Dennoch ist es möglich Verbesserungen nachzureichen, sofern dies im Vorgegebenen Zeitrahmen geschieht (bewertet wird dann nur die neuere Version).
Der Abgabetermin wird festgelegt, sobald das zu schreibende Programm festgelegt ist.


Ich hoffe damit ist alles geklärt.

PS: ich werde nicht teilnehmen


mfG. BlackBerry

B1044ZZ4RD
13.06.2009, 13:43
okay ich werde zwar nicht teilnehmen aber meine idee wäre ein messegingprogramm das über eine protokol halt nachrichten versendet aber nicht direkt nahcrichten sondern alle geschribene wird in ein txt dokument gespeichert und diese wird dann versendet am anderen ende des messengers wird die txt datei lokal bzw temporär gespeichert und gleich im messenger geöffnet
dies hat den vorteil das kein zwischen server wie icq etc benötigt wird und alles über p2p läuft ^^
gn8t vorratsdatenspeicherung und icq spione :D
natürlich muss beachtet werden das keine anderen datein geöffnet werden könne magic quotes für html code etc :D

nathex
13.06.2009, 14:02
geschribene wird in ein txt dokument gespeichert und diese wird dann versendet
dies hat den vorteil das kein zwischen server wie icq etc benötigt wird und alles über p2p läuft Das stimmt natürlich, allerdings hat es auch den Nachteil, dass es immer etwas dauern würde, damit der andere die Nachricht bekommt, wegen dem verschicken halt. Und dann könnte man ja direkt per Email oder whatever schreiben :P

Fazit: Gute Idee, aber leider a) zu langsam, b) aufgrunf von a sinnlos :D

blackberry
13.06.2009, 14:35
Vorschläge die ich von Kolabi ( http://free-hack.com/member.php?u=36842 ) via PM erhalten habe:


- IRC Bot
- FTP Client
- Programm zum Syncronisieren von Ordnern,Festplatten
- Programm, das zwei Texte/Textdateien vergleicht und/oder zwei Dateien vergleicht ( MD5 ,Hex o.ä )
- HexEditior

PCFX
13.06.2009, 14:39
Ich code zwar VB6 und nicht C/C++ etc. aber ich hätte auch einen Vorschlag: Ein MD5-Checker - man fütterst das Tool mit einer Liste Hashes und das Tool gleicht diese dann mit Online-Datenbanken ab.

Wolfkiller
13.06.2009, 14:58
Anforderungen an den Sourcecode:

Um 3. mal zu erweitern könnte man den von -[RiDER]- angesprochenen Coding-Standard verwenden:
http://free-hack.com/showthread.php?t=4759
http://www.possibility.com/Cpp/CppCodingStandard.html

LeChuck
13.06.2009, 15:02
Ich code zwar VB6 und nicht C/C++ etc. aber ich hätte auch einen Vorschlag: Ein MD5-Checker - man fütterst das Tool mit einer Liste Hashes und das Tool gleicht diese dann mit Online-Datenbanken ab.


so ein tool gibt es schon

nathex
13.06.2009, 15:03
Alles was bisher geposted wurde, dürfte ziemlich schwer für Anfänger sein. Daher würde ich vorschlagen, dass der Wettbewerb in 2 Bereiche aufgeteilt wird.

1) Anfänger
2) Fortgeschrittene

Für Anfänger würde ich dann etwas traditionelles nehmen. Wie z.b. einen Rechner, oder Wecker etc. halt etwas, dass relativ einfach ist.

Für Fortgeschrittene, finde ich auch :

- IRC Bot
- FTP Client
- Programm zum Synchronisieren von Ordnern, Festplatten
- Programm, dass zwei Texte/Textdateien vergleicht und/oder 2 Dateien vergleicht (MD5, Hex o.ä.)
- Hexeditor
ganz gut. Oder eventuell auch ganz traditionell einen Keylogger für die Fortgeschrittenen? Hatten wir aber glaube ich schonmal in einem Wettbewerb

blackberry
13.06.2009, 15:15
Bei einem Rechner oder Wecker, der von einem Anfänger geschrieben wurde, kann man nichts bewerten, da die alle das selbe machen.
Interessant wird das erst, wenn man einen Ausdrucksparser einbaut und der Rechner eine ganze Formel ausrechnen kann und nicht nur Zahl1 [+-*/] Zahl2.
Dann spricht man glaube ich aber nicht mehr von Anfängern.
Ein Wettbewerb mit Anfängeraufgaben macht folglich keinen Sinn. (siehe Punkt 5 der Kriterien für Vorschläge)

Persönlich gefallen mir die Ideen IRC Bot und FTP Client, da dort ein sehr großes Potential drin steckt:
Die Basisimplementierung erscheint leicht und man kann viele weitere Funktionen hinzufügen - was die Bewertung sehr erleichtert.
Außerdem hat man da eine kleine Recherche drin und wiederverwendbar ist es auch. So kann z.B. jeder mal einen FTP Client gebrauchen.
Und ein IRC-Bot, der den Channel sauber hält und z.B. Leute kickt, die andere beleidigen ist auch sehr nützlich (ich hoffe mit IRC Bot war das gemeint und nicht im Sinne von BotNet-IRC-Bot ;) ).

kingweed
13.06.2009, 15:21
Ich hätte einen Vorschlag.

2 Excel-Dateien laden, nach Gemeinsamkeiten vergleichen und in einer dritten speichern.

In einer steht in Spalte1 vielleicht 'akaufman' und in Spalte2 'passwort'
in der anderen Tabelle in Spalte1 'arnoldkaufman' oder 'kaufman' und in Spalte2 'blablu'

in der dritten müsste es dann 2 Spalten und für o.g. Bsp. 2/3 Zeilen geben

'akaufman' + 'passwort'
'arnoldkaufman' + 'blablu'
'kaufman' + 'blablu'

natürlich direkt untereinander.

Aufgrund von 'kaufman' könnte dies bestimmt einfach sein.
Aber was ist, wenn in einer Spalte 'kauf45man' und in der anderen 'arnikaufboyman' steht?