import java.util.HashMap; import java.util.ArrayList; import java.util.Random; public class Savanne{ Node gaselle; Node gnu; Node giraff; Node villsvin; Node marekatt; private class Node{ Node neste; T dyr; Node(T t){ dyr = t; } public void leggTil(Node n){ // System.out.println(dyr.navn); if(neste == null){ neste = n; return; } neste.leggTil(n); } public void printSavanne(){ System.out.print(dyr.navn + " - "); if(neste != null){ neste.printSavanne(); } } //Spesial for love public void leggTil(Node n, int pos, int crnt){ System.out.println("CRNT: " + crnt + " POS: " + pos); if(pos == crnt){ Node temp = neste; neste = n; n.neste = temp; }else{ crnt += 1; neste.leggTil(n, pos, crnt); } } public void finnLove(){ if(dyr.finn()){ System.out.println("Jeg er en love! Og mitt navn er: " + dyr.navn); return; }else if(neste != null){ neste.finnLove(); }else{ return; } } } public void leggTil(T t){ Node ny = new Node(t); if(t instanceof Gaselle){ leggTilGaselle(ny); }else if(t instanceof Gnu){ leggTilGnu(ny); }else if(t instanceof Villsvin){ leggTilVillsvin(ny); }else if(t instanceof Marekatt){ leggTilMarekatt(ny); }else if(t instanceof Love){ leggTilLove(ny); }else{ return; } } public void leggTilLove(Node n){ Random r = new Random(); int pack = r.nextInt(4); int pos = r.nextInt(15); switch(pack){ case 0: gaselle.leggTil(n, pos, 0); break; case 1: gnu.leggTil(n, pos, 0); break; case 2: villsvin.leggTil(n, pos, 0); break; case 3: marekatt.leggTil(n, pos, 0); break; } //Finn "tilfeldig" flokk ? legge i! } public void leggTilGaselle(Node n){ if(gaselle == null){ gaselle = n; return; } gaselle.leggTil(n); } public void leggTilGnu(Node n){ System.out.println("Legger til gnuer?"); if(gnu == null){ gnu = n; return; } gnu.leggTil(n); } public void leggTilVillsvin(Node n){ if(villsvin == null){ villsvin = n; return; } villsvin.leggTil(n); } public void leggTilMarekatt(Node n){ if(marekatt == null){ marekatt = n; return; } marekatt.leggTil(n); } public void finnLove(){ gaselle.finnLove(); gnu.finnLove(); villsvin.finnLove(); marekatt.finnLove(); } public void printSavanne(){ System.out.println("--- PRINTER SAVANNE ---"); System.out.println("--- Gaseller --- "); gaselle.printSavanne(); System.out.println(""); System.out.println("--- Gnuer --- "); gnu.printSavanne(); System.out.println(""); System.out.println("--- Villsvin ---"); villsvin.printSavanne(); System.out.println(""); System.out.println("--- Marekatter ---"); marekatt.printSavanne(); } }