Suche Programmierer für kleines Programm

sek800i

Cadet 1st Year
Registriert
Juni 2007
Beiträge
14
Hi,
ich wollte fragen ob mir jemand was kleines für ein Managerspiel programmieren kann.

Und zwar dreht sich dieses Spiel um Basketball, genauer gesagt die NBA. Dort findet jedes Jahr nach der Saison der sogenannte Draft statt, bei dem die Teams Spieler aus dem College verpflichten dürfen. Dabei dürfen die schlechten teams zuerst einen Spieler draften, die guten Teams am Schluss. Die Reihenfolge erfolgt jedoch nicht nach Bilanzierung sondern wird durch ein Losverfahren festgelegt, bei dem die schlechten teams aber die besten Chancen haben als erstes draften zu dürfen. So ein Programm bräuchte ich jetzt, das ich nur noch die Reihenfolge eingebe wie die Teams abgeschnitten haben und das Programm dann die Reihenfolge für den Draft lost, aber sodass auch die schlechten teams relativ weit vorne sind (der erste Draftplatz sollte schon an eines der 5 schlechtesten Teams gehen). Okay nur die schlechtesten 14 teams werden gelost, die besten 16 haben ne feste Reihenfolge. Hier mal ein Screenshot für den diesjährigen Draft in echt, mit der Bilanz des Teams und die Chancen auf Platz in Prozent.
draftem1.jpg


Kurz:
Programm bei dem ich die Teams der Reihe nach eingebe und dadurch eine Reihenfolge gelost wird, bei der die schlechten Teams relativ weit oben stehen.
 
Ich dachte da an nette hilfsbereite Menschen die 5 Minuten ihrer Zeit opfern, ohne arme Schüler auszurauben.
 
Dann wirst du dir eben ein paar "arme Schöler" suche müssen, die das versuchen. Richtige Programmierer gibt es nur gegen Geld. Und wenn du ernsthaft glaubst das würde nur 5 Minuten in Anspruch nehmen, dann ist kannst du das sowieso schon vergessen.

mfg,
Markus
 
viel Glück bei der Suche, aber wenn du mich frägst, würdest du hier in diesem Forum eher einen finden der dir dabei Hilft so ein Programm zu programmieren... ;-)
 
Was ist Eingabe? Die Punkteanzahl oder nur die Reihenfolge?
Bei einer Punktezahl bräuchtest du die jeweiligen Punkte ja nur mit einer Zufallszahl zu multiplizieren und dann neu reihen... die Streuung der Zufallszahlen ist dann halt ausschlaggebend.

Wenn ich dich richtig verstanden habe, sollte das eigentlich wirklich nicht schwer umzusetzen sein... "was bezahlst du?" :D
 
Zuletzt bearbeitet:
NBA-Draft-System und einfach? Sind aber zwei Welten. Ich kenne das Draft-System. Das ist saumäßig kompliziert. Deswegen wird es auch keine Sache von 5 Minuten sein.
 
Aber ich könnte fast wetten, dass sich mindestens einer dazu berufen fühlt, das rauszufinden. Einen von euch Codern wird die Aufgabe doch bestimmt reizen, oder? :D
 
wenn die extrem stark ausgeprägte Faulheit eines Coders ihn nicht daran hindern würde...gäbs da sicher jemanden...

aber ich glaube das musst du selber machen und wie gesagt, wenn du Hilfe brauchst, weil du ein Prob hast, dann poste im Forum...DAFÜR is es eigentlich gedacht ;-)
 
Welche Sprache müsste man mindestens können doer welche würdet ihr nehmen?



k0m4 schrieb:
Aber ich könnte fast wetten, dass sich mindestens einer dazu berufen fühlt, das rauszufinden. Einen von euch Codern wird die Aufgabe doch bestimmt reizen, oder? :D

Das hoffe ich :D

bassti schrieb:
NBA-Draft-System und einfach? Sind aber zwei Welten. Ich kenne das Draft-System. Das ist saumäßig kompliziert. Deswegen wird es auch keine Sache von 5 Minuten sein.

Ein NBA Fan hier am Start :freaky:
 
Also für sowas kleines würde ich dir Autohotkey (www.autohotkey.com) empfehlen.

Das hat erstens eine ganz hervorragende Hilfe und zweitens ist die Sprache an sich ziemlich einfach und bietet prima Funktionen (aus einer Datei lesen ist ein Einzeiler, Parsen auch fast).
Ist natürlich nicht so performant wie ein Programm in C++, aber das ist bei so kleinen Sachen ja auch gar nicht nötig.

Würde auch helfen bzw. mich damit beschäftigen, aber ich habe das System irgendwie nicht verstanden.
 
Zuletzt bearbeitet:
Wieso Autohotkey? Es geht ja nicht darum um irgendein Systemskript zu basteln, sondern einfach ein "normales" Programm.

@sek800i:
Ich kenne das Draft-System leider nicht - aber wenn du noch einmal ein wenig genauer beschreiben könntest was du willst... was genau ist Eingabe, was Ausgabe, was stellst du dir genau darunter vor etc.
 
Die NBA draft lottery ist gar nicht so kompliziert, im Grunde ist sie sogar derart simpel, daß sich das ganze releativ einfach 1:1 in Code gießen läßt. Man kann das ganze auch stark vereinfachen und aus den drei Lotterien mit jeweils vier Ziehungen (4 aus 14) drei einfache Ziehungen machen (1 aus 1001), schließlich zählt lediglich das Ergebnis und die Spannung einer Lotterie kann man sich ja (zumindest für's erste) schenken :D

greetings, Keita
 
Soviel wie ich aus dem Eröffnungspost erkennen kann, geht es doch auschließlich darum die Teams neu zu reihen - also mit Ziehungen etc. sollte das Programm selbst nichts mehr zu tun haben - wie gesagt, genauere Infos wären praktisch.
 
Doch, doch, das Programm muß die Teams "neu sortieren":
Bei der NBA draft lottery geht es darum die Reihenfolge der 30 NBA-Teams für den NBA-Draft zu bestimmen. Von den 30 Teams sind 16 für die Play-Offs qualifiziert und nehmen daher nicht an der Lotterie teil, unter den verbleibenden 14 Teams werden drei Teams ermittelt, die als erste zugreifen dürfen. Die übrigen elf Teams sowie die 16 Play-Off-Teilnehmer kommen in umgekehrter Reihenfolge ihrer Saisonbilanzen zum Zuge.

Bei den Lottoziehungen sind 14 Kugeln in der Maschine, von denen je Durchgang vier gezogen werden, daraus ergeben sich 1001 mögliche Kombinationen. Diese Kombinationen werden im Vorfeld gewichtet an die Teams verteilt, so daß das schlechteste Team der Saison 250 Kombinationen erhält, das beste der 14 Teams immerhin noch fünf Kombinationen.

Das Programm sollte also einfach anhand der Reihenfolge der Teams die Draft-Reihenfolge ermitteln (einfach spiegeln), danach den 14 Non-Play-Off-Teams die 1001 Möglichkeiten entsprechend der Vergabeschlüssel zuweisen und zum Schluß die drei Top-Scores (Zufallszahlen zw. 1 und 1001) ermitteln. Man könnte sich natürlich auch die Vergabe der 1001 Möglichkeiten sparen, wenn die Zufallszahlen halbwegs "brauchbar" sind.

greetings, Keita
 
Hallo Leute!

Verstehe ich das richtig? :

Es gibt ne Rangliste (1 Buchstabe = 1 Team):
(abcdefghijklmnopqrstuvwxyzäüö@)

Die 16 ersten sind von der Auslosung ausgeschlossen:
(abcdefghijklmnop) (qrstuvwxyzäüö@)

Von den letzten 14 werden 3 stück ausgelost:
16 ersten=(abcdefghijklmnop) und z.B ausgeloste=(xsö) Rest=(qrtuvwyzäü@)

Dann die neue Aufstellung:
(xsö)(@üäzywvutrq)(ponmlkjihgfedcba)
 
Zuletzt bearbeitet:
Also ich bin kein Profi aber wenn das oben so stimmt, dann hab ich hier einen Versuch das ganze in C++ um zu setzen. Habs aber noch nicht getestet.:D(vll noch ´n paar Fehler drin)

Code:
int main()
{
string liste[30];	[COLOR="Green"]//gesamte Rangliste[/COLOR]


[COLOR="Green"]//-Benennung-der-Liste-[/COLOR]
for(i=0;i<30;i++)
{
cout << "Team " << i+1 << " eingeben : ";
cin  >> liste[i];
}
[COLOR="Green"]//---------------------[/COLOR]


string draftliste[30];	[COLOR="Green"]//Endliste[/COLOR]
string ausgeloste[3];	[COLOR="Green"]//ausgelosten 3 Teams[/COLOR]
string vergleich;	[COLOR="Green"]//Überprüfungvar. [/COLOR]


[COLOR="Green"]//------Auslosung-----[/COLOR]
srand(time(0))	[COLOR="Green"]//Zufallsgenerator initialisieren[/COLOR]

for(l=0;l<3;l++)
{
A_Marke:
vergleich=liste[(rand()%14)+15];		[COLOR="Green"]//Auslosung(Zufallsgenerator)[/COLOR]

for(x=l;x>0;x--)
{
if(ausgeloste[x]==vergleich){goto A_Marke;}[COLOR="Green"]//Überprüfung ob schon vorhanden[/COLOR]
}

vergleich=ausgeloste[l];	[COLOR="Green"]//Korrektes Team = ausgelost[/COLOR]
}
[COLOR="Green"]//----------------------[/COLOR]


[COLOR="Green"]//-Draft-Listen-Bildung-[/COLOR]
for(i=0;i<3;i++)
{
draftliste[i]=ausgeloste[i]		[COLOR="Green"]//Die Ausgelosten = die ersten 3[/COLOR]
}
//-die-14-letzten-nach-vorne
for(p=3;p=14;p++)			[COLOR="Green"]//Schleife für die Draftliste[/COLOR]
{
for(i=29;i>15;i--)			[COLOR="Green"]//Schleife für Rückwärts lesen/schreiben[/COLOR]
{

if(liste[i]!=ausgeloste[0])[COLOR="Green"]//Überprüfung ob zahl schon in den ersten 3 vorkommt[/COLOR]
{
if(liste[i]!=ausgeloste[1]) 
{
if(liste[i]!=ausgeloste[2])	
{
draftliste[p]=liste[i]		[COLOR="Green"]//Zuweisung[/COLOR]
}
}
}

}
}
[COLOR="Green"]//die-16-ersten-hinten-dran-hängen[/COLOR]
for(p=14;p<30;p++)
{
for(i=15;i=0;i--)
{
draftliste[p]=liste[i]
}
}


[COLOR="Green"]//---Ausgabe---[/COLOR]
cout << endl << DRAFTLISTE: << endl;
for(k=0;k<30;k++)
{
cout << "(" << k+1 << ")" << draftliste[k];
}

cin.get()
return 0;
}


Was sagt ihr dazu? :confused_alt: Taugt das was? :confused_alt:
 
Zuletzt bearbeitet:
Kamikatze schrieb:
Wieso Autohotkey? Es geht ja nicht darum um irgendein Systemskript zu basteln, sondern einfach ein "normales" Programm

Mit Autohotkey kann man auch ganz normal programmieren. Es hat den Vorteil der einfachen Syntax, bringt für viele alltägliche Sachen schon komfortable Funktionen mit und man muss sich nicht mit Speicher und Typen rumschlagen. Man kann auch schnell grafische Ein- und Ausgaben machen sowie leicht aus und in Textdateien schreiben.

Zum Beispiel ist auch ac'tivAid von der c't in Autohotkey geschrieben.
 
Das was Keita gesagt war mir zunächst nicht bewusst, ein Blick auf die Grafik und seine Erklärung macht Sinn. Also da 16 Teams in den Playoffs sind, müssen wir über diese nicht reden, die kann man per Hand hinten drann setzen, das heist es dreht sich jetzt nur noch um 14 Teams. Davon werden 3 Teams ausgelost, der Rest wieder nach Bilanz hinten drann gepflanzt. Als Eingabe gäbe es zwei Möglichkeiten, entweder so:
Team x 25 % Chancen
Team y 11 % Chancen
...
Das 14 mal oder einfach nur die Teams in der Reihenfolge und die Chancen "weis" das Programm schon (wäre dann denk ich mal schwieriger zu programmieren).

Ausgabe wären nur 3 Teams, die restlichen elf kann man wieder per Bilanz mit der Hand hinzufügen, könnte zwar auch das Programm machen, wäre aber nur mehr Arbeit zu Programmieren. Kurz: Das Programm sucht aus 14 Teams drei heraus, wobei die Chancen eingehalten werden müssen.
 
Tag seki800i!

Was genau willst du machen bzw. gemacht bekommen?

Nur ein Programm für das Draft zeug? Das ganze "Managerspiel" programmieren oder willst du gleich ganz programmieren lernen? Oder kannste schon Programmieren und willst nur ´ne Anregung bekommen ?

,greetings Sepsis
 
Zurück
Oben