Thomas Holden Oblig 3 INF Universitetet i Tromsø Obligatorisk øving 3 INF 1400 Thomas Holden
|
|
- Borgar Thomassen
- 7 år siden
- Visninger:
Transkript
1 Universitetet i Tromsø Obligatorisk øving 3 INF 1400 Thomas Holden
2 Innledning Rapporten beskriver implementasjonen av en Mayhem klone. Spillet har støtte for to spillere, gravitasjon, score (antall drap / antall drept / antall gjenværende liv), refuling når man har brukt opp drivstoffet og aksellerasjon. Oppgaven stilte krav om gravitasjon, dette kravet er gjennomført med hjelp av en planet som roterer på midten av skjermen. Om spilleren kommer for nært planeten vil gravitasjonskreftene begynne å påvirke spilleren. Gravitasjonskraften er ikke fysisk korrekt, dvs, den følger ikke de fysiske lovene (9,8 ms)^2 men spillerene får en følelse av gravitasjon likevel. Implementasjonen er gjort i Linux, ved hjelp av programmeringsspråket Python 2.7. På denne datamaskinen heter pyton binæren «python2» (Ikke python, som er vanlig på noen av de store linux distrobusjonene), dermed må du endre env variabelet i game.py om du ønsker å kjøre spillet uten bruk av python / python2 kommandoen. Mere om dette i readme.txt Implementasjonen er gjort på Universitetet i Tromsø, som en obligatorisk innlevering i INF Planleggingsfasen Det måtte noe planlegging til for å få til denne implementasjonen. Blant annet var det viktig å følge kravet oppgaven stilte om å arve pygame.sprite.sprite for alle de synlige objektene på skjermen. Dette innkluderer planeten, to romskip og to «bensin stasjoner» / pads. Teksten øverst i spillvinduet er også surface objekter, men av typen pygame.font.font, og arver dermed ikke fra sprites klassen, men i fra fonts klassen. Et annet krav oppgaven stilte var at alt av oppdateringer (forflytning / gravitasjon osv) skulle gjøres fra objektenes update funksjon. Dette var for å lære om prinsippene bak polymorfisme. Det vil si å overskrive annen tilarvet funksjonalitet. I tillegg var det viktig å tenke ut hvordan klassene skulle henge sammen. Skulle man arve noe, eller skulle man heller bare lage objektene separat? Løsningen her baserte seg på å arve det som var kravene i oppgaven, og i tillegg til dette lage flere andre objekter. Blant annet, Score, Fuel og Ammo, som vil bli beskrevet senere i rapporten. UML diagram UML diagrammet skal gjøre det enklere å visualisere seg hvordan alt henger sammen. Klassen game, er hovedklassen. Herifra blir pygame startet, displaymode satt og en screen konfigurert. Innstillingene blir hentet fra config.py som var et av de andre kravene oppgaven stilte. Game klassen har en metode, createworld() som initialiserer de andre objektene som behøves for at spillet skal kjøre. Disse er følgende: Player, Planet og Fuelpads. Alle disse objektene er sprites, som blir lagt til i grupper slik at de kan oppdateres og tegnes på en enklere måte (også et oppgave krav).
3 Font objekter brukes til å skrive tekst til skjermen. Metoden getsurface returnerer en surface som kan blittes til skjermen. Dette skjer i game klassen, ved hjelp av screen.blit. Dette bildet viser hvilken filer programmet består av, og hvilken del av programmet som importerer deler av programmet. For eksempel, importerer game filene player, planets, font med flere. Konfigurasjonsfilen leses av flere deler av programmet, men ikke av alle. Grunnen til dette er at noen deler er avhengige av predefinerte konstanter, mens andre derimot, ikke er det. UML-en Vedlagt denne rapporten ligger det en fil, uml.png som innholder uml diagrammet. Bildet var for stort til å få med i rapporten, men her følger en beskrivelse av diagrammet. Game klassen instansierer objekter av typen player, planets og fuelpads. Player klassen instansierer ammo, fuel og score. Alle klassene som innholder kordinater benytter seg av Vector2D objekter for å regne ut de nye posisjonene. Det kommer ikke frem av UML-en, men player og planets arver fra pygame.sprite.sprite, og font arver fra pygame.font.font
4 Implementasjon Game Spillets hovedklasse, og har i oppgave å sette opp PyGame, en screen og instansiere resten av objektene som er nødvendig for at spillet skal kjøre. Game klassen består av følgende metoder: Createworld Collision GameStatus dokill setalive stats handleevents Createworld Metoden kjøres fra init, og har i oppgave å instansiere to player objekter, to fuelpadobjekter, og en planet (som obstacle). Alle disse objektene blir plassert i sprites grupper. Spillerne blir lagt til i en gruppe kalt players, planeten i en gruppe kalt planets osv. Disse gruppene blir oppdatert, og tegnet i fra while løkken som kjøres i init metoden til game. Collision Metoden tester for kollisjon mellom planeter og spaceships, og ammo og spaceships. Planeter og spaceship kollisjoner blir funnet om pygame.sprite.collide_rect returnerer True. Hvis returverdien er sann vil dokill bli kjørt på objektet som skal drepes. Dette innebærer et kall til game.dokill og et annet til self.dokill. Disse metodene resetter objektet, og gjør slik at neste runde kan starte. For kulene, er det litt annerledes. Her blir skuddene fra player1 og player2 lagt til i en bullets.sprite gruppe. Alle kulene innholder en «ident», slik at det er mulig å sjekke hvem som skjøt kulene, på denne måten er det mulig å oppdatere score, og i tillegg gjøre slik at det ikke er mulig å drepe seg selv. Når en av spillerne blir drept vil self.dokill og game.dokill kjøres på objektet som er drept, i tillegg vil self.reset kjøres på begge objektene (for å resette fuel for eksempel), self.score.incrementdeath vil kjøres for å telle antall dødsfall, og self.score.decrementlive for å telle ned på liven til spilleren som døde. I tillegg vil self.score.incrementkill kjøres på objektet som sto igjen i livet. Game status
5 Metoden holder styr på spillets status. Hvis noen av spillerne er døde gjør metoden det mulig å restarte spillet gjennom å lytte på en pygame.key event. Metoden skriver også «Game over» til skjermen om en av spillerne går tom for liv. DoKill Sjekker om den får rett argument ved hjelp av isinstance(who, Player). Om alt stemmer vil bullets gruppen bli tømt, og spilleren som skal drepes fjernes fra gruppen slik at den ikke lengre tegnes på skjermen. På denne måten vil det se ut som at spilleren dør. SetAlive Legger til spilleren i sprites gruppen slik at den kan bli tegnet på skjermen. Teller også ned på antall liv på spilleren. Stats Skriver statistikk til skjermen gjennom bruk av Font klassen (Arver fra pygame.font.font). Denne klassen innholder en metode som gjør det mulig å hente ut et pygame surface, som senere blir blittet til skjermen. Koordinatene står spesifisert i config.py Player Player klassen instansierer et ammo, et score og et fuel objekt. Disse skal holde styr på score, skudd og drivstoff forbruket til player objektet. Posisjonen til player blir gitt ved å benytte et Vector2D objekt, dette gjøres for enkelthetsskyld. Player klassen innholder metoder for reset, gravitasjon (rundt planet, og fuelpad), rotasjon, thrust, skyting, refuling, kill/alive, set status, og update. Update metoden kaller på thrust, rotasjon og skudd når det er nødvendig. Set status benyttes av dokill, og setalive metodene. Ammo Ammo objekter blir instansiert og lagt til i ei liste for hver gang player skyter. Et ammo objekt representerer et skudd og innholder en ident, en retning og en hastighet. Ammo objektet har kun en metode, update som legger til hastighet for hver iterasjon av main loopen. Fuel Fuel objektet blir instansiert fra player klassens init funksjon og holder styr på brennstofforbruket til player. Består av metoder for å brenne fuel, fylle opp drivstoff og sjekke hvor mye som er igjen på tanken.
6 Score Objektet holder styr på poengene til player, dvs, antall drap, antall død og gjenværende liv. En spiller begynner med tre liv og mister liv, enten ved hjelp av krasj i planet, eller som følge av skudd. Score består av metoder for å dekrementere liv og inkrementering av drap og død. I tillegg betsår objeket av metoder for å hente ut gjenværende liv, antall dødsfall og drap. Font Font klassen arver pygame.font.font og består av fontsize, fontname og text. Text er teksten som skal rendres, og fontsize er tekststørrelse og fontname er navnet på fonten som benyttes. Består av en metode, getsurface, som returnerer en pygame surface som kan blittes til skjermen. Planets Planets arver fra pygame.sprite.sprite, og er et objekt som brukes for å illustrere planeter på skjermen. I nåværende kodeform er det kun en planet, men det er mulig å legge til flere. Klassen fungerer på samme måte som player hva angår rotasjon, men ellers er den relativt funksjonsløs. Kollisjonstesting gjøres fra game.collision Fuelpads Arver fra pygame.sprite.sprite, og illustrere en fuelpad på skjermen. Denne klassen innholder kun data om selve posisjonen, fargen og lengden / bredden av objektet. Selve refulingen skjer automatisk når romskipet er innenfor en viss radius. Dette blir detektert fra player objektet. Cprofiler Python koden er kjørt gjennom cprofiler, men det var ingenting spessielt som stakk seg ut som tregt kjørende i denne koden. Dermed, er det ikke noen forbedringer å diskutere. Det som tok lengst tid var pygame.font.font. init () metoden, og det er ikke noe å gjøre med denne. Må kjøre init for at klassen skal fungere. I filen cprofiler.txt ligger output av profileringstesten. Problemstillinger Det oppsto egentlig ingen spesielle problemstillinger under programmeringen av denne obligatoriske øvingen. Det eneste var at det måtte en del planlegging til for å finne ut hvordan implementeringen skulle være. For å følge alle kravene etc. Dette var nok det vanskeligste i denne oppgaven. Tegning av UML diagram ble gjort automatisk ved bruk av pylint, tok noe tid å skjønne seg på hvordan dette
7 verktøyet fungerte, men etter dette gikk det greit. Konklusjon Koden fungerer slik som den skal, følger de kravene som er stilt i oppgaveteksten og kjører ikke med noen spesielle flaskehalser. Som tidligere nevnt, er det pygame.font.font. init () som bruker lengst tid under kjøring.
IN1000 Obligatorisk innlevering 7
IN1000 Obligatorisk innlevering 7 Frist for innlevering: 23.10. kl 12:00 Introduksjon I denne innleveringen skal du lage et program som simulerer cellers liv og død. Dette skal du gjøre ved hjelp av en
DetaljerInnlevering 2b i INF2810, vår 2017
Innlevering 2b i INF2810, vår 2017 Dette er del to av den andre obligatoriske oppgaven i INF2810. Man kan oppnå 10 poeng for oppgavene i 2b, og man må ha minst 12 poeng tilsammen for 2a + 2b for å få godkjent.
DetaljerLøpende strekmann Erfaren Videregående Python PDF
Løpende strekmann Erfaren Videregående Python PDF Introduksjon I denne oppgaven skal du lage et spill der du styrer en strekmann som hopper over hindringer. Steg 1: Ny fil Begynn med å lage en fil som
DetaljerINF Obligatorisk innlevering 7
INF1000 - Obligatorisk innlevering 7 Høsten 2016, IFI UiO Frist: 6. November 2016 kl 22:00 Tema denne uka: Et større objektorientert program. Administrasjon av eierskap og utlån av DVD-er I denne oppgaven
DetaljerPXT: Det regner mat! Introduksjon. Steg 1: Grunnlag. Sjekkliste. Skrevet av: Helene Isnes
PXT: Det regner mat! Skrevet av: Helene Isnes Kurs: Microbit Tema: Elektronikk, Blokkbasert, Spill Fag: Matematikk, Programmering Klassetrinn: 5.-7. klasse, 8.-10. klasse, Videregående skole Introduksjon
DetaljerAsteroids. Introduksjon. Oversikt over prosjektet. Skrevet av: Geir Arne Hjelle
Asteroids Skrevet av: Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill, Animasjon Fag: Matematikk, Programmering, Kunst og håndverk Klassetrinn: 5.-7. klasse, 8.-10. klasse Introduksjon På slutten
DetaljerUNIVERSITETET I OSLO
Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Fredag 4. desember 2015 Tid for eksamen: 14.30 (4 timer)
DetaljerDonkey Kong. Introduksjon. Oversikt over prosjektet. Skrevet av: Geir Arne Hjelle
Donkey Kong Skrevet av: Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill, Animasjon Fag: Naturfag, Programmering, Engelsk, Kunst og håndverk Klassetrinn: 5.-7. klasse, 8.-10. klasse Introduksjon
DetaljerINF Obligatorisk innlevering 7 - Hangman
INF1001 - Obligatorisk innlevering 7 - Hangman Frist: 7.11.16 12:00 1 Introduksjon Du skal i denne innleveringen skrive et objektorientert Hangman-spill. Spillet skal ha støtte for å lese inn en ordliste
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 10. juni 2009 Tid for eksamen: 9.00 12.00 Oppgavesettet
DetaljerINF Obligatorisk innlevering 7
INF1000 - Obligatorisk innlevering 7 Frist: 14:00 3. november 2015 Administrasjon av eierskap og utlån av DVD-er I denne oppgaven skal du skrive et program som holder orden på dine egne og andres DVD-er.
DetaljerINF Obligatorisk innlevering 5
INF1000 - Obligatorisk innlevering 5 Frist: 2. Oktober kl 22:00 Temaer denne uka: Klasser og objekter. I denne obligen skal du som nytt tema jobbe med klasser og objekter, i tillegg til å bruke det du
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler
DetaljerMattespill Nybegynner Python PDF
Mattespill Nybegynner Python PDF Introduksjon I denne leksjonen vil vi se litt nærmere på hvordan Python jobber med tall, og vi vil lage et enkelt mattespill. Vi vil også se hvordan vi kan gjøre ting tilfeldige.
DetaljerEKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: NEI
Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 25 september 2018 Klokkeslett: 09.00-13.00 Sted: Adm. Bygget K1.04 Tillatte hjelpemidler: Ingen Type innføringsark (rute/linje):
DetaljerMetoder med parametre, løkker og arrayer
Metoder med parametre, løkker og arrayer Løse problemer med programmering INF1000, uke3 Ragnhild Kobro Runde METODER MED PARAMETRE Statiske void-metoder med parametre Den typen metoder vi så på forrige
DetaljerINF Ekstrainnlevering
INF000 - Ekstrainnlevering Temaer på innleveringen: Hele pensum fram til nå. Oppgave E.) Tema: Beslutninger (if/else) Filnavn: Rekkefolge.java a) Lag et program som leser inn tre tall fra brukeren. b)
DetaljerUNIVERSITETET I OSLO
Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Fredag 4. desember 2015 Tid for eksamen: 14.30 (4 timer)
DetaljerPXT: Himmelfall. Introduksjon. Skrevet av: Helene Isnes og Julie Revdahl
PXT: Himmelfall Skrevet av: Helene Isnes og Julie Revdahl Kurs: Microbit Tema: Elektronikk, Blokkbasert, Spill Fag: Programmering, Matematikk Klassetrinn: 5.-7. klasse, 8.-10. klasse, Videregående skole
DetaljerTre på rad mot datamaskinen. Steg 1: Vi fortsetter fra forrige gang
Tre på rad mot datamaskinen Skrevet av: Oversatt fra Code Club UK (//codeclub.org.uk) Oversatt av: Geir Arne Hjelle Kurs: Python Tema: Tekstbasert, Spill Fag: Programmering Klassetrinn: 8.-10. klasse Introduksjon
DetaljerFørst må vi få datamaskinen til å velge et tilfeldig ord, så la oss begynne. Lagre programmet ditt og kjør det. Hvilket ord skrives ut?
Hangman Skrevet av: Oversatt fra Code Club UK (//codeclub.org.uk) Oversatt av: Geir Arne Hjelle Kurs: Python Tema: Tekstbasert, Spill Fag: Programmering Klassetrinn: 5.-7. klasse, 8.-10. klasse Introduksjon
DetaljerOblig 4Hybelhus litt mer tips enn i oppgaven
Oblig 4Hybelhus litt mer tips enn i oppgaven lørdag 19. okt 2013 Arne Maus Obligatorisk oppgave 4 Gulbrand Grås husleiesystem I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer,
DetaljerSteg 0: Installere Pygame Zero
PGZ - Sprettball Skrevet av: Ole Kristian Pedersen, Kodeklubben Trondheim Kurs: Python Tema: Tekstbasert, Spill Fag: Matematikk, Programmering Klassetrinn: 5.-7. klasse, 8.-10. klasse Introduksjon I denne
DetaljerRosetta og Philae. Steg 1: Skilpadden blir et romskip. Sjekkliste. Introduksjon
Rosetta og Philae Erfaren Python PDF Introduksjon Romsonden Rosetta ble sendt ut av Den Europeiske Romfartsorganisasjonen (ESA) for å utforske kometen 67P/Tsjurjumov- Gerasimenko. I november 2014 sendte
DetaljerPong. Oversikt over prosjektet. Steg 1: En sprettende ball. Plan. Sjekkliste. Introduksjon
Pong Introduksjon Pong er et av de aller første dataspillene som ble laget, og det første dataspillet som ble en kommersiell suksess. Selve spillet er en forenklet variant av tennis hvor to spillere slår
DetaljerHangman. Steg 1: Velg et ord. Steg 2: Gjett en bokstav. Sjekkliste. Sjekkliste. Introduksjon
Hangman Erfaren Python Introduksjon La oss lage et spill: Hangman! Datamaskinen vil velge et ord og du kan gjette det bokstav for bokstav. Dersom du gjetter feil for mange ganger taper du. Steg 1: Velg
DetaljerTre på rad mot datamaskinen. Steg 1: Vi fortsetter fra forrige gang. Sjekkliste. Introduksjon
Tre på rad mot datamaskinen Erfaren Python Introduksjon I dag skal vi prøve å skrive kode slik at datamaskinen kan spille tre på rad mot oss. Datamaskinen vil ikke spille så bra i begynnelsen, men etterhvert
DetaljerBygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv
Bygg et Hus Introduksjon I denne leksjonen vil vi se litt på hvordan vi kan få en robot til å bygge et hus for oss. Underveis vil vi lære hvordan vi kan bruke løkker og funksjoner for å gjenta ting som
DetaljerLærerveiledning - Pong
Lærerveiledning - Pong Skrevet av: Stein Olav Romslo Kurs: Scratch Tema: Blokkbasert, Spill Fag: Matematikk, Programmering, Kunst og håndverk Klassetrinn: 5.-7. klasse, 8.-10. klasse Om oppgaven Pong er
DetaljerObjektorientert programmering i Python
Objektorientert programmering i Python IN1000 Høst 2019 uke 8 Siri Moe Jensen Læringsmål uke 8 Repetisjon fra forrige uke Definere en klasse, opprette og arbeide med objekter: How-to
DetaljerSprettball Erfaren ComputerCraft PDF
Sprettball Erfaren ComputerCraft PDF Introduksjon Nå skal vi lære hvordan vi kan koble en skjerm til datamaskinen. Med en ekstra skjerm kan vi bruke datamaskinen til å kommunisere med verden rundt oss.
DetaljerKanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen
Kanter, kanter, mange mangekanter Skrevet av: Sigmund Hansen Kurs: Processing Tema: Tekstbasert, Animasjon Fag: Matematikk, Programmering, Kunst og håndverk Klassetrinn: 8.-10. klasse, Videregående skole
DetaljerHoppehelt. Introduksjon. Steg 1: Streken. Sjekkliste. Skrevet av: Geir Arne Hjelle
Hoppehelt Skrevet av: Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill Fag: Matematikk, Programmering, Kunst og håndverk Klassetrinn: 5.-7. klasse, 8.-10. klasse Introduksjon Hoppehelt er litt inspirert
DetaljerSnake Expert Scratch PDF
Snake Expert Scratch PDF Introduksjon En eller annen variant av Snake har eksistert på nesten alle personlige datamaskiner helt siden slutten av 1970-tallet. Ekstra populært ble spillet da det dukket opp
DetaljerLøse reelle problemer
Løse reelle problemer Litt mer om løkker, metoder med returverdier, innlesing fra fil og strenger INF1000, uke5 Ragnhild Kobro Runde MER OM LØKKER Repetisjon fra forrige uke: while Syntaks: while (condition)
DetaljerSteg 1: Piler og knappetrykk
PXT: Er du rask nok? Skrevet av: Julie Christina Revdahl Kurs: Microbit Tema: Blokkbasert, Spill, Elektronikk Fag: Programmering, Teknologi Klassetrinn: 5.-7. klasse, 8.-10. klasse, Videregående skole
DetaljerForkurs i informatikk Python. Andreas Færøvig Olsen
Andreas Færøvig Olsen andrefol@ifi.uio.no Mål Hvorfor Python? Gi en mykere start på INF1100 Komme i gang med programmering 2 3 Hva er Python? Hva er programmering? 4 Hva er Python? Hva er programmering?
DetaljerBygg et Hus. Introduksjon. Steg 1: Prøv selv først. Skrevet av: Geir Arne Hjelle
Bygg et Hus Skrevet av: Geir Arne Hjelle Kurs: Computercraft Tema: Tekstbasert, Minecraft Fag: Programmering, Teknologi Klassetrinn: 5.-7. klasse, 8.-10. klasse, Videregåe skole Introduksjon I denne leksjonen
DetaljerNorsk informatikkolympiade runde
Norsk informatikkolympiade 2015 2016 1. runde Sponset av Uke 46, 2015 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
Detaljerpublic static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
Detaljerpublic static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
DetaljerAsteroids. Oversikt over prosjektet. Steg 1: Enda et flyvende romskip. Plan. Sjekkliste. Introduksjon
Asteroids Ekspert Scratch Introduksjon På slutten av 1970-tallet ga Atari ut to spill hvor man skulle kontrollere et romskip. Det første var Lunar Lander, men dette ble utkonkurrert av Asteroids som Atari
DetaljerInformasjon Eksamen i IN1000 høsten 2017
Informasjon Eksamen i IN000 høsten 207 Tid 8. desember kl. 09.00 (4 timer) Faglærerne vil besøke lokalet ca kl 0. Oppgavene Oppgave 2b og 2c er flervalgsoppgaver. Her får man det angitte antall poeng om
DetaljerDebugging. Tore Berg Hansen, TISIP
Debugging Tore Berg Hansen, TISIP Innhold Innledning... 1 Å kompilere og bygge et program for debugging... 1 Når debugger er i gang... 2 Symbolene i verktøylinjen... 3 Start på nytt... 3 Stopp debugging...
DetaljerBli Kjent med Datamaskinen Introduksjon ComputerCraft PDF
Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF Introduksjon Vi begynner med å bygge en enkel datamaskin. Etter å ha brukt litt tid på å bli kjent med hvordan datamaskinen virker, bruker vi den
DetaljerHangman. Level. Introduksjon
Level 2 Hangman All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your club. Introduksjon
DetaljerRekursjon. Binærsøk. Hanois tårn.
Rekursjon Binærsøk. Hanois tårn. Hvorfor sortering (og søking) er viktig i programmering «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til
DetaljerProgrammering i C++ Løsningsforslag Eksamen høsten 2005
Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det
DetaljerEKSAMENSOPPGAVE. Adm.bygget, rom K1.04 og B154 Ingen. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. kl.
Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 22 mai 2018 Klokkeslett: 09-13 Sted: Tillatte hjelpemidler: Adm.bygget, rom K1.04 og B154 Ingen Type innføringsark (rute/linje):
DetaljerSteg 1: Katten og fotballbanen
Straffespark Skrevet av: Erik Kalstad og Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill Fag: Matematikk, Programmering Klassetrinn: 1.-4. klasse, 5.-7. klasse, 8.-10. klasse Introduksjon Vi skal
Detaljer1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?
Obligatorisk oppgave 3 Gulbrand Grås husleiesystem Oblig 3hus litt mer tips enn i oppgaven I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer, nummerert fra -3. I hver etasje
DetaljerTDT4102 Prosedyre og Objektorientert programmering Vår 2015
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Øving 3 Frist: 2014-02-07 Mål for denne øvinga:
DetaljerLærerveiledning - Snake
Lærerveiledning - Snake Skrevet av: Stein Olav Romslo Kurs: Scratch Tema: Blokkbasert, Spill Fag: Matematikk, Programmering, Kunst og håndverk Klassetrinn: 5.-7. klasse, 8.-10. klasse Om oppgaven En eller
DetaljerPå tide med et nytt spill! I dag skal vi lage tre på rad, hvor spillerne etter tur merker ruter med X eller O inntil en av spillerne får tre på rad.
Tre på rad Skrevet av: Oversatt fra Code Club UK (//codeclub.org.uk Oversatt av: Geir Arne Hjelle Kurs: Python Tema: Tekstbasert, Spill Fag: Programmering Klassetrinn: 8.-10. klasse Introduksjon På tide
DetaljerStraffespark Introduksjon Scratch Lærerveiledning
Straffespark Introduksjon Scratch Lærerveiledning Introduksjon Vi skal lage et enkelt fotballspill, hvor du skal prøve å score på så mange straffespark som mulig. Steg 1: Katten og fotballbanen Vi begynner
DetaljerInnhold uke 8. Objekter: Bruk og intern organisering. Beskjeder: Oblig 1 6. Beskjeder: Oblig 7 (og 8)
Innhold uke 8 Objekter: Bruk og intern organisering IN1000 Høst 2017 uke 8 Siri Moe Jensen Repetisjon fra forrige uke Definere en klasse, opprette og arbeide med objekter: How to Forstå (mer av) hva som
DetaljerINF120: Oblig 3. Yngve Mardal Moe
Yngve Mardal Moe Mar 28, 2019 Contents 1 Hva trenger dere for denne oppgaven 3 2 Hvordan skal dere arbeide med denne oppgaven 5 3 En søkeindeks 7 4 Å slå opp i en søkeindeks 9 5 Å utvide en søkeindeks
DetaljerSteg 1: Hente grafikk fra nettet
Scratch King Kong Skrevet av: Samuel Erik Abildsø og Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill, Animasjon Fag: Engelsk, Kunst og håndverk, Matematikk, Programmering Klassetrinn: 1.-4. klasse,
DetaljerTDT4102 Prosedyre og Objektorientert programmering Vår 2014
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 10 Frist: 2014-04-11 Mål for denne øvinga:
DetaljerAstrokatt. Introduksjon. Steg 1: En flyvende katt. Sjekkliste. Scratch. Skrevet av: Geir Arne Hjelle
Scratch Astrokatt Skrevet av: Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill Fag: Kunst og håndverk, Naturfag Klassetrinn: 1.-4. klasse, 5.-7. klasse Språk: Norsk bokmål Introduksjon Katten vår
DetaljerSteg 1: Tekst på flere linjer
Skilpaddetekst Skrevet av: Ole Kristian Pedersen, Kodeklubben Trondheim Kurs: Python Tema: Tekstbasert Fag: Programmering Klassetrinn: 8.-10. klasse Introduksjon I denne oppgaven skal vi skrive kode, slik
DetaljerOblig4 - forklaringer. Arne og Ole Christian
Oblig4 - forklaringer Arne og Ole Christian Struktur og alle (?) klassene import easyio.*; import java.util.*; class Oblig4 { public static void main (String[] args) { String s1 = "Stasjoner-1.txt"; String
DetaljerHvor i All Verden? Del 3. Introduksjon. Steg 0: Forrige gang. Sjekkliste. Skrevet av: Geir Arne Hjelle
Hvor i All Verden? Del 3 Skrevet av: Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill Fag: Matematikk, Programmering, Samfunnsfag Klassetrinn: 1.-4. klasse, 5.-7. klasse, 8.-10. klasse Introduksjon
DetaljerSoloball. Introduksjon. Steg 1: En roterende katt. Sjekkliste. Skrevet av: Geir Arne Hjelle
Soloball Skrevet av: Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill Fag: Matematikk, Programmering Klassetrinn: 1.-4. klasse, 5.-7. klasse, 8.-10. klasse Introduksjon Vi skal nå lære hvordan vi
DetaljerHvordan angripe en større oppgave? (og hva skal jeg gjøre i oblig 7!?)
Hvordan angripe en større oppgave? (og hva skal jeg gjøre i oblig 7!?) Skaff deg et godt overblikk... Les oppgaveteksten godt! Forstå hva oppgaven skal gjøre. Se på eksempelkjøringen! Hvilke klasser trenger
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Mandag 30. november 2009 Tid for eksamen: 14.30 17.30
DetaljerNorsk informatikkolympiade runde
Norsk informatikkolympiade 2017 2018 1. runde Sponset av Uke 46, 2017 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerForklaring til programmet AbstraktKontoTest.java med tilhørende filer Konto.java, KredittKonto.java, SpareKonto.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 Forklaring til programmet AbstraktKontoTest.java med tilhørende
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når
DetaljerHvor i All Verden? Del 3 Erfaren Scratch PDF
Hvor i All Verden? Del 3 Erfaren Scratch PDF Introduksjon Hvor i All Verden? er et reise- og geografispill hvor man raskest mulig skal fly innom reisemål spredt rundt i Europa. Dette er den siste av tre
DetaljerØvingsforelesning 5 Python (TDT4110)
Øvingsforelesning 5 Python (TDT4110) Repetisjon av løkker og funksjoner Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av Øving 3 Repetisjon 2 Praktisk info Prosjekter i PyCharm må startes med
DetaljerFinne ut om en løsning er helt riktig og korrigere ved behov
Finne ut om en løsning er helt riktig og korrigere ved behov Finurlige feil og debugging av kode IN1000, uke5 Geir Kjetil Sandve Oppgave (Lett modifisert fra eksamen 2014) Skriv en funksjon Dersom parameteren
DetaljerPXT: Hermegåsa. Introduksjon. Skrevet av: Felix Bjerke og Tjerand Silde
PXT: Hermegåsa Skrevet av: Felix Bjerke og Tjerand Silde Kurs: Microbit Introduksjon Hermegåsa er et spill der en person er spilleder, og går ut på at han utfører instruksjoner på micro:biten sin som de
DetaljerPXT: Hermegåsa. Steg 1: Sjekk at du har riktig utstyr. Sjekkliste. Introduksjon
PXT: Hermegåsa Nybegynner Micro:bit Introduksjon Hermegåsa er et spill der en person er spilleder, og går ut på at han utfører instruksjoner på micro:biten sin som de andre spillerene skal gjenta, altså
DetaljerSteg 1: Bli kjent med spillet
Krabbeangrep! Remiks Skrevet av: Gudbrand Tandberg Kurs: Scratch Tema: Blokkbasert, Spill, Animasjon Fag: Programmering Klassetrinn: 1.-4. klasse, 5.-7. klasse, 8.-10. klasse Introduksjon Denne uken skal
DetaljerMatematikk og fysikk RF3100
DUMMY Matematikk og fysikk RF3100 Løsningsforslag 16. mars 2015 Tidsfrist: 23. mars 2015 klokken 14.00 Oppgave 1 Her skal vi se på hvordan man kan sikte seg inn på stridsvogner i bevegelse. Ved t = 0 befinner
DetaljerKlask-en-Muldvarp. Introduksjon. Skrevet av: Basert på MITs "MoleMash for App Inventor 2"-guide (
Klask-en-Muldvarp Skrevet av: Basert på MITs "MoleMash for App Inventor 2"-guide (http://appinventor.mit.edu/explore/ai2/molemash.html) Oversatt av: Hanne Johnsen Kurs: Appinventor Tema: App, Blokkbasert
DetaljerVerden. Introduksjon. Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide
Verden Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide Kurs: Processing Tema: Tekstbasert Fag: Matematikk, Programmering, Samfunnsfag Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon Velkommen
DetaljerInnhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk
Innhold uke 7 Objektorientert programmering i Python: Introduksjon IN1000 Høst 2017 uke 7 Siri Moe Jensen Lite tilbakeblikk: Prosedyrer og funksjoner Objektorientert programmering Introduksjon: Hvorfor,
DetaljerNorsk informatikkolympiade 2014 2015 1. runde
Norsk informatikkolympiade 2014 2015 1. runde Sponset av Uke 46, 2014 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 13. juni 2006 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 5
DetaljerSteg 1: Streken. Steg 2: En hoppende helt. Sjekkliste. Sjekkliste. Introduksjon. Hei der! Hoppehelt
Hei der! Hoppehelt Ser ut som dette er ditt første besøk, vil du ha en omvisning? Ekspert Scratch PDF Introduksjon Hoppehelt er litt inspirert av musikkspillet Guitar Hero. I Hoppehelt skal man kontrollere
DetaljerFor å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.
Kuprat Skrevet av: Geir Arne Hjelle Kurs: Python Tema: Tekstbasert Fag: Norsk Klassetrinn: 5.-7. klasse, 8.-10. klasse Introduksjon I dette kurset skal vi introdusere programmeringsspråket Python. Dette
DetaljerTDT4113 - Datateknologi, programmeringsprosjekt
TDT4113 - Datateknologi, programmeringsprosjekt Oppgave 1: Stein, Saks, Papir Dette dokumentet beskriver den første oppgaven i ProgLab 2, som vi kaller Stein, Saks, Papir. For denne oppgaven gjelder at:
DetaljerNorsk informatikkolympiade runde. Sponset av. Uke 46, 2015
Norsk informatikkolympiade 2015 2016 1. runde Sponset av Uke 46, 2015 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerLærerveiledning - Straffespark
Lærerveiledning - Straffespark Skrevet av: Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill Fag: Matematikk, Programmering Klassetrinn: 1.-4. klasse, 5.-7. klasse, 8.-10. klasse Om oppgaven I denne
DetaljerHusk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.
Skilpaddeskolen Skrevet av: Oversatt fra Code Club UK (//codeclub.org.uk) Oversatt av: Bjørn Einar Bjartnes Kurs: Python Tema: Tekstbasert Fag: Programmering, Kunst og håndverk Klassetrinn: 8.-10. klasse
DetaljerINF1000 Eksamen 2014 (modifisert)
INF1000 Eksamen 2014 (modifisert) Oppgave 1 (4 poeng) a) Hva er verdien til tall etter at følgende kode er utført? tall = (5+3)*2 tall = tall+2 b) Anta at følgende programsetninger utføres. Hva skrives
DetaljerVerden. Steg 1: Vinduet. Introduksjon
Verden Introduksjon Processing Introduksjon Velkommen til verdensspillet! Her skal vi lage begynnelsen av et spill hvor man skal gjette hvilke verdensdeler som er hvor. Så kan du utvide oppgava til å heller
DetaljerINF109 (kun et utvalg av kommentarene er med i denne rapporten)
INF109 (kun et utvalg av kommentarene er med i denne rapporten) Respondenter Prosent Ny 0 0,0% Distribuert 18 47,4% Noen svar 0 0,0% Gjennomført 19 50,0% Frafalt 1 2,6% I alt 38 100,0% Er det første gang
DetaljerFinne ut om en løsning er helt riktig og korrigere ved behov
Finne ut om en løsning er helt riktig og korrigere ved behov Finurlige feil og debugging av kode IN1000, uke5 Henrik H. Løvold Oppgave (Lett modifisert fra eksamen 2014) Skriv en funksjon Dersom parameteren
DetaljerEndret litt som ukeoppgave i INF1010 våren 2004
Endret litt som ukeoppgave i INF1010 våren 2004!!!" # # $# ##!!%# # &##!'! Kontroller at oppgavesettet er komplett før du begynner å besvare det. Les gjerne gjennom hele oppgavesettet før du begynner med
DetaljerUNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF 101 - Grunnkurs i objektorientert programmering Eksamensdag : Tirsdag 4. juni 2002 Tid for eksamen : 09.00-15.00 Oppgavesettet
DetaljerFra problem til program
Fra problem til program Gitt et problem, hvordan går man fram for å programmere en løsning? UML klassediagrammer Enhetstesting Dokumentasjon Som student ønsker vi oss et program som kan holde oversikt
DetaljerNorsk informatikkolympiade runde
Norsk informatikkolympiade 2016 2017 1. runde Sponset av Uke 46, 2016 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerOm du allerede kjenner Scratch og har en Scratchbruker kan du gå videre til Steg 1.
Pingviner på tur Skrevet av: Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill Fag: Programmering Klassetrinn: 1.-4. klasse, 5.-7. klasse, 8.-10. klasse Introduksjon Velkommen til Scratch. Vi skal
Detaljeri=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 Repetisjon: arrayer Tema: Løkker Arrayer Metoder Ole Christian Lingjærde,. september Deklarere og opprette array - eksempler: int[] a = new int[]; String[] a = new String[]; I
Detaljer