Problem med kortleksprogram|Programmering / Grafisk formgivning|Forum|Nordichardware

Search
Forum Scope


Match



Forum Options



Minimum search word length is 3 characters - maximum search word length is 84 characters
Lost password?
The forums are currently locked and only available for read only access
sp_Feed sp_TopicIcon
Problem med kortleksprogram
xerxes
Siktar mot toppen
Medlem
Forum Posts: 60
Member Since:
May 10, 2003
sp_UserOfflineSmall Offline
1
May 28, 2003 - 12:01 pm
sp_Permalink sp_Print

Jag håller på med ett program som ska spela kortspelet 21. Problemet är att jag får ett konstigt fel då jag komilerar:
"G:XerxesJavaFinal.java:45: non-static variable this cannot be referenced from a static context
kortlek[i] = new Spelkort(farg[1] + " " + valor[i], varde[i]);"

Någon som vet hur jag löser detta? Programmet ser ut som nedan:

public class Tjugoett
{


//Spelet
public static void main (String[] args)
{

//Kortdata
Spelkort[] kortlek = new Spelkort[52]; //Kortleken
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;

}

}
Pim_
Member
Medlem
Forum Posts: 3947
Member Since:
March 20, 2003
sp_UserOfflineSmall Offline
346256
May 28, 2003 - 12:27 pm
sp_Permalink sp_Print

tänka...tänka....

classen Spelkort verkar inte vara riktig
till att börja med bör alla fristående classer/funktioner ligga innan programmet sen har du ett semikolen efter classslut???

Det felet du får finns inte med i koden..så det är lite svårt...du tilldelar helt olika i kompileringen o du bör skapa kortleken i en konstruktor innan resten av programmet kör igång....

Kanske inte hjälper dig med just dit problem men lite tips på programmuppbyggnad iallafall (blir mkt lättare o felsöka då oxå)

Rune
Kommer du hit ofta?
Medlem
Forum Posts: 1766
Member Since:
April 11, 2003
sp_UserOfflineSmall Offline
346327
May 28, 2003 - 2:11 pm
sp_Permalink sp_Print

Du xerxes, när du är klar med 21:an så får du fixa så att man kan ladda ner det och provspela. 🙂 För jag är sugen på det.

Forum Timezone: Europe/Stockholm
Most Users Ever Online: 694
Currently Online:
Guest(s) 46
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Andreas Galistel: 16287
Jonas Klar: 15897
ilg@dd: 10810
Nyhet: 10607
Mind: 10550
Ctrl: 10355
Gueno: 9881
Guest: 9344
Snorch: 8881
Callister: 8468
Newest Members:
PetrbonFU PetrbonFU
Karine Bembry
Dolores Mcdaniels
Anibal McLeish
Francisca Alt
Alfie Everhart
Lester Huitt
Orlando Jorgensen
Mikki Lundgren
Dakota Kozlowski
Forum Stats:
Groups: 11
Forums: 59
Topics: 146630
Posts: 1300967

 

Member Stats:
Guest Posters: 2
Members: 79425
Moderators: 0
Admins: 11
Administrators: nordicadmin, Henrik Berntsson, Anton Karmehed, Carl Holmberg, Joel Oscarsson, Mikael Linnér, Mikael Schwartz, Andreas Paulsson, Nickebjrk, Mattias Pettersson, EmxL