Hey Leute,
ich wende mich in der allergröten Not an euch. Mache derzeit ein Programmierparktikum bei uns an der FH ( Bin eigentlich BWLer).
Haben als Hausarbeit auf eine Black-Jack Konsolenanwendung mit Altersprüfung zu schreiben. Das Programm läuft auch soweit. Es gibt nur das Problem das die Karten nicht so wirklich zufällig sind. Ich weiss auch ungefähr wo das Problem ist. Aber ich habe keine Ahnung wo ich was an meinem Code ändern muss. Kann mir bitte irgendwer helfen.
Hier mein Code: Opti wäre wenn ihr mir zeigen würdet WO ich was ändern muss und WAS ! Es reicht leider nicht wenn Ihr mir sagt:"du musst das Objekt (Instanz der Klasse) als Klassenmember von Program anlegen (den Namen Program solltest du vlt. noch anpassen). Zwingend solltest du auch Static vermeiden. Das ist ein beliebter Neulingfehler, weil man so den Kompilier leicht zufrieden stellen kann. " Das checke ich nämlich net. H
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BlackJack.Benjamin_Radtke
{
class Program
{
static void Main(string[] args)
{
Begruessung();
string name = daten_Aufnahme();
Spiel(name);
}
private static void Begruessung()
{
Console.WriteLine("******************************* ************");
Console.WriteLine("Willkommen im Black-Jack-Paradise!");
Console.WriteLine("Bitte geben Sie zuerst Ihre Daten ein");
}
public static string daten_Aufnahme()
{
string _Vorname;
string _Nachname;
Console.WriteLine("Vorname:");
_Vorname = Console.ReadLine();
Console.WriteLine("Nachname;");
_Nachname = Console.ReadLine();
Console.WriteLine("Geburtsdatum: dd.mm.yyyy");
string datum = Console.ReadLine();
DateTime date = DateTime.Parse(datum);
TimeSpan span = DateTime.Now - date;
int jahre = span.Days / 365;
if (jahre >= 18)
{
Console.WriteLine("Hallo {0} {1}, bitte drücken Sie die ENTER-Taste um fortzufahren", _Vorname, _Nachname);
Console.ReadLine();
}
else
{
Console.WriteLine(" Sie müssen mindestens 18 Jahre alt sein. Das Spiel wird nun automatische geschlossen!");
Console.ReadLine();
Environment.Exit(0);
}
string voller_Name = _Vorname + " " + _Nachname;
return voller_Name;
}
public static void Spiel(string n)
{
Console.Clear();
Console.WriteLine("Das Spiel beginnt");
Console.WriteLine("Sie gegen das Haus");
Console.WriteLine("Viel Glück");
string name_Spieler = n;
int Spieler = Ziehung() + Ziehung();
Console.WriteLine("Aktuell haben Sie {0} Punkte", Spieler);
Spieler = Spielerspielt(Spieler);
if (Spieler > 21)
{
Console.WriteLine("Leider Verloren!");
Console.WriteLine("Die Bank hat gewonnen");
NochmalSpielen(name_Spieler);
}
else
{
Console.WriteLine("Nun zieht die Bank!");
int Bank = Ziehung() + Ziehung();
Bank = Bankspielt(Bank);
if (Bank > 21)
Console.WriteLine("{0} hat gewonnen", (name_Spieler));
NochmalSpielen(name_Spieler);
if (Bank <= Spieler)
{
Console.WriteLine("{0} hat gewonnen", name_Spieler);
NochmalSpielen(name_Spieler);
}
else
{
Console.WriteLine("Die Bank hat gewonnen!!!!");
NochmalSpielen(name_Spieler);
}
}
}
private static int Ziehung()
{
int Punktwert = 0;
int Kartenwert;
int Kartenfarbe;
Random rnd = new Random();
Kartenfarbe = rnd.Next(0,3);
Kartenwert = rnd.Next(0,12)+2;
string Kartenwert_Ausgabe = "";
if (Kartenwert < 10)
{
Punktwert = Punktwert + Kartenwert;
Kartenwert_Ausgabe = Convert.ToString(Kartenwert);
}
else if (Kartenwert > 9 && Kartenwert < 14)
{
Punktwert = Punktwert + 10;
if (Punktwert == 10)
{
Kartenwert_Ausgabe = "10";
}
else if (Punktwert == 11)
{
Kartenwert_Ausgabe = "Bube";
}
else if (Punktwert == 12)
{
Kartenwert_Ausgabe = "Dame";
}
else
{
Kartenwert_Ausgabe= "König";
}
}
else
{
Punktwert = Punktwert + 11;
Kartenwert_Ausgabe = "Ass";
}
string Kartenfarbe_Ausgabe = "";
switch (Kartenfarbe)
{
case 0:
Kartenfarbe_Ausgabe = "Karo";
break;
case 1:
Kartenfarbe_Ausgabe = "Herz";
break;
case 2:
Kartenfarbe_Ausgabe = "Pik";
break;
case 3:
Kartenfarbe_Ausgabe = "Kreuz";
break;
}
Console.WriteLine("Gezogenen Karte:");
Console.WriteLine("{0} {1}",Kartenfarbe_Ausgabe , Kartenwert_Ausgabe );
return Punktwert;
}
private static int Spielerspielt(int x)
{
int SpielerTemp = x;
if (SpielerTemp < 22)
{
Console.WriteLine("Noch eine Karte ziehen (J/N)");
if (Console.ReadLine().ToLower() == "j")
{
SpielerTemp = SpielerTemp + Ziehung();
Console.WriteLine("Ihr aktuele Punktzahl ist {0}", SpielerTemp);
Spielerspielt(SpielerTemp);
}
else
{
}
return SpielerTemp;
}
else
{
return SpielerTemp;
}
}
private static int Bankspielt(int x)
{
int BankTemp = x;
if (BankTemp < 22)
{
if (BankTemp < 17)
{
BankTemp = BankTemp + Ziehung();
Console.WriteLine("Die aktuele Punktzahl der Bank beträgt {0}", BankTemp);
Bankspielt(BankTemp);
}
else
{
}
return BankTemp;
}
else
{
return BankTemp;
}
}
private static void NochmalSpielen(string n)
{
Console.WriteLine("Nochmal spielen (J/N)");
if (Console.ReadLine().ToLower() == "j")
{
Spiel(n);
}
else
{
Environment.Exit(0);
}
}
}
}
ich wende mich in der allergröten Not an euch. Mache derzeit ein Programmierparktikum bei uns an der FH ( Bin eigentlich BWLer).
Haben als Hausarbeit auf eine Black-Jack Konsolenanwendung mit Altersprüfung zu schreiben. Das Programm läuft auch soweit. Es gibt nur das Problem das die Karten nicht so wirklich zufällig sind. Ich weiss auch ungefähr wo das Problem ist. Aber ich habe keine Ahnung wo ich was an meinem Code ändern muss. Kann mir bitte irgendwer helfen.
Hier mein Code: Opti wäre wenn ihr mir zeigen würdet WO ich was ändern muss und WAS ! Es reicht leider nicht wenn Ihr mir sagt:"du musst das Objekt (Instanz der Klasse) als Klassenmember von Program anlegen (den Namen Program solltest du vlt. noch anpassen). Zwingend solltest du auch Static vermeiden. Das ist ein beliebter Neulingfehler, weil man so den Kompilier leicht zufrieden stellen kann. " Das checke ich nämlich net. H
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BlackJack.Benjamin_Radtke
{
class Program
{
static void Main(string[] args)
{
Begruessung();
string name = daten_Aufnahme();
Spiel(name);
}
private static void Begruessung()
{
Console.WriteLine("******************************* ************");
Console.WriteLine("Willkommen im Black-Jack-Paradise!");
Console.WriteLine("Bitte geben Sie zuerst Ihre Daten ein");
}
public static string daten_Aufnahme()
{
string _Vorname;
string _Nachname;
Console.WriteLine("Vorname:");
_Vorname = Console.ReadLine();
Console.WriteLine("Nachname;");
_Nachname = Console.ReadLine();
Console.WriteLine("Geburtsdatum: dd.mm.yyyy");
string datum = Console.ReadLine();
DateTime date = DateTime.Parse(datum);
TimeSpan span = DateTime.Now - date;
int jahre = span.Days / 365;
if (jahre >= 18)
{
Console.WriteLine("Hallo {0} {1}, bitte drücken Sie die ENTER-Taste um fortzufahren", _Vorname, _Nachname);
Console.ReadLine();
}
else
{
Console.WriteLine(" Sie müssen mindestens 18 Jahre alt sein. Das Spiel wird nun automatische geschlossen!");
Console.ReadLine();
Environment.Exit(0);
}
string voller_Name = _Vorname + " " + _Nachname;
return voller_Name;
}
public static void Spiel(string n)
{
Console.Clear();
Console.WriteLine("Das Spiel beginnt");
Console.WriteLine("Sie gegen das Haus");
Console.WriteLine("Viel Glück");
string name_Spieler = n;
int Spieler = Ziehung() + Ziehung();
Console.WriteLine("Aktuell haben Sie {0} Punkte", Spieler);
Spieler = Spielerspielt(Spieler);
if (Spieler > 21)
{
Console.WriteLine("Leider Verloren!");
Console.WriteLine("Die Bank hat gewonnen");
NochmalSpielen(name_Spieler);
}
else
{
Console.WriteLine("Nun zieht die Bank!");
int Bank = Ziehung() + Ziehung();
Bank = Bankspielt(Bank);
if (Bank > 21)
Console.WriteLine("{0} hat gewonnen", (name_Spieler));
NochmalSpielen(name_Spieler);
if (Bank <= Spieler)
{
Console.WriteLine("{0} hat gewonnen", name_Spieler);
NochmalSpielen(name_Spieler);
}
else
{
Console.WriteLine("Die Bank hat gewonnen!!!!");
NochmalSpielen(name_Spieler);
}
}
}
private static int Ziehung()
{
int Punktwert = 0;
int Kartenwert;
int Kartenfarbe;
Random rnd = new Random();
Kartenfarbe = rnd.Next(0,3);
Kartenwert = rnd.Next(0,12)+2;
string Kartenwert_Ausgabe = "";
if (Kartenwert < 10)
{
Punktwert = Punktwert + Kartenwert;
Kartenwert_Ausgabe = Convert.ToString(Kartenwert);
}
else if (Kartenwert > 9 && Kartenwert < 14)
{
Punktwert = Punktwert + 10;
if (Punktwert == 10)
{
Kartenwert_Ausgabe = "10";
}
else if (Punktwert == 11)
{
Kartenwert_Ausgabe = "Bube";
}
else if (Punktwert == 12)
{
Kartenwert_Ausgabe = "Dame";
}
else
{
Kartenwert_Ausgabe= "König";
}
}
else
{
Punktwert = Punktwert + 11;
Kartenwert_Ausgabe = "Ass";
}
string Kartenfarbe_Ausgabe = "";
switch (Kartenfarbe)
{
case 0:
Kartenfarbe_Ausgabe = "Karo";
break;
case 1:
Kartenfarbe_Ausgabe = "Herz";
break;
case 2:
Kartenfarbe_Ausgabe = "Pik";
break;
case 3:
Kartenfarbe_Ausgabe = "Kreuz";
break;
}
Console.WriteLine("Gezogenen Karte:");
Console.WriteLine("{0} {1}",Kartenfarbe_Ausgabe , Kartenwert_Ausgabe );
return Punktwert;
}
private static int Spielerspielt(int x)
{
int SpielerTemp = x;
if (SpielerTemp < 22)
{
Console.WriteLine("Noch eine Karte ziehen (J/N)");
if (Console.ReadLine().ToLower() == "j")
{
SpielerTemp = SpielerTemp + Ziehung();
Console.WriteLine("Ihr aktuele Punktzahl ist {0}", SpielerTemp);
Spielerspielt(SpielerTemp);
}
else
{
}
return SpielerTemp;
}
else
{
return SpielerTemp;
}
}
private static int Bankspielt(int x)
{
int BankTemp = x;
if (BankTemp < 22)
{
if (BankTemp < 17)
{
BankTemp = BankTemp + Ziehung();
Console.WriteLine("Die aktuele Punktzahl der Bank beträgt {0}", BankTemp);
Bankspielt(BankTemp);
}
else
{
}
return BankTemp;
}
else
{
return BankTemp;
}
}
private static void NochmalSpielen(string n)
{
Console.WriteLine("Nochmal spielen (J/N)");
if (Console.ReadLine().ToLower() == "j")
{
Spiel(n);
}
else
{
Environment.Exit(0);
}
}
}
}
Comment