INF100 Institutt for informatikk Universitetet i Bergen Øving 5

Like dokumenter
INF Løsning på seminaropppgaver til uke 8

Løsningsforslag til eksamen i INF1000 våren 2006

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I Løsningsforslag

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) Løsningsforslag

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

Eksempel 1 Eksempel 2 Dramatisering. INF1000 uke 3. Sundvollen 7. september 2015 Dag Langmyhr. INF1000 Sundvollen

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

INF Notat om I/O i Java

INF1010, 15. januar time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

IN Notat om I/O i Java

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

Forelesning inf Java 4

Løse reelle problemer

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

Oblig 4Hybelhus litt mer tips enn i oppgaven

OPPGAVE 5b og 8b Java Kode

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

TOD063 Datastrukturer og algoritmer

TDT4100 Objektorientert programmering

Løse reelle problemer

UNIVERSITETET I OSLO

Forelesning inf Java 5

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Tuva Kristine Thoresen

Forelesning inf Java 5

INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser

INF2100. Oppgaver 26. september til 1. oktober 2007

INF1010. Grensesnittet Comparable<T>

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?

INF1010 våren januar. Objektorientering i Java

INF 1010, vår 2005 Løsningsforslag uke 11

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.

Sortering med tråder - Quicksort

INF1010, 21. januar Klasser med parametre = Parametriserte klasser = Generiske klasser

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen.

INF Uke 10. Ukesoppgaver oktober 2012

Ole Christian Lingjærde, 12. september 2013

Forelesning inf Java 4

Avdeling for ingeniørutdanning Institutt for teknologi

UNIVERSITETET I OSLO

Gjennomgang av eksamen H99

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

Obligatorisk oppgave 4: Lege/Resept

Mer objektorientert programmering

import java.io.*; import java.util.*; import javagently.text;

import java.util.arraylist;

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14.

UNIVERSITETET I OSLO

INF1000 (Uke 4) Mer om forgreninger, While-løkker

INF1010 våren Grensesnitt

INF1000-SIKT - Notat om I/O i Java

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Repetisjon. Mer om forgrening While-løkker

De neste ukene. INF1000 Uke 12. Prøveeksamen. Nå - Prøveeksamen. Forelesning om IT og samfunn neste uke (13/11).

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

INF1000: Forelesning 11. Oppgave 2. Oppgave 1. Husk å melde deg på prøveeksamen i INF1000! Ole Christian Lingjærde 7.november 2006

UNIVERSITETET I OSLO

INF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

Innhold. INF1000 Høst Klasser og objekter. Uke 7: Mer objektorientert programmering Siri Moe Jensen

Eksempel: Body Mass Index (BMI) Forelesning inf Java 3. Ferdig program (første del) Ferdig program (siste del)

Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

Oppgave 1. Oppgave 2. Oppgave 3. Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

IN1010 våren 2018 Tirsdag 15. mai. Repetisjon av subklasser og tråder. Stein Gjessing Institutt for informatikk Universitetet i Oslo

INF1010 våren Grensesnitt

IN1010 våren januar. Objektorientering i Java

Kapittel 5: Objektkommunikasjon

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

Forelesning inf Java 3

Repetisjon. INF gruppe 13

Gulbrand Grås husleiesystem

Inf 1000 høst 2005 Løsningsforslag ordinær eksamen

Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 %

Oppgave 1. INF1000 Uke 13. Oppgave 2. Oppgave 3. Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI

Introduksjon til objektorientert programmering

Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder

Velkommen til INF våren 2011

Eksempel: Body Mass Index (BMI)

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

Løsningsforslag, inf101, våren 2001

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF Høst 2011)

Velkommen til. INF våren 2012

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Tre måter å lese fra terminal.

Jentetreff INF1000 Debugging i Java

Forelesning inf Java 3

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF2100. Oppgave 1, 2 og 3. Løsningsforslag til oppgaver 23. og 24. september Her er det mange mulige løsninger her er én: import java.io.

UNIVERSITETET I OSLO

INF1000 (Uke 14) Resten av eksamen H03 + del av V05

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL

UNIVERSITETET I OSLO

Oblig 3 tips litt mer tips enn i oppgaven

INF 1000 Prøveeksamen. 23. november Ole Christian og Arne. Oppgave 1 (10 poeng) Er disse programsetningene lovlige i Java? Oppgave 2 (10 poeng)

UNIVERSITETET I OSLO

Transkript:

INF100 Institutt for informatikk Universitetet i Bergen Øving 5 Høst 2013 Mål: Bruk av objekter. Innlevering: Adventure.java, Spiller.java og Rom.jav pakket i en zip fil. Innleveringsfrist: Torsdag 10. oktober, kl. 12:00 Denne uken skal vi fortsette med å lage et Adventure spill. Ofte i slike spill er det flere forskjellige områder, og spilleren kan bestemme fritt hvor hun beveger seg. I denne oppgaven skal vi lage den delen av spillet som gjør at spilleren kan bevege seg rundt. Spilleren skal være i et hus som har flere rom. Et rom kan ha dører til andre rom i retning sør, nord, vest og øst. 1

Hvert rom skal ha en farge (malingen på veggen). Rommene er lagt ut på følgende måte: N V S Ø Eksempel på kjøring Rommet er rødt. Gå sør Rommet er gult. Gå sør Det er ikke noe rom mot sør! Rommet er gult. Gå vest Rommet er oransje. Gå øst Rommet er gult. Gå øst Rommet er grønt. Gø øst Ukjent kommando, prøv igjen! Gå øst Det er ikke noe rom mot øst! Rommet er grønt. Gå vest Rommet er gult. Gå sør Det er ikke noe rom mot sør! Rommet er gult. Gå nord Rommet er rødt. Som sist har vi lagt ut et kodeskjellet som skal følges. Allt som er nød- 2

vendig er å fylle inn der det står. Oppgave 1 Fullfør sammenkoblingen av rom i Adventure.java. I Adventure.java er det røde og det gule rommet allerede koblet sammen, men det er nødvendig å sammenkoble alle rommene som vist på karte over. Oppgave 2 Skriv ferdig klassen Spiller.java. Vedlegg Adventure.java import java.util.scanner; Fag: INF100 V2013 Øving: 5 Et adventure spill der spilleren flytter seg rundt i rom som har forskjellig farge. Kartet over rom er som følger: N V - - Ø rødt S ------ oransje gult grøndt Spilleren starter i det røde rommet. public class Adventure { public static void main(string[] args){ Scanner tastatur = new Scanner(System.in); // Oppretter alle rommene Rom rodtrom = new Rom("Rommet er rødt."); 3

Rom grontrom = new Rom("Rommet er grønt."); Rom gultrom = new Rom("Rommet er gult."); Rom oransjerom = new Rom("Rommet er oransje."); // Kobler rommene sammen etter hvor // de befinner seg i forhold til hverandre. rodtrom.settromsoer(gultrom); gultrom.settromnord(rodtrom); //Oppgave 1 Spiller spiller = new Spiller(rodtRom); spiller.skrivutrombeskrivelse(); // Så lenge brukeren ikke skriver inn // "Hade!" leses inn nye kommandoer boolean fortsett = true; while(fortsett){ switch(tastatur.nextline()){ case "Gå øst": spiller.gaamotoest(); spiller.skrivutrombeskrivelse(); case "Gå vest": spiller.gaamotvest(); spiller.skrivutrombeskrivelse(); case "Gå nord": spiller.gaamotnord(); spiller.skrivutrombeskrivelse(); case "Gå sør": spiller.gaamotsoer(); spiller.skrivutrombeskrivelse(); 4

case "Hade!": System.out.println("Hade!"); fortsett = false; case "go west": System.out.println("Where the skies are blue..."); default: System.out.println("Ukjent kommando, prøv igjen!"); Spiller.java Fag: INF100 V2013 Øving: 5 Beskriver en spiller i et adventure spill. Spilleren står i et rom og kan flytte seg i en retning til et annet rom (nord,sør vest,øst) avhengig av om rommet fører til et nytt rom i den retningen. / public class Spiller{ Rommet som spilleren står i Rom staari; Konstruktør for klassen spiller @param staari rommet som spilleren står i. public Spiller(Rom staari){ this.staari = staari; Skriver ut beskrivelsen av rommet som spilleren 5

står i. public void skrivutrombeskrivelse(){ //Oppgave 2 Går i til rommet som er til øst for rommet som spilleren står i nå hvis det rommet finnes. Hvis ikke skrives en feilmelding ut. public void gaamotoest(){ //Oppgave 2 Går i til rommet som er til vest for rommet som spilleren står i nå hvis det rommet finnes. Hvis ikke skrives en feilmelding ut. public void gaamotvest(){ //Oppgave 2 Går i til rommet som er til nord for rommet som spilleren står i nå hvis det rommet finnes. Hvis ikke skrives en feilmelding ut. public void gaamotnord(){ //Oppgave 2 Går i til rommet som er til sør for rommet som spilleren står i nå hvis det rommet finnes. Hvis ikke skrives en feilmelding ut. public void gaamotsoer(){ 6

//Oppgave 2 Rom.java Fag: INF100 V2013 Øving: 5 Rom beskriver et rom i et adventure spill. Et rom kan føre til et rom i alle retninger (nord,sør,vest,øst). Det er også en beskrivelse av hvert rom. public class Rom{ Rom som dette rommet fører til. private Rom romvest; private Rom romoest; private Rom romnord; private Rom romsoer; Beskrivelsen av rommet private String beskrivelse; Konstruktør for Rom. @param beskrivelsen En beskrivelse av rommet. public Rom(String beskrivelse){ this.beskrivelse = beskrivelse; Setter hvilket rom rommet fører til i retning vest. Hvis gitt null er det ikke et rom til i denne retningen. @param rom Rommet som dette rommet skal føre til. 7

public void settromvest(rom rom){ romvest = rom; Setter hvilket rom rommet fører til i retning øst. Hvis gitt null er det ikke et rom til i denne retningen. @param rom Rommet som dette rommet skal føre til. public void settromoest(rom rom){ romoest = rom; Setter hvilket rom rommet fører til i retning nord. Hvis gitt null er det ikke et rom til i denne retningen. @param rom Rommet som dette rommet skal føre til. public void settromnord(rom rom){ romnord = rom; Setter hvilket rom rommet fører til i retning sør. Hvis gitt null er det ikke et rom til i denne retningen. @param rom Rommet som dette rommet skal føre til. public void settromsoer(rom rom){ romsoer = rom; Henter hvilket rom rommet fører til i retning vest. Returnerer null dersom det ikke er noe rom i denne retningen. @return rommet til vest for dette rommet. 8

public Rom hentromvest(){ return romvest; Henter hvilket rom rommet fører til i retning øst. Returnerer null dersom det ikke er noe rom i denne retningen. @return rommet til øst for dette rommet. public Rom hentromoest(){ return romoest; Henter hvilket rom rommet fører til i retning nord. Returnerer null dersom det ikke er noe rom i denne retningen. @return rommet til nord for dette rommet. public Rom hentromnord(){ return romnord; Henter hvilket rom rommet fører til i retning sør. Returnerer null dersom det ikke er noe rom i denne retningen. @return rommet til sør for dette rommet. public Rom hentromsoer(){ return romsoer; @return true dersom rommet fører til et rom mot vest. public boolean harromvest(){ return romvest!= null; 9

@return true dersom rommet fører til et rom mot øst. public boolean harromoest(){ return romoest!= null; @return true dersom rommet fører til et rom mot nord. public boolean harromnord(){ return romnord!= null; @return true dersom rommet fører til et rom mot sør. public boolean harromsoer(){ return romsoer!= null; @return En beskrivelse av rommet. public String hentbeskrivelse(){ return beskrivelse; 10