• No results found

Eerste deeltentamen Gameprogrammeren Woensdag 29 september 2010, 13.00-15.00 uur

N/A
N/A
Protected

Academic year: 2021

Share "Eerste deeltentamen Gameprogrammeren Woensdag 29 september 2010, 13.00-15.00 uur"

Copied!
2
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Eerste deeltentamen Gameprogrammeren Woensdag 29 september 2010, 13.00-15.00 uur

• Let op: Lever het tentamen in op twee bladen! Opgaven 1 en 2 moeten uitgewerkt worden op het eerste blad, opgaven 3 en 4 op het tweede blad. Schrijf op elk ingeleverd blad je naam en je studentnummer.

• De opgaven mag je houden (behalve als je heel vroeg vertrekt).

• Het tentamen bestaat uit 4 opgaven. Elke opgave levert 10 punten op. Je cijfer is het totaal aantal punten gedeeld door 4. Als je een deel van een opgave niet weet, probeer dan toch zo veel mogelijk op te schrijven!

Veel succes!

1. (2 punten per deelvraag) Deze opgave bestaat uit een aantal tekstvragen. Houd het antwoord kort:

een of twee zinnen per onderdeel kan al genoeg zijn.

(a) Wat wordt er in een C#-methode aangeduid metthis? In welke situatie is het niet toegestaan omthiste gebruiken?

(b) Wanneer is een programmeertaal een imperatieve programmeertaal?

(c) De vertaling van een C#-programma naar machinecode gebeurt in twee stappen. Eerst wordt het programma vertaald naar een intermediate language, en die wordt vervolgens weer vertaald naar machinecode. Noem twee voordelen van het vertalen in twee stappen.

(d) Wat doen we over het algemeen in de Update-actie van de game loop?

(e) Geef een voorbeeld van een type uit een standaardlibrary dat eenstructis, en een voorbeeld van een type dat een classis. Wat is het verschil tussen een struct-type en een class-type?

2. (-1 punt per fout) Hieronder staat 16 fragmenten uit een programma. Schrijf op je antwoordblad een blok van 4 bij 4 vakjes en zet in elk vakje een letter passend bij het overeenkomstige fragment:

• T als het programmafragment een type is

• E als het programmafragment een expressie (maar geen constante) is

• O als het programmafragment een opdracht is

• D als het programmafragment een declaratie is

• C als het programmafragment een constante (en dus ook een expressie) is

• X als het programmafragment geen van bovenstaande dingen is bool b; new Vector2(0.0, 3.0) "1+1" = "2"; 10<5

int.Parse; string s = "hallo"; SpriteBatch while (true) i++;

i+=10; s.Length Color.Blue 45

b==i<5 Console.WriteLine(s); s + "!" /* Commentaar.

Zie vervolg op de achterkant

1

Dit tentamen is in elektronische vorm beschikbaar gemaakt door de TBC van A–Eskwadraat.

A–Eskwadraat kan niet aansprakelijk worden gesteld voor de gevolgen van eventuele fouten in dit tentamen.

1

(2)

Opgave 3 en 4 vragen een stukje programma. Kleine schrijffoutjes (hoofdletters, puntkomma’s enz.) worden niet streng afgerekend, maar de elementen die de structuur van het programma bepalen (haakjes, accolades, aanhalingstekens enz.) zijn wel belangrijk. Schrijf die dus duidelijk en op de goede plaats op!

Het is toegestaan (maar niet nodig) om C#-constructies die (nog) niet zijn behandeld toch te gebruiken.

Je hoeft niet aan te geven welke using-opdrachten nodig zijn om de klassen te kunnen gebruiken.

3. (a) (4 punten) Schrijf een methode streepjesmet een getal als parameter. Je mag zonder controle aannemen dat de parameter 0 of groter is. De methode moet als resultaat een string oplev- eren met daarin zoveel verticale streepjes als de parameter aangeeft. Bijvoorbeeld: de aanroep this.streepjes(5)levert “|||||” op.

(b) (6 punten) Schrijf een methode spijker met een getal als parameter. Je mag zonder controle aannemen dat de parameter 1 of groter is.

De methode moet als resultaat een string opleveren met daarin het getal in spijkerschrift-notatie.

Elk cijfer wordt daarin weergegeven met verticale streepjes, en de cijfers worden gescheiden door een liggend streepje. Er staan ook liggende streepjes aan het begin en het eind. Hier zijn een paar voorbeelden:

this.spijker(25)geeft “-||-|||||-”

this.spijker(12345)geeft “-|-||-|||-||||-|||||-” this.spijker(7)geeft “-|||||||-”

this.spijker(203)geeft “-||--|||-”

Hint: verwerk eerst het laatste cijfer, en herhaal dan voor de rest van de cijfers.

4. Beschouw de volgende XNA applicatie:

class UfoTekenen : Game {

static void Main() {

UfoTekenen spel = new UfoTekenen();

spel.Run();

}

SpriteBatch spriteBatch;

Texture2D ufoPlaatje;

public UfoTekenen() {

GraphicsDeviceManager graphics = new GraphicsDeviceManager(this);

Content.RootDirectory = "Content";

}

protected override void LoadContent() {

this.spriteBatch = new SpriteBatch(this.GraphicsDevice);

this.ufoPlaatje = Content.Load<Texture2D>("ufo");

} }

(a) (3 punten) Breid dit programma uit, zodat de ufo altijd op de positie van de muis wordt getekend (de muispointer staat in het midden van de ufo).

(b) (4 punten) Voeg een aantal opdrachten toe zodat de ufo nooit buiten het scherm getekend wordt, en zet deze opdrachten in een aparte methode. Je mag hier geen gebruikmaken van methoden uit deMathHelperklasse.

(c) (3 punten) Tenslotte willen we dat de ufo niet getekend wordt als de speler de A-toets ingedrukt houdt. Breid het programma uit zodat dit bewerkstelligd wordt.

EINDE TENTAMEN

2 2

Referenties

GERELATEERDE DOCUMENTEN

Brie, noten en gekarameliseerde peer €12,50 Gerookte zalm, rode ui, rucola. en roomkaas

405 * Nua pad prik keng; pittig wokgerecht van rundvlees in droge rode curry/ spicy dish of stirfried beef in dry red curry €20 406 * Pad prik keng luang kung; wokgerecht

Overeenkomsten (uitgezonderd koop en verkoop tegen contante betaling) welke al dan niet door bemiddeling van tussenpersonen zijn aangegaan, worden eerst door schriftelijke

10 Het wezenlijke van de liefde is niet dat wij God hebben liefgehad, maar dat hij ons heeft liefgehad en zijn Zoon heeft gezonden om verzoening te brengen voor onze zonden..

Voordat een natuurlijke- of rechtspersoon mag worden ingeschakeld voor het uit- voeren van een gerubriceerde of risicoge- voelige opdracht, dient de verwervende instantie bij

aansprakelijk voor betaling van huur voor de geboekte apparatuur. Drive in shows annuleren kan niet meer kosteloos binnen 14 dagen voor aanvang show. Van 10 tot 100 % van de kosten

1.8 Bij gebouwen waarbij het redvoertuig als tweede vluchtweg dient, moet de vrije rijbaanbreedte 4,5 meter breed zijn en het redvoertuig naast dit gebouw

[r]