stoerti
12.06.2005, 20:14
Ich spiele ja schon seit langem mit einem umfangreichen Roulettesimulationssystem rum.
Da solche Dinger sehr fehleranfällig sind, habe ich ein altes System mal neu angefangen und zwar auf einem Server, da ich jetzt sehr bald geschäftlich viel unterwegs bin und zu Hause auf meine Server nicht so drauf komme, wie ich das müsste.
Somit wollte ich also eigentlich ein Simulationssystem programmieren, welches sich selbst weiter entwickelt.
Da ist auch schon einiges drin programmiert und ich habe das mal im Separee etwas verfrüht angekündigt.
Da eigentlich fast jeder, der sich das angeguckt hat, sofort versucht hat, irgendwie zu setzen, kam mir der Gedanke, dass vielleicht ein Interesse daran bestehen könnte,
das System so zu programmieren, dass andere das ebenfalls zu Simulationszwecken nutzen könnten.
Wie würde sowas aber nun aussehen?
Nun, ich habe mich dazu entschieden, einen Gamedriver eines alten Rollenspieles zu nutzen, da bei diesen Gamedrivern eine Menge künstliche intelligenz eingebaut ist.
Man bewegt sich in diesem Simulationssystem wie in einem Spiel virtuell durch die Raeume und kann die künstliche intelligenz dazu nutzen, systeme zu entwickeln.
So sieht das ganze dann ich echt aus:
setze 2 stuecke auf ec rot
Todesmutig setzt Du 2 Stueck auf rot.
> James sagt: Nichts mehr bitte
James sagt: 18,rot,pair,manque
Dein Einsatz auf rot mit 2 Stuecken auf rot brachte Dir 4 Stuecke Gewinn.
James sagt: Die Einsaetze bitte
setze 2 stuecke auf ec rot
Todesmutig setzt Du 2 Stueck auf rot.
James sagt: Nichts mehr bitte
James sagt: 17,schwarz,impair,manque
Dein Einsatz mit 2 Stuecken auf rot verschwindet wie von Geisterhand.
James sagt: Die Einsaetze bitte
Hier mal ein wenig Fehlerbehandlungstests
setze 0 stuecke auf ec schwarz
Du lernst dazu!
James sagt: Nichts mehr bitte
James sagt: 23,rot,impair,passe
James sagt: Die Einsaetze bitte
setze -1 stuecke auf ec rot
Der Croupier haut Dir die Harke um die Ohren.
Man könnte sich auch mit den computergesteuerten Charakteren unterhalten:
James sagt: Nichts mehr bitte
James sagt: 17,schwarz,impair,manque
frage james nach roulette
James sagt: Ein grossartiges Spiel! Versuchen Sie doch mal Ihr Glueck!
James sagt: Die Einsaetze bitte
frage james nach glueck
James sagt: Das muss man schon haben!
frage james nach kessel
James sagt: Der arbeitet perfekt wie ein Uhrwerk.
Ploetzlich huepft die Kugel in ein anderes Fach
James sagt: Nichts mehr bitte
James sagt: 31,schwarz,impair,passe
James sagt: Die Einsaetze bitte
James sagt: Nichts mehr bitte
James sagt: 36,rot,pair,passe
James sagt: Die Einsaetze bitte
Gut, die antworten sind jetzt statisch programmiert :8)
Da kann man aber viel Spass mit machen.
Um zu zeigen, wie man sich durch die Raeume bewegt:
Du stehst hier mitten in einer riesigen Eingangshalle. Der Boden ist mit
samtig weichem Teppich ausgelegt, an den Raendern zu Wand sieht man schoene
Fliesen auf dem Boden. An der einen Wand ist eine riesige Theke aufgebaut, an
der man einen Drink nehmen kann. Das Angebot kannst Du durch Eingabe von
'menue' und der Eingabetaste lesen. An der Wand haengt ein Schild, welches Du
mit 'lies schild' und Eingabetaste lesen kannst.
Es gibt einen sichtbaren Ausgang: tisch1.
> menue
Getraenke Preis alc | Getraenke Preis alc
---------------------------------------+---------------------------------------
Kaffee 0 N | Coke 0 N
Wisky Cola 0 J | Diebels 0 J
> bestelle coke
Du trinkst eine kuehle Coke
>
> tisch1
Du befindest Dich hier an Tisch 1 des Casinos. Der Tisch ist ein
franzoesischer Tisch.
Es gibt einen sichtbaren Ausgang: halle.
James, der Wurfcroupier.
> James sagt: Die Einsaetze bitte
James sagt: Nichts mehr bitte
James sagt: 15,schwarz,impair,manque
James sagt: Die Einsaetze bitte
James sagt: Nichts mehr bitte
James sagt: Nach dem naechsten Wurf wechselt die Hand!
James sagt: 0
James sagt: Die Einsaetze bitte
James sagt: Die Einsaetze bitte
setze 2 stuecke auf ec rot
Todesmutig setzt Du 2 Stueck auf rot.
James sagt: Nichts mehr bitte
James sagt: 8,schwarz,pair,manque
Dein Einsatz mit 2 Stuecken auf rot verschwindet wie von Geisterhand.
Jut, soweit dazu.
Es liessen sich innerhalb des Simulationssystems Objekte entwickeln, mit dem ein Spieler ganz leicht Daueransagen und komplette Systeme entwickeln könnte, auch ohne programmieren zu können.
Dafür müsste man eine mathematische Sprache entwickeln, mit der sowas geht.
Eigentlich nicht weiter schwer, da solch ein MUD-Gamedriver Befehlsstacks ganz einfach verarbeiten kann.
Da könnte die Programierung solch einer Sprache in etwa so aussehen:
warte auf 2 erscheinungen farbe rot
setze martingale 5 mal rot
oder
warte auf 2 erscheinungen 0-1-1
setze gleichsatz 15 mal 0
oder wie auch immer
Das müsste allerdings noch alles programmiert werden, was aber nicht weiter schwer ist.
Allerdings ist bei mir die Zeit zur Zeit sehr knapp.
Daher wäre es sehr gut, wenn jemand fit in der Sprache LPC ist, in der solche MUDs (Multi User Dungeons) programmiert werden.
Der Gamedriver ist LDMud 3.2.41, die LIB ist Morgengrauen/AnderLand
(sollte in dem Fall aber uninteressant sein)
Wem das alles nichts sagt, die Programmierung ist OOP in Vollendung.
(OOP = objektorientierte Programmierung)
LPC ist ein Mix aus Lisp (für die künstliche Intelligenz) C und Perl
Ein Stückchen Code sieht so aus:
void Berechnen (int lstNr,object pl, int stuecke, string sChance, string Welche) {
int GewinnFarbe;
int iGesperrte;
int iGewinn;
iGesperrte = 0;
iGewinn = 0;
GewinnFarbe = Farbe(GewinnZahl);
Gesperrte = allocate_mapping(5000,4);
if (sChance == "Farbe") {
if (GewinnFarbe == 0) { // Sperren wir den Einsatz
Gesperrte[iGesperrte,0] = pl;
Gesperrte[iGesperrte,1] = stuecke;
Gesperrte[iGesperrte,2] = "Farbe";
Gesperrte[iGesperrte,3] = Welche;
iGesperrte ++;
tell_object(pl,"Dein Einsatz auf " + Welche + " mit " + (string)stuecke + " Stuecken wurde gesperrt.\n");
}
if (GewinnFarbe == 1 && Welche == "rot") {
pl->AddMoney(stuecke*2);
iGewinn = 1;
}
Um so triviale Sachen wie Moneymanagement muss man sich nicht kümmern, das ist alles schon eingebaut, siehe
pl->AddMoney(stuecke*2);
wobei pl in dieser Funktion für den Spieler steht, der -in diesem Fall- einen Einsatz auf einer einfachen Chance (hier auf rot) gewinnt
Die Zahlen, die der Croupier da wirft, sind im übrigen reale Permanenzen bekannter Casinos!
Gut, um es abzukürzen:
Wenn ich das alleine Programmiere, wirds noch so 2,3 Jahre dauern (oder 20,30)
Wenn hier also irgendjemand ist, der programmieren kann, und wenn es nur
C++ ist oder Perl, und der Lust dazu hat, das vermutlich heftigste Simulationssystem der Welt für Glückspielangelegenheiten zu entwickeln, der möchte mir Bescheid geben!
Da solche Dinger sehr fehleranfällig sind, habe ich ein altes System mal neu angefangen und zwar auf einem Server, da ich jetzt sehr bald geschäftlich viel unterwegs bin und zu Hause auf meine Server nicht so drauf komme, wie ich das müsste.
Somit wollte ich also eigentlich ein Simulationssystem programmieren, welches sich selbst weiter entwickelt.
Da ist auch schon einiges drin programmiert und ich habe das mal im Separee etwas verfrüht angekündigt.
Da eigentlich fast jeder, der sich das angeguckt hat, sofort versucht hat, irgendwie zu setzen, kam mir der Gedanke, dass vielleicht ein Interesse daran bestehen könnte,
das System so zu programmieren, dass andere das ebenfalls zu Simulationszwecken nutzen könnten.
Wie würde sowas aber nun aussehen?
Nun, ich habe mich dazu entschieden, einen Gamedriver eines alten Rollenspieles zu nutzen, da bei diesen Gamedrivern eine Menge künstliche intelligenz eingebaut ist.
Man bewegt sich in diesem Simulationssystem wie in einem Spiel virtuell durch die Raeume und kann die künstliche intelligenz dazu nutzen, systeme zu entwickeln.
So sieht das ganze dann ich echt aus:
setze 2 stuecke auf ec rot
Todesmutig setzt Du 2 Stueck auf rot.
> James sagt: Nichts mehr bitte
James sagt: 18,rot,pair,manque
Dein Einsatz auf rot mit 2 Stuecken auf rot brachte Dir 4 Stuecke Gewinn.
James sagt: Die Einsaetze bitte
setze 2 stuecke auf ec rot
Todesmutig setzt Du 2 Stueck auf rot.
James sagt: Nichts mehr bitte
James sagt: 17,schwarz,impair,manque
Dein Einsatz mit 2 Stuecken auf rot verschwindet wie von Geisterhand.
James sagt: Die Einsaetze bitte
Hier mal ein wenig Fehlerbehandlungstests
setze 0 stuecke auf ec schwarz
Du lernst dazu!
James sagt: Nichts mehr bitte
James sagt: 23,rot,impair,passe
James sagt: Die Einsaetze bitte
setze -1 stuecke auf ec rot
Der Croupier haut Dir die Harke um die Ohren.
Man könnte sich auch mit den computergesteuerten Charakteren unterhalten:
James sagt: Nichts mehr bitte
James sagt: 17,schwarz,impair,manque
frage james nach roulette
James sagt: Ein grossartiges Spiel! Versuchen Sie doch mal Ihr Glueck!
James sagt: Die Einsaetze bitte
frage james nach glueck
James sagt: Das muss man schon haben!
frage james nach kessel
James sagt: Der arbeitet perfekt wie ein Uhrwerk.
Ploetzlich huepft die Kugel in ein anderes Fach
James sagt: Nichts mehr bitte
James sagt: 31,schwarz,impair,passe
James sagt: Die Einsaetze bitte
James sagt: Nichts mehr bitte
James sagt: 36,rot,pair,passe
James sagt: Die Einsaetze bitte
Gut, die antworten sind jetzt statisch programmiert :8)
Da kann man aber viel Spass mit machen.
Um zu zeigen, wie man sich durch die Raeume bewegt:
Du stehst hier mitten in einer riesigen Eingangshalle. Der Boden ist mit
samtig weichem Teppich ausgelegt, an den Raendern zu Wand sieht man schoene
Fliesen auf dem Boden. An der einen Wand ist eine riesige Theke aufgebaut, an
der man einen Drink nehmen kann. Das Angebot kannst Du durch Eingabe von
'menue' und der Eingabetaste lesen. An der Wand haengt ein Schild, welches Du
mit 'lies schild' und Eingabetaste lesen kannst.
Es gibt einen sichtbaren Ausgang: tisch1.
> menue
Getraenke Preis alc | Getraenke Preis alc
---------------------------------------+---------------------------------------
Kaffee 0 N | Coke 0 N
Wisky Cola 0 J | Diebels 0 J
> bestelle coke
Du trinkst eine kuehle Coke
>
> tisch1
Du befindest Dich hier an Tisch 1 des Casinos. Der Tisch ist ein
franzoesischer Tisch.
Es gibt einen sichtbaren Ausgang: halle.
James, der Wurfcroupier.
> James sagt: Die Einsaetze bitte
James sagt: Nichts mehr bitte
James sagt: 15,schwarz,impair,manque
James sagt: Die Einsaetze bitte
James sagt: Nichts mehr bitte
James sagt: Nach dem naechsten Wurf wechselt die Hand!
James sagt: 0
James sagt: Die Einsaetze bitte
James sagt: Die Einsaetze bitte
setze 2 stuecke auf ec rot
Todesmutig setzt Du 2 Stueck auf rot.
James sagt: Nichts mehr bitte
James sagt: 8,schwarz,pair,manque
Dein Einsatz mit 2 Stuecken auf rot verschwindet wie von Geisterhand.
Jut, soweit dazu.
Es liessen sich innerhalb des Simulationssystems Objekte entwickeln, mit dem ein Spieler ganz leicht Daueransagen und komplette Systeme entwickeln könnte, auch ohne programmieren zu können.
Dafür müsste man eine mathematische Sprache entwickeln, mit der sowas geht.
Eigentlich nicht weiter schwer, da solch ein MUD-Gamedriver Befehlsstacks ganz einfach verarbeiten kann.
Da könnte die Programierung solch einer Sprache in etwa so aussehen:
warte auf 2 erscheinungen farbe rot
setze martingale 5 mal rot
oder
warte auf 2 erscheinungen 0-1-1
setze gleichsatz 15 mal 0
oder wie auch immer
Das müsste allerdings noch alles programmiert werden, was aber nicht weiter schwer ist.
Allerdings ist bei mir die Zeit zur Zeit sehr knapp.
Daher wäre es sehr gut, wenn jemand fit in der Sprache LPC ist, in der solche MUDs (Multi User Dungeons) programmiert werden.
Der Gamedriver ist LDMud 3.2.41, die LIB ist Morgengrauen/AnderLand
(sollte in dem Fall aber uninteressant sein)
Wem das alles nichts sagt, die Programmierung ist OOP in Vollendung.
(OOP = objektorientierte Programmierung)
LPC ist ein Mix aus Lisp (für die künstliche Intelligenz) C und Perl
Ein Stückchen Code sieht so aus:
void Berechnen (int lstNr,object pl, int stuecke, string sChance, string Welche) {
int GewinnFarbe;
int iGesperrte;
int iGewinn;
iGesperrte = 0;
iGewinn = 0;
GewinnFarbe = Farbe(GewinnZahl);
Gesperrte = allocate_mapping(5000,4);
if (sChance == "Farbe") {
if (GewinnFarbe == 0) { // Sperren wir den Einsatz
Gesperrte[iGesperrte,0] = pl;
Gesperrte[iGesperrte,1] = stuecke;
Gesperrte[iGesperrte,2] = "Farbe";
Gesperrte[iGesperrte,3] = Welche;
iGesperrte ++;
tell_object(pl,"Dein Einsatz auf " + Welche + " mit " + (string)stuecke + " Stuecken wurde gesperrt.\n");
}
if (GewinnFarbe == 1 && Welche == "rot") {
pl->AddMoney(stuecke*2);
iGewinn = 1;
}
Um so triviale Sachen wie Moneymanagement muss man sich nicht kümmern, das ist alles schon eingebaut, siehe
pl->AddMoney(stuecke*2);
wobei pl in dieser Funktion für den Spieler steht, der -in diesem Fall- einen Einsatz auf einer einfachen Chance (hier auf rot) gewinnt
Die Zahlen, die der Croupier da wirft, sind im übrigen reale Permanenzen bekannter Casinos!
Gut, um es abzukürzen:
Wenn ich das alleine Programmiere, wirds noch so 2,3 Jahre dauern (oder 20,30)
Wenn hier also irgendjemand ist, der programmieren kann, und wenn es nur
C++ ist oder Perl, und der Lust dazu hat, das vermutlich heftigste Simulationssystem der Welt für Glückspielangelegenheiten zu entwickeln, der möchte mir Bescheid geben!