Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class OboraException(s:String) extends Exception(s)
- class Zwierze private(private val gatunek:String, private val imie:String, private val rok:Int, var zakwaterowany:Boolean)
- {
- override def toString: String =
- {
- "Gatunek: "+ gatunek + ", " + "Imie: " + imie + ", " + "Rok: " + rok + "."
- }
- override def equals(inne:Zwierze):Boolean =
- {
- gatunek==inne.gatunek&&imie==inne.imie&&rok==inne.rok
- }
- }
- object Zwierze
- {
- def apply(gatunek:String, imie:String, rok:Int) = new Zwierze(gatunek, imie, rok, false)
- }
- class Obora private(private val nr:Int, private val wlasciciel:String, private var lboks:Int, private var lista:List[Zwierze])
- {
- def zakwateruj (zw:Zwierze) =
- {
- if (!zw.zakwaterowany&&lboks>0)
- {
- zw.zakwaterowany=true;
- lista=zw::lista;
- lboks = lboks-1;
- }
- else throw new OboraException("Brak pustych boksów.")
- }
- def wykwateruj (zwierzak:Zwierze) =
- {
- if (zwierzak.zakwaterowany)
- {
- lista =
- {
- def wykwateruj_rec(ls:List[Zwierze], listapomocnicza:List[Zwierze], zwierzak:Zwierze):List[Zwierze] =
- ls match
- {
- case Nil => listapomocnicza reverse
- case head::tail => if (head.equals(zwierzak)) (tail:::listapomocnicza) reverse
- else wykwateruj_rec(tail, head::listapomocnicza, zwierzak)
- }
- wykwateruj_rec(lista,Nil,zwierzak);
- }
- zwierzak.zakwaterowany=false;
- lboks = lboks+1
- }
- else throw new OboraException("Zwierzak nie jest zakwaterowany.")
- }
- def przenies(inna:Obora, zwierzak:Zwierze) =
- {
- wykwateruj(zwierzak);
- inna.zakwateruj(zwierzak);
- }
- override def toString: String =
- {
- "Obora nr"+nr + " " + wlasciciel + " puste boksy: " + lboks + ", Lista zwierzat: " + ":" +lista
- }
- }
- object Obora
- {
- var unikalnaliczba = 0;
- def iplusplus:Int =
- {
- unikalnaliczba = unikalnaliczba + 1;
- return unikalnaliczba
- }
- def apply(wlasciciel:String, lboks:Int) = new Obora(iplusplus, wlasciciel, lboks, List())
- }
- val z1 = Zwierze("Krowa", "Mućka", 2011)
- val z2 = Zwierze("Świnia", "Henryk XIII", 2013)
- val z3 = Zwierze("Kogut", "Idefons", 2015)
- val z4 = Zwierze("Kot", "Maurycy", 2009)
- val z5 = Zwierze("Krowa", "Bożydar", 2014)
- val z6 = Zwierze("Owca", "Brunhilda", 2015)
- val o = Obora("Nowak", 5)
- o.zakwateruj(z1)
- o.zakwateruj(z2)
- o.zakwateruj(z3)
- o.zakwateruj(z4)
- o.zakwateruj(z5)
- o.zakwateruj(z6)
- o.zakwateruj(z6)
- println(o)
- o.wykwateruj(z5)
- println(o)
- val o2 = Obora("Maciek", 3)
- o.przenies(o2, z3)
- println(o)
- println(o2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement