SPIEL: BlackJack mit JS und HTML

sein_schnucki

Neuling
Thread Starter
Mitglied seit
03.06.2009
Beiträge
32
Ort
Hildesheim
Hi,

ich will ein BlackJack Spiel erstellen, in dem ich "Karten ziehe" (ich drück auf nen Button und ein Popup mit einer Zufallszahl erscheint), bis 21 Punkte erreicht sind. Ich möchte das Karten ziehen wie gesagt mit dem Button machen, bis ich sage "Okay, nich weiter.". Danach möchte ich auf einen Button daneben klicken und das Ergebnis des Computers soll erscheinen, mit meinem verglichen werden und der Sieger ermittelt werden.

Hier hab ich mal einen Anfang, der jetzt schon nicht mehr funktioniert. Vielleicht nimmt sich ja einer Zeit dafür...:

<html>
<head>
<title><blink>BlackJack by Mona - 11.05.10</blink></title>
<script language="JavaScript">
int ergebnis;

function zufallsblatt() //Hier wird die Zufallszahl generiert
{
var zufall=Math.floor(Math.random()*11)+1;
ergebnis=ergebnis+zufall;
}
do
{
window.alert("Sie zogen eine "+zufall+" und stehen damit bei "+ergebnis); //Hier wird sie dann ausgegeben und mit jedem weiteren Klick
}while(ergebnis<21); //soll es aufaddiert und in "ergebnis" gespeichert und ausgegeben
//werden.
if(ergebnis>21) //Hier soll das Spiel abgebrochen werden, wenn man über 21 ist.
{
window.alert("Das Spiel ist vorbei, da Sie 21 Punkte überschritten haben. Der Computer gewinnt.");
}
</script>
</head>

<body bgcolor="#00AFFF">
<p align="center"><font face="Arial" size="40" color="white"><blink>Black Jack</blink></font>
<br>
<br>
<font face="Arial" color="white">Drücken Sie auf diesen Button, um eine Karte zu ziehen.<br>
Versuchen Sie so nah wie möglich an 21 Punkte heran zu ziehen. Nach Ihnen ist der Computer dran.</font>
<br>
<br>
<input type="button" value="Drück ihn!" onClick="zufallsblatt();"></input></p>
</body>
</html>

Vielleicht hat ja einer Zeit und Lust, sich mit der Spielerei zu beschäftigen. :)
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Warum schreibst du die Schleife außerhalb der Funktion und rufst dann nur die Funktion auf? Dann wird die Schleife ja nie aufgerufen, sondern nur die Zufallszahlen generiert und bei der if-abfrage ist das selbe Spiel.

Auch würde ich nicht mit einer do-while-Schleife arbeiten, sondern -da die Abbruchbediengungen sicherer sind- mit eine for-Schleife.

Desweiteren schreibt net int ergebnis sondern var ergebnis.


Gruß,
Sebastian
 
Zuletzt bearbeitet:
Hi,

willst du das ganze wirklich in JS schreiben ?
Nur zum JS lernen oder wirklich auch zum später damit spielen ?

Wenn es nur zum JS lernen ist: ok, falls nicht-> PHP+Ajax.

Nun aber zum Code:
1) Schreib es nicht in die html direkt rein, gibt ein gewurstel mit HTML+JS. Alles JS auslagern in eine Datei und einbinden.
2) :
PHP:
var zufall=Math.floor(Math.random()*11)+1;
in eigene Funktion auslagern mit return zufall
-> Diese Funktion kannst du mehrmals brauchen (1x bei User, 1x bei PC gegner), musst sie also nicht 2x schreiben sondern nur aufrufen.

3) Dein Konstrukt führt sich so lange aus, bis ergebnis>21 ist. Der User hat noch gar keine Möglichkeit abzubrechen.
Ich würde umdenken: bei jedem Button-Click 1x "karte ziehen" (zufallszahl) und dann, wenn gewünscht, noch einmal Button Click für weitere Karte.
Prüfen ob > 21, wenn ja -> verloren.

4) Wie schon genannt for-schleife
5) Muss natürlich auch alles in der Funktion zufallsblatt drin stecken, deine schleife wird zur Zeit gar nicht ausgeführt:
PHP:
function zufallsblatt() //Hier wird die Zufallszahl generiert
{
var zufall=Math.floor(Math.random()*11)+1;
ergebnis=ergebnis+zufall;
} // hier endet deine Funktion, die nachstehende Schleife ist außerhalb -> wird nicht ausgeführt
Mit einem "gescheiten" editor (ich lege dir notepad++ (kostenlos)) ans Herz passiert das nicht - der zeigt an welche klammern zusammen gehören.

6.) Allgemein (was jetzt rein zum JS lernen nicht wichtig ist, für eine echte Webseite aber dazu gehört):
HTML - Doctype - externes Stylesheet - CSS - <div>-boxen+CSS statt <br><br><br> zur Positionierung.
Aber wie gesagt für rein JS lernen mal zu vernachlässigen.

PS: wie weit willst du das ganze treiben ?
Regeln einbeziehen ? Black Jack (11+10), 3x7 usw. ?
Mehrspieler ? Einsätze (nur virtuelle natürlich) ?

Mfg.
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh