Institutionen för datavetenskap Umeå Universitet

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