Gameprogrammeren: Arrays

Slides:



Advertisements
Verwante presentaties
Van domeinklasse tot implementatie
Advertisements

PROS2 Les 11 Programmeren en Software Engineering 2.
Inleidend probleem Data structuur (hiërarchie van classes)
Flow controle Keuzes maken. Het if-statement Soms moet code alleen in bepaalde situaties uit gevoerd worden Hiervoor heeft C de if-else constructie: if(voorwaarde1){
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
Hoorcollege 7 Collections, arrays. Programma ‘Snowflakes’ Sneeuwvlok object.
Static Keyword static voor functieleden functie niet voor een object aangeroepen class K {... static int minimum( int i, int j); } aanroep: K::minimum(
Algoritmiek Object-georiënteerd Programmeren
Deel I: Programmeertaal C 6. Arrays en Pointers
Arrays.
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Arrays en pointers lichtkrant op het ARM bordje.
Tircms02-p les 3 Functies Strings Structuren. Functies 1. main() 2. { int k; k = 10 ; printf(“%d\n”,fac(k)); } 3. int fac(n) int n; 4. { int f; f= 1;
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  Een (vaste) melodie spelen op de PC speaker 
Hoofdstuk 11 Strings en arrays. TextArea en String class LetterTeller extends Applet { void init ( ) { invoer = new TextArea (5, 40); uitvoer = new TextField(40);
Aangepaste timing nTheorie (16 colleges + 2 deeltentamens) nPraktijk (16 keer, 3 inleveropdrachten) college Tent. 1 Tent. 3 college prakt. 1 prakt. 3 prakt.
Resources. Kompas } { protected override void OnDraw(Canvas canv) { base.OnDraw(canv); } public KompasView(Context c) : base(c) { } class KompasView :
Programma opdrachten methoden klasse variabelen en Geheugen objecten klasse zijn gegroepeerd in hebben als type veranderen bewerken.
Exceptions Exception: nUitzonderlijke toestand die door een methode wordt opgeworpen nDe situatie moet door de aanroeper van de methode worden opgevangen.
GEGEVENSSTRUCTUREN IN.NET. Inleiding  Enumerated type  Structure  Collecties  Typed collections  Untyped collections.
Meer constructormethodes in klasse Kleur { class Kleur } public byte Rood, Groen, Blauw; public Kleur( byte r, byte g, byte b ) { } Rood=r; Groen=g; Blauw=b;
Game Object Structuren
Aanroep van een methode voert opdrachten uit in de body daarvan
Gameprogrammeren: Objecten en geheugen
Gameprogrammeren: Game Assets
Gameprogrammeren: Lists en interfaces
Gameprogrammeren: Keuzeopdrachten
Gameprogrammeren: Overerving
Hoofdstuk 9.2 Strings.
Gameprogrammeren: Char en String
Letterfrequentie turven
Gameprogrammeren: Variabelen, declaraties en toekenningen
Wat is het grootste getal
Gameprogrammeren: Expressies
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Gameprogrammeren: Animatie
Gameprogrammeren: Methoden
Arjan Egges & Paul Bergervoet
Gameprogrammeren: Overerving in Painter
Gameprogrammeren: Player input in Painter
Gameprogrammeren: Programmastructuur
Basis Gameprogrammeren
Gameprogrammeren: Tiles in Tick Tick
Gameprogrammeren: Afsluiting
Gameprogrammeren: Willekeurigheid (Randomness)
Gameprogrammeren: Herhalingen
Gameprogrammeren: Properties
Tinpro015b-les6 Templates.
Arjan Egges & Paul Bergervoet
Gameprogrammeren: Game Basics
Arjan Egges & Paul Bergervoet
Voorbeeld: Simulatie van bewegende deeltjes
Voortborduren op eerder gedaan werk
Gameprogrammeren: Recursie
Gameprogrammeren: Exceptions
Opdrachten herhalen public void tekenScherm (object o, PEA pea)
Gameprogrammeren: Abstracte klassen
Willekeurigheid en Herhaling
Gameprogrammeren: Interfaces
Arjan Egges Paul Bergervoet Wouter van Toll
Gameprogrammeren: Tiles en File I/O in Tick Tick
Game: omgaan met tijd (Jewel-Jam)
Gameprogrammeren: Klassen en objecten
Arjan Egges & Paul Bergervoet
Object Communication (Jewel Jam)
Gameprogrammeren: Sprite sheets
Software Development fundamentals
Software Development fundamentals
Transcript van de presentatie:

Gameprogrammeren: Arrays Arjan Egges Paul Bergervoet Wouter van Toll

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

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

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

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 1 Gegeven een array ‘tabel’ van lengte 5 Schrijf een aantal opdrachten die de array vult met de waarden 1 t/m 5 Oplossing: int nummer; for (nummer=0; nummer<tabel.Length; nummer++) tabel[nummer] = nummer+1;

Publieksvraag 2 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 (dus: elk getal is de som van de vorige twee) Begint als volgt: 1, 1, 2, 3, 5, 8, 13, 21, ... Schrijf een serie opdrachten die een array van grootte 20 met de reeks van Fibonacci vult

Publieksvraag 2 Oplossing: int[] fib; fib = new int[20]; fib[0] = 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: Type mag ook best een struct zijn. int[] fibonacci; float[] floatArray; char[] karakterLijst; Vector2[] posities; GameObject[] gameObjecten; Of zelfs een eigen klasse!

Array van getallen int [ ] tabel; tabel = new int [5]; tabel 5 length int [ ] tabel; 1 2 tabel = new int [5]; 3 4

Array van struct-objecten tabel 5 length Vector2 [ ] tabel; 1 tabel = new Vector2[5]; 2 3 4

Array van class-objecten tabel 5 length GameObject [ ] tabel; 1 tabel = new GameObject[5]; 2 3 for (int t=0; t<5; t++) 4 tabel[t] = new GameObject();

Array als parameter int Kleinste ( int [ ] tabel ) { } int resultaat; 1 2 3 4 length 5 12 95 11 23 15 int resultaat; int t; resultaat = tabel[0]; for (t=0; t<tabel.Length; t++) if (tabel[t] < resultaat) resultaat = tabel[t]; return resultaat;

Deel van de array doorzoeken static int Kleinste ( int [ ] tabel ) { } tabel , int aantal) 1 2 3 4 length 5 12 95 11 int resultaat; int t; resultaat = tabel[0]; for (t=0; t<tabel.Length; t++) aantal if (tabel[t] < resultaat) resultaat = tabel[t]; return resultaat;

Syntax van array-type

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

Array van arrays int [ ] [ ] tabel; tabel = new int[5][2]; tabel 5 length int [ ] [ ] tabel; 1 tabel = new int[5][2]; 2 3 4

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

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