Murderer on Recursive Street

Det har skjedd et mord p? Recursive Street! Og du skal lage et program som finner ut hvem morderen er. Dette skal skje ved at du plukker ut en tilfeldig person og f?r han eller hun til ? sp?rre alle sine bekjente om de er morderen. Alle dem skal igjen sp?rre sine bekjente, helt til du finner morderen (heldigvis vil ingen lyge om de er morderen eller ikke).

Innlesing fra fil

Denne delen skal skrives i klassen Main.java. Informasjon om alle beboerne av Recursive Street finnes i filen personer.in. F?rste del av filen lister opp alle personene, og andre del forteller hvem som kjenner hvem. Merk her at hvis person A kjenner B, er det ikke sikkert at B kjenner A!

Navn Kj?nn(M/F) alder erMorder(Y/N)
.
.
# Bekjentskaper
Navn: bekjent1 bekjent2 bekjent3 ...
.
.

Se eksempel.in for et spesifikt eksempel.

Person, Venn og Morder

For ? kunne linke sammen alle navnene vi har lest inn, trenger vi en struktur ? lagre dataene i. N?r vi leser fra fil, skal vi opprette objekter av enten type Venn, eller av type Morder. Dette gj?r vi ved ? kalle p? den statiske metoden opprettPerson() som finnes i Person klassen. Du skal alts? ikke skrive new Venn() eller new Morder() andre steder enn i klassen Person. Denne m?ten ? opprette objekter p?, kalles Static factory method.

Metoden 'sp?r()'

Klassene Venn og Morder skal implementere metoden spor(). Dette skal v?re en rekursiv metode som sp?r alle bekjente til en person om de er morderen. Er personen morderen, skal den skrive ut informasjon om seg selv til terminal.

N?r en person er blitt spurt, skal den ikke sp?rres flere ganger.

L?sningsforslag

For l?sningsforslag og andre oppgaver fra fredagsjava, se github