2011-11-23, 09:54
#1
Tja alla flashbacker, har ett projekt arbete och uppgiften är att skapa ett blackjack spel. Har kommit ganska långt men jag får alltid ett error och vet inte hur jag ska ändra i koden för att få det att fungera korrekt.
Här finns hela koden:
Snälla, jag önskar bara seriösa svar. Tack på förhand!
Här finns hela koden:
public class Tjugoett
{
//Spelet
public static void main (String[] args)
{
Spelkort[] kortlek = new Spelkort[52]; //Kortleken
//Kortdata
String[] farg = {"Hjärter", "Spader", "Ruter", "Klöver",}; //Innhåller färg
String[] valor = {"Ess", "2", "3", "4", "5", "6", "7", "8", "9", "10",
"Knekt", "Dam", "Kung"}; //Valörer
int[] varde = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10};
//Poäng
int poang=0; //Spelarens poäng
//Spelvariablar
boolean nyttkort = true; //Sålänge som sant dras nytt kort
int knr=0; //Kortnummer, håller reda på vilket som är nästa kort.
char val2; //Om J/j så dras nytt kort
//Skapa kortlek
//Skapar Hjärter
for(int i=0; i<13; i++)
{
kortlek[i] = new Spelkort(Kort(farg[0], valor[i]), varde[i]);
}
//Skapar Spader
for(int i=13; i<26; i++)
{
kortlek[i] = new Spelkort(Kort(farg[1], valor[i]), varde[i]);
}
//Skapar Ruter
for(int i=26; i<39; i++)
{
kortlek[i] = new Spelkort(Kort(farg[2], valor[i]), varde[i]);
}
//Skapar Klöver
for(int i=39; i<52; i++)
{
kortlek[i] = new Spelkort(Kort(farg[3], valor[i]), varde[i]);
}
//Blanda
for (int i=0; i<1000; i++)
{
int bland = (int) (Math.random() *52);
int bland2 = (int) (Math.random() *52);
Spelkort temp1 = kortlek[bland];
Spelkort temp2 = kortlek[bland2];
kortlek[bland] = temp2;
kortlek[bland2] = temp1;
}
//Spelet
char val;//Om J/j nytt = sant
boolean nytt = true; //Om sant - nytt spel
System.out.println("Tjugoett!");
while(nytt)
{
System.out.println("Vill du spela en omgang? (j/n)");
val = Keyboard.readChar();
knr=0;//Tömmer kortnummer efter varje spel så fältets kapacitet ej överskrids
if (val == 'j'|| val == 'J')
{
do
{
System.out.println("Vill du dra ett nytt kort? (j/n)");
val2 = Keyboard.readChar();
if(val2 == 'j'|| val2 == 'J')
{
System.out.println("Du drog " + kortlek[knr] + " och har "
+ poang + " poang.");
knr = knr+1;
}
else
{
nyttkort=false;
}
}
while(nyttkort && poang<=21);
}
else
{
nytt = false;
}
}
//Skriv ut kortlek
for(int i=0; i<52; i++)
{
System.out.println(kortlek[i]);
}
}
//Spelkortsklassen
class Spelkort
{
public String kort;
public int varde;
};
//Kortleksfunktion
static String Kort(String x, String y)
{
String kort;
kort = x + " " + y;
return kort;
}
}
{
//Spelet
public static void main (String[] args)
{
Spelkort[] kortlek = new Spelkort[52]; //Kortleken
//Kortdata
String[] farg = {"Hjärter", "Spader", "Ruter", "Klöver",}; //Innhåller färg
String[] valor = {"Ess", "2", "3", "4", "5", "6", "7", "8", "9", "10",
"Knekt", "Dam", "Kung"}; //Valörer
int[] varde = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10};
//Poäng
int poang=0; //Spelarens poäng
//Spelvariablar
boolean nyttkort = true; //Sålänge som sant dras nytt kort
int knr=0; //Kortnummer, håller reda på vilket som är nästa kort.
char val2; //Om J/j så dras nytt kort
//Skapa kortlek
//Skapar Hjärter
for(int i=0; i<13; i++)
{
kortlek[i] = new Spelkort(Kort(farg[0], valor[i]), varde[i]);
}
//Skapar Spader
for(int i=13; i<26; i++)
{
kortlek[i] = new Spelkort(Kort(farg[1], valor[i]), varde[i]);
}
//Skapar Ruter
for(int i=26; i<39; i++)
{
kortlek[i] = new Spelkort(Kort(farg[2], valor[i]), varde[i]);
}
//Skapar Klöver
for(int i=39; i<52; i++)
{
kortlek[i] = new Spelkort(Kort(farg[3], valor[i]), varde[i]);
}
//Blanda
for (int i=0; i<1000; i++)
{
int bland = (int) (Math.random() *52);
int bland2 = (int) (Math.random() *52);
Spelkort temp1 = kortlek[bland];
Spelkort temp2 = kortlek[bland2];
kortlek[bland] = temp2;
kortlek[bland2] = temp1;
}
//Spelet
char val;//Om J/j nytt = sant
boolean nytt = true; //Om sant - nytt spel
System.out.println("Tjugoett!");
while(nytt)
{
System.out.println("Vill du spela en omgang? (j/n)");
val = Keyboard.readChar();
knr=0;//Tömmer kortnummer efter varje spel så fältets kapacitet ej överskrids
if (val == 'j'|| val == 'J')
{
do
{
System.out.println("Vill du dra ett nytt kort? (j/n)");
val2 = Keyboard.readChar();
if(val2 == 'j'|| val2 == 'J')
{
System.out.println("Du drog " + kortlek[knr] + " och har "
+ poang + " poang.");
knr = knr+1;
}
else
{
nyttkort=false;
}
}
while(nyttkort && poang<=21);
}
else
{
nytt = false;
}
}
//Skriv ut kortlek
for(int i=0; i<52; i++)
{
System.out.println(kortlek[i]);
}
}
//Spelkortsklassen
class Spelkort
{
public String kort;
public int varde;
};
//Kortleksfunktion
static String Kort(String x, String y)
{
String kort;
kort = x + " " + y;
return kort;
}
}
Snälla, jag önskar bara seriösa svar. Tack på förhand!
