Lablektion 6
Grafik och lyssnare
Lablektionens syfte är att öva på att använda grafik och att träna
på händelsebaserad programmering. Hjälp finns att tillgå i labbet under
lablektionstiden och andra tider så är det bara att skicka ett mail till
Daniel,
Johan eller
Set.
Försök att lösa uppgifterna enskilt först men om du kör fast så fråga
gärna.
Uppvärmning
Skriv liten applikation med en knapp. Applikationen skall räkna hur många gånger användaren trycker
på knappen och antalet knapptryckningar skall redovisas i applikationen. En lämplig design
är att låta knappen ha en lyssnare som lyssnar efter tryckningar. Vid varje tryckning räknas
det totala antalet tryckningar upp och antalet tryckningar skrivs ut i textfält i applikationen.
Uppgift
Monty Hall
Kanske känns följande tävling igen från något TV-program: En tävlande väljer mellan tre stänga dörrar.
Bakom en av dörrarna finns ett pris och bakom de andra två finns ingenting. När den tävlande sedan har
valt en dörr öppnar programledaren en av de två dörrar som det inte finns någonting bakom. Den tävlande får
sedan välja att antingen behålla sin ursprungliga gissning eller att byta dörr. Problemet brukar kallas
Monty Hall vilket var namnet på programledaren i det engelska TV-program där tävlingen först förekom.
Din uppgift är att implementera en applikation som låter användaren genomföra tävlingen.
Applikationen har lämpligtvis tre knappar, en för varje dörr. Om man vill göra det lite snyggare
kan man lämpligtvis implementera en speciell klass som har ett lite mer dörrlikt utseende och
använda denna klass i stället för knappar.
I stora drag bör man först slumpa ut bakom vilken av dörrarna priset skall finnas.
När detta är gjort kan användaren klicka på en dörr för att välja denna. Nu skall programmet
hitta en felaktig dörr som användaren inte har valt (det finns alltid minst en sådan dörr).
Avslöja för användaren att priset inte finns bakom denna dörr och vänta sedan på att
användaren väljer dörr en gång till. Man kan tänka sig att detta sker genom att användaren klickar precis som
vid det förra valet.
Till sist kan man fundera på den klassiska frågan:
Ökar vinstchansen om man byter dörr,
skall man behålla sin ursprungliga gissning eller spelar det ingen roll?
Denna lablektion är utvecklad av
Daniel Lundmark,
Johan Tordsson och
Set Norman.
http://www.cs.umu.se/kurser/TDBA54/SU02/LLmaterial/LL6/index.html
Ansvarig för sidan:
Johan Tordsson
Senast ändrad 2002-08-15
|