Hoorcollege 7 Collections, arrays. Programma ‘Snowflakes’ Sneeuwvlok object.

Slides:



Advertisements
Verwante presentaties
Zelf objecten maken in VBA Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
Advertisements

Project Software Engineering Universiteit AntwerpenPlanning 4.1 Hoe snel loopt iemand de 100 meter ?
Conditional Clauses If-zinnen.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 1.
Programmeren in Java met BlueJ
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Gelinkte lijsten Finite State.
Gegevensstructuren: list boxen en lijsten
Instructie Programmeren Task 8 5JJ70. PAGE 2 Task 8: Double Linked List Het doel van deze opdracht is: Het opbouwen van een tweetal klassen, die samen.
Van domeinklasse tot implementatie
MagentaPurpleTeal PinkOrangeBlue LimeBrown RedGreen Introductie C# /.NET
Hoofdstuk 10.2 Rekenmachine-casus.
OOS Object geOrienteerd Software-ontwerp - 4 Codeerperikelen Singleton Specificeren Scheiding GUI en Domein Facade.
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
Computervaardigheden en Programmatie Universiteit AntwerpenObjecten 4.1 Computervaardigheden en Programmatie 1rste BAC Toegepaste Biologische Wetenschappen.
Modula vs Java MODULE Show; CONST PI = ; TYPE PointRc = RECORD x,y : INTEGER; speed : REAL; angle : REAL; END; VAR a,b : PointRc; BEGIN.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Hoofdstuk 2 Hallo, C# !.
Server side scripting 1 Webtechnologie Lennart Herlaar.
1 Toegepaste Informatica Keuzevak C++ 3°jaar. 2 Studiefiche  Software  Boek (hfst 3-5)  Presentatie (website)
De koektrommel of de grabbelton
Algoritmiek Arrays: wat zijn dat en wat kun je ermee? Loops: hoe hou je ze in bedwang? Hoorcollege 6 - Ma. 9 okt L.M. Bosveld-de Smet.
Inleidend probleem Data structuur (hiërarchie van classes)
GESPRG Les 8 Gestructureerd programmeren in C. 101 Array Meerdere variabelen van hetzelfde type kun je samennemen in één array variabele. Stel in een.
Opgave 1a: afronden int n=5; double a, b, c, d; a = n * 1.5; b = n * 3 / 2; c = n / 2 * 3; d = 3 / 2 * n; a b c d
Array nDeclaratie nCreatie nOpvragen nWijzigen nLengte String [ ] a; a = new String[10]; ……a[5]…… a[5] = ……; …a.Length… …is eigenlijk overbodig! List a;
Hoorcollege 8 Game object structuren. Arrays in games Grid-gebaseerd speelveld (zoals Tetris) Lijst van spelers Lijst van inventory items Lijst van alle.
Hoorcollege 13 Animatie, game physics. De speler Wordt aangestuurd via toetsenbord Kent verschillende soorten bewegingen Rennen Stilstaan Springen Doodgaan.
Eerste deeltoets Uitwerking. Resultaten Gemiddeld: 6,01 Tips voor de volgende keer: – Werk in klad uit, schrijf duidelijk – Oefenen met loops en tellertjes.
Hoorcollege 14 Vijanden, excepties. Wat zit allemaal in een level? Startpositie van de speler Waterdruppels Tiles Vijanden Einde van het level Achtergronden.
Hibernate Object relational mapping
Algoritmiek Strings & Stringmanipulaties; Controle Structuren; Floating-point notation. Hoorcollege 4 - Ma. 25 sept L.M. Bosveld-de Smet.
Algoritmiek Java GUIs, AWT en Swing API Overzicht te bestuderen stof, voorbeeldtentamen Hoorcollege 15 - Ma. 11 dec L.M. Bosveld-de Smet.
H21. en H22. COLLECTIONS FRAMEWORK. 1. INLEIDING.
JAVA1 H 22. COLLECTIONS FRAMEWORK. 1. INLEIDING. Collections framework Is een verzameling van data structuren, interfaces en algoritmen Meest voorkomende.
1 Hoofdstuk 11: Strings en karakters Inleiding In dit hoofdstuk bespreken we de mogelijkheden van de klassen : String StringBuffer Character StringTokenizer.
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 3.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Het ARM bord met wat library functies.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag GUI  command line redirection.
Hoorcollege 12 Afronding Penguin Pairs & overzicht Tick Tick.
Hoofdstuk 2 Java. Soorten Java-programma’s nJava Applet programma “leeft” op een WWW-pagina nJava Application programma heeft een eigen window nJavascript.
Hoofdstuk 9 Objecten en klassen.
Hoorcollege 9 Jewel Jam The revenge. Hierarchie van game objecten Game object (lijst) Game object (grid) Game object (lijst) Game object.
Internetapplicaties - IV Collecties 1 Internetapplicaties Deel 4: Java hulpklassen: Collecties.
TOPIC O: Pointers | pag. 1 Pointer = adres in het geheugen, is zelf geen geheugen! Expliciet geheugen aanvragen vóór gebruik.
Hoofdstuk 10.1 Toepassing: Bitmap-editor. nKlik punten op scherm nPlaatje verschuiven left, right, up, down nPlaatje bewerken clear, invert, bold, outline.
Ted Nelson (1937- ) A file structure for the Complex, the changing, and the Interdeterminate.
Hoofdstuk 5 Interactie. Controls Form Label Button Label TextBox.
Hoorcollege 5 Herhaling, game object interactie. Ball class class Ball { Texture2D colorRed, colorGreen, colorBlue; Texture2D currentColor; Vector2 position,
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 7 onze.
C++ C++ als een verbetering van C Abstracte datatypen met classes Constructoren en destructoren Subklassen binding van functies 1.
The beast has been released! 4 arcade-style games Interviews with famous people in the game industry Develop browsers games for any device (phone, tablet,
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
Interfaces Hoofdstuk 23 Hoofdstuk 23.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
GEGEVENSSTRUCTUREN IN.NET. Inleiding  Enumerated type  Structure  Collecties  Typed collections  Untyped collections.
Game Object Structuren
Gameprogrammeren: Lists en interfaces
Gameprogrammeren: Overerving
Gameprogrammeren: Char en String
Letterfrequentie turven
Gameprogrammeren: Overerving in Painter
Arjan Egges & Paul Bergervoet
Gameprogrammeren: Abstracte klassen
Gameprogrammeren: Interfaces
Gameprogrammeren: Klassen en objecten
Arjan Egges & Paul Bergervoet
Software Development fundamentals
Software Development fundamentals
Gameprogrammeren: Arrays
Transcript van de presentatie:

Hoorcollege 7 Collections, arrays

Programma ‘Snowflakes’ Sneeuwvlok object

SnowFlakes programma class MyGame { Snowflake snowflake1; Snowflake snowflake2; Snowflake snowflake3; Snowflake snowflake4; Snowflake snowflake5; Snowflake snowflake6; Snowflake snowflake7; Snowflake snowflake8; Snowflake snowflake9; … } Dat kan handiger!

Collections Worden gebruikt om lijsten of verzamelingen van objecten/variabelen te representeren Voorbeelden van Collection klassen: List, Set, Dictionary…

Collections Voorbeeld: de List klasse – Uit System.Collections.Generic Declaratie: Initialisatie: List snowflakes; snowflakes = new List (); Type van objecten in de lijst.

Collections Wat kan List bijvoorbeeld allemaal? – Lengte opvragen – Element ergens in de lijst toevoegen – Element aan het eind toevoegen List heeft een type-parameter – We noemen List ook wel een generiek type int lengte = snowflakes.Count; snowflakes.Insert(1, new Snowflake(…)); snowflakes.Add(new Snowflake(…));

Vullen en langslopen van een List for (int i = 0; i < 500; i++) snowflakes[i].Draw(gameTime, spriteBatch); snowflakes = new List (); Texture2D sprite; sprite = Content.Load ("spr_snowflake"); for (int i = 0; i < 500; i++) { Snowflake flake = new Snowflake(sprite); snowflakes.Add(flake); } Geeft aan welk element In de lijst we willen hebben We moeten wel steeds het aantal vlokken aangeven… 

Langslopen van een List Speciale constructie: foreach Letterlijk: ‘doe iets voor elk object in de lijst’ Kan gebruikt worden voor alle Collection klassen for (int i = 0; i < nrOfFlakes; i++) snowflakes[i].Draw(gameTime, spriteBatch); foreach (Snowflake flake in snowflakes) flake.Draw(gameTime, spriteBatch);

IList interface List heeft een soort superklasse IList Dus dit mag ook: IList is een interface Verschil interface/klasse: – Keyword ‘virtual’ niet nodig in een interface – Een klasse mag meerdere interfaces implementeren IList snowflakes; snowflakes = new List ();

Interfaces Een interface definieert methoden en properties… Maar implementeert ze niet! Ook heeft een interface geen membervariabelen Klasse die een interface implementeert moet alle methoden/properties bevatten die in die interface gedefinieerd zijn

IList/ICollection interface ICollection – Volgorde van gegevens is niet belangrijk – Voorbeeld: alle items in de inventory van de speler IList – Gegevens die in een lineaire volgorde staan – Voorbeeld: de achtergrondlagen in de volgorde waarin ze getekend moeten worden

ICollection interface Ziet er zo uit: interface ICollection { void Add(E x); bool Remove(E x); bool Contains(E x); int Count {get;}; // een read-only property void Clear(); … }

IList interface interface IList : ICollection { E this [int n] {get; set;}; // notatie voor de indicering int IndexOf(E x); void Insert(int n, E x); void RemoveAt(int n); … } IList interface is ook Een ICollection!

Andere interfaces ISet – De klassieke verzameling – Mag geen dubbele elementen bevatten IDictionary – Een soort array, maar dan anders – Indicering kan met elk type – Bijvoorbeeld string IDictionary vertaler = new Dictionary (); vertaler["hallo"] = "hello"; vertaler["het spel"] = "the game";

Arrays Een array is een lijst van objecten van hetzelfde type. – Simpele vorm van een collection Voorbeeld van een declaratie van een array: int [] tabel; Variabelenaam Geeft aan dat we met een array te maken hebben Type van de waarden in de array

Arrays int [] tabel; tabel = new int[5]; tabel 0 length Declaratie Initialisatie Aantal elementen in de array Bevat aantal elementen Let op: na initialisatie kan het aantal elementen niet meer veranderd worden! – In tegenstelling tot Collections!

x 0 length Arrays int [] tabel; tabel = new int[5]; tabel[3] = 12; int x = tabel[3] + 5; tabel[1] = tabel[3]/2; x = tabel.Length; tabel Property voor toegang tot het aantal elementen 5 6

Arrays Stel we vullen de array als volgt: Dit kan ook een stuk handiger: int [] tabel; tabel = new int[5]; tabel[0] = 42; tabel[1] = 42; tabel[2] = 42; tabel[3] = 42; tabel[4] = 42; int nummer; for (nummer=0; nummer<tabel.Length; nummer++) tabel[nummer] = 42;

Publieksvraag Schrijf een aantal opdrachten die de tabel vult met de waarden 1 t/m 5 int nummer; for (nummer=0; nummer<tabel.Length; nummer++) tabel[nummer] = nummer+1;

Publieksvraag De reeks van Fibonacci is als volgt gedefinieerd: – f(0) = 1, f(1) = 1 – f(n) = f(n-2) + f(n-1) voor n > 1 Voorbeeld: – 1, 1, 2, 3, 5, 8, 13, 21, enzovoorts Schrijf een serie opdrachten die een array van grootte 20 met de reeks van Fibonacci vult.

Oplossing int[] fib; fib = new int[20]; fib[0] = 1; fib[1] = 1; for (int nummer=2; nummer<fib.Length; nummer++) fib[nummer] = fib[nummer-1] + fib[nummer-2];

Arrays van andere typen Arrays kunnen van allerlei typen gemaakt worden: int[] fibonacci; float[] floatArray; char[] karakterLijst; Vector2[] posities; GameObject[] gameObjecten; Type mag ook best een struct zijn. Of zelfs een eigen klasse!

Array van getallen tabel int [ ] tabel; new int [5];tabel = length5

Array van struct-objecten tabel Vector2 [ ] tabel; new Vector2[5]; tabel = length5

Array van class-objecten tabel GameObject [ ] tabel; new GameObject[5]; tabel = length5 for (int t=0; t<5; t++) tabel[t] = new GameObject();

Array als parameter tabel length int Kleinste ( int [ ] tabel ) { } int resultaat; return resultaat; if (tabel [t] < resultaat) resultaat = tabel [t]; for (t=0; t<tabel.Length; t++) int t; resultaat =tabel [0];

Deel van de array doorzoeken tabel length int Kleinste ( int [ ] tabel ) { } int resultaat; return resultaat; if (tabel [t] < resultaat) resultaat = tabel [t]; for (t=0; t<tabel.Length; t++) int t; resultaat =tabel [0]; aantal, int aantal) static

Syntax van array-type

Twee-dimensionale array tabel int [, ] tabel; new int [5,3]; tabel = length tabel.GetLength(0) tabel.GetLength(1)

Array van arrays tabel int [ ] [ ] tabel; new int[5][2]; tabel = length5

Drie-dimensionale array tabel int [,, ] tabel; new int [5,3,2]; tabel = length

Initialisatie van arrays string [ ] woorden = { "aap", "noot", "mies" }; int [ ] maand = { 31,28,31,30,31,30,31,31,30,31,30,31 }; int [, ] = { {1,2,3,4}, {5,6,7,8} };

De volgende keer Jewel Jam