@elBenko: Sjysst av dig tack! Jag har inte testat ditt förslag men löste det genom hjälp från en i min klass. Grejen med programmering är ju också, vilket är coolt i sig är att det finns många lösningar på ett problem.
Nu är det bara nästa inlämning som också ska göras där deadlinen var för en vecka sen. Men har ganska omgående lagt ner tanken på att få mer än G. För att få VG så måste deadlinen hållas, i varje fall att det mesta av programmet som lämnas in är funktionellt.
@bikerrog: Ok, skönt du fick löst uppgiften iaf. Bara hojta till om du behöver hjälp med något mer.
Tycker inte du ska hänga läpp över _enbart_ ett G, huvudsaken är egentligen att du förstår grejerna.
Ja programmering är kul på så vis att det finns massa olika lösningar på samma problem, där man kan utmana sig själv att förbättra sina tidigare lösningar allt eftersom man lär sig nya tricks.
@elBenko: Tack det ska jag ha i åtanke...
Nä är nöjd om jag blir godkänd, bara det att det blir överväldigande när man samtidigt ligger efter, känns inte så kul då, men hoppas det släpper.
Hej på er!
Nu skulle jag behöva er expert hjälp igen, jag har en uppgift som går ut på: en klass som ska kunna skapa en kortlek (52 olika kort)
Blanda kortleken och dra det översta kortet i leken.
Skriv sedan ett program som utnyttjar klassen Kortlek
Skapa ett objekt av klassen,
blanda kortleken och skriva ut vad det översta kortet har för färg
(spader, hjärter, ruter, klöver) och valör (1-13).
Jag tror att jag löst det mesta men reagerade på att jag fick null istället för klöver? Kan någon hjälpa mig att fatta vad som gått fel?
public class deckOfCards2test {
public static void main(String[] args) {
deckOfCards2 deck=new deckOfCards2();
deck.makeCardDeck();
deck.shuffle();
Card give=deck.getCard();
System.out.println(give);
}
}
class Card {
/*Klassvariabler(med static). Jag har delat upp korten i suits(färg) och
* ranks(siffra)*/
static String[] suits={"\u2663", "\u2666", "\u2665", "\u2660"};
static String[] ranks={"Ace", "Two", "Three", "Four", "Five", "Six", "Seven",
"Eight", "Nine", "Ten", "Jack", "Queen", "King"};
//Instansvariabler
int c;
int v;
public Card(int color, int value) {
if (color>=0 && color <=3 && value >=1 && value <=13) {
/*Kontrollerar så att parametrarna har tillåtna värden annars så
* genereras en felsignal. Ändrar färgen
* och valören på kortet*/
c=color;
v=value;
}
else
throw new IllegalArgumentException("Wrong");
}
@Override
public String toString() {
return suits[c]+ " " + ranks[v-1];
/*Returnerar värdet av suits/colors och ranks/worth*/
}
}
import java.util.Random;
public class deckOfCards2 {
private Card[] cards;//Här är korten
private int current;//Index för nästa kort
private static Random rand=new Random();
public void makeCardDeck() {//Skapar en oblandad kortlek
cards=new Card[52];
for(int faces=1; faces<=3; faces++) {
for(int values=1; values<=12; values++) {
cards[current]=new Card(faces,values);
current++;
}
}
current=0;
}
public void shuffle() {//Blandar kortleken
for(int i=51; i>=0; i--) {//i=51,50 osv
int shuffed=rand.nextInt(i+1);//Slumpar ett tal
Card temp=cards[shuffed];
cards[shuffed]=cards[i];
cards[i]=temp;//Byter plats på korten med i och shuffed
}
}
public boolean moreCards() {
return current<52;//Kollar om det finns mer kort i korthögen
}
public Card getCard() {//Om moreCards är true så dras det översta kortet
if(current<52) {//Ifall det finns mer kort
Card topCard=cards[current];
current++;
return topCard;//returnerar det översta kortet
}
else {
return null;
}
}
}