andreasmatre / prosjektvriatte Goto Github PK
View Code? Open in Web Editor NEWVri åtter prosjekt
Vri åtter prosjekt
package no.hvl.dat100.prosjekt.modell;
//import static org.junit.Assert.assertTrue;
import no.hvl.dat100.prosjekt.TODO;
import no.hvl.dat100.prosjekt.kontroll.dommer.Regler;
/**
*/
public class KortSamling {
private final int MAKS_KORT = 4 * Regler.MAKS_KORT_FARGE;
private Kort[] samling;
private int antall;
/**
* Oppretter en tom Kortsamling med plass til MAKS_KORT (hele kortstokken).
*/
public KortSamling() {
// TODO - START
samling = new Kort[MAKS_KORT];
antall = 0;
//throw new UnsupportedOperationException(TODO.constructor("KortSamling"));
// TODO - END
}
/**
* Returnerer en tabell med kortene i samlinga. Tabellen trenger ikke være
* full. Kortene ligger sammenhengende fra starten av tabellen. Kan få
* tilgang til antallet ved å bruke metoden getAntallKort(). Metoden er
* først og fremst ment å brukes i testklasser. Om man trenger
* kortene utenfor, anbefales metoden getAlleKort().
*
* @return tabell av kort.
*/
public Kort[] getSamling() {
return samling;
}
/**
* Antall kort i samlingen.
*
* @return antall kort i samlinga.
*/
public int getAntalKort() {
// TODO - STAR
return antall;
//throw new UnsupportedOperationException(TODO.method());
// TODO - END
}
/**
* Sjekker om samlinga er tom.
*
* @return true om samlinga er tom, false ellers.
*/
public boolean erTom() {
// TODO - START
if(antall==0) {
return true;
}
else {
return false;
}
//throw new UnsupportedOperationException(TODO.method());
// TODO - END
}
/**
* Legg et kort til samlinga.
*
* @param kort
* er kortet som skal leggast til.
*/
public void leggTil(Kort kort) {
// TODO - START
samling[antall] = kort;
antall++;
//throw new UnsupportedOperationException(TODO.method());
// TODO - END
}
/**
* Legger alle korta (hele kortstokken) til samlinga. Korta vil være sortert
* slik at de normalt må stokkes før bruk.
*/
public void leggTilAlle() {
// TODO - START
// Husk: bruk Regler.MAKS_KORT_FARGE for å få antall kort per farge
antall = 0;
for(Kortfarge f : Kortfarge.values()) {
for(int i = 1; i <= Regler.MAKS_KORT_FARGE; i++) {
leggTil(new Kort(f, i));
}
}
/*
for(int f = 1; f <= Kortfarge.values().length; f++) {
for(int i = 1; i <= Regler.MAKS_KORT_FARGE; i++) {
samling[(i-1)+teller] = new Kort(Kortfarge.values()[f], i);
antall++;
teller ++;
}
}
*/
//throw new UnsupportedOperationException(TODO.method());
// TODO - END
}
/**
* Fjerner alle korta fra samlinga slik at den blir tom.
*/
public void fjernAlle() {
// TODO - START
samling = new Kort[MAKS_KORT];
antall = 0;
//throw new UnsupportedOperationException(TODO.method());
// TODO - END
}
/**
* Ser på siste kortet i samlinga.
*
* @return siste kortet i samlinga, men det blir ikke fjernet. Dersom samalinga er tom, returneres
* null.
*/
public Kort seSiste() {
// TODO - START
if(erTom()==true) {
return null;
}
else {
return samling[antall-1];
}
//throw new UnsupportedOperationException(TODO.method());
// TODO - END
}
/**
* Tek ut siste kort fra samlinga.
*
* @return siste kortet i samlinga. Dersom samalinga er tom, returneres
* null.
*/
public Kort taSiste() {
// TODO - START
if(erTom()==true) {
return null;
}
else {
Kort retur = samling[antall-1];
samling[antall-1] = null;
antall--;
return retur;
}
//throw new UnsupportedOperationException(TODO.method());
// TODO - END
}
/**
* Undersøker om et kort finst i samlinga.
*
* @param kort.
*
* @return true om kortet finst i samlinga, false ellers.
*/
public boolean har(Kort kort) {
// TODO - START
for(Kort elem : samling) {
if(elem != null && elem.equals(kort)) {
return true;
}
}
return false;
//throw new UnsupportedOperationException(TODO.method());
// TODO - END
}
/**
* Fjernar et kort frå samlinga. Dersom kortet ikke finnest i samlinga,
* skjer ingenting med samilingen
*
* @param kort
* kortet som skal fjernast. Dersom kortet ikke finnes, skjer
* ingenting.
* @return true om kortet blev fjernet fra samlinga, false ellers.
*/
public boolean fjern(Kort kort) {
// TODO - START
for(int i = 0; i < samling.length; i++) {
if(kort == samling[i] && kort != null) {
samling[i] = null;
antall --;
//KortUtils.sorter(samling);
return true;
}
}
return false;
//throw new UnsupportedOperationException(TODO.method());
// TODO - END
}
/**
* Gir kortene som en tabell av samme lengde som antall kort i samlingen
*
* @return tabell av kort som er i samlingen, der kort skal ha samme rekkefølge
* som i kortsamlinga.
*/
public Kort[] getAllekort() {
// TODO - START
Kort[] returSamling = new Kort[antall];
for(int i = 0; i < returSamling.length; i++) {
returSamling[i] = samling[i];
}
return returSamling;
//throw new UnsupportedOperationException(TODO.method());
// TODO - END
}
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.