HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS) LES 4 In deze les gaan we een eenvoudig dobbelspelletje maken: Allereerst krijgt de speler de gelegenheid zijn/haar naam in te vullen en daarna op OK te klikken en het spel te starten in een volgend scherm. De speler krijgt dan 4 digitale dobbelstenen en mag hiermee maximaal 7 keer gooien en moet daarbij een zo hoog mogelijke score behalen, waarbij de volgende puntentelling geldt: Vier gelijke: 40 punten Drie gelijke: het aantal punten is gelijk aan het totaal aantal ogen van de 4 dobbelstenen Straat: 30 punten voor 4 oplopende dobbelstenen (volgorde niet van belang) Dubbele tweeling: 20 punten voor twee keer twee dezelfde Na iedere werpbeurt (m.u.v. een 7 e werpbeurt) mag de speler ervoor kiezen 1, 2 of 3 dobbelstenen niet mee te nemen in de volgende werpbeurt. Na 7 keer gooien (of zoveel eerder de speler aangeeft de actuele score vast te willen zetten) wordt de score getoond en wordt de score met de naam van de speler toegevoegd aan een scorelijst (een tekstbestand). Start indien je dit nog niet gedaan hebt Lazarus Start een nieuwe applicatie met File New Application en sla dit project meteen op in een aparte map, bijvoorbeeld genaamd Les4, en onder de projectnaam Dobbelsteen. De unit die hoort bij de eerste Form kun je opslaan als unit1. Hierna kun je tussendoor je wijzigingen opslaan via File Save All.
Maak een GUI voor het eerste scherm die er als hieronder uitziet. Aanwijzingen hierbij: Stel de breedte van Form1 in op 1024: Stel de hoogte van Form1 in op 482: Set de Position van Form1 in op poscreencenter : Stel de BorderStyle van Form1 in op bssingle : Hierdoor kan de gebruiker de grootte van het Form1 venster niet meer aanpassen door de randen te verslepen. Stel de BorderIcons bimaximize in op False : Hierdoor kan de gebruiker het venster van Form1 niet meer maximaliseren. Stel de Caption van Form1 in op Dobbelspel : Plaats een Image op Form1 en zorg dat de Autosize property van Image1 op False staat: Stel de breedte van Image1 in op 1024: Stel de hoogte van Image1 in op 482: Stel de Picture in op de afbeelding 5dobbelstenen.png Stel de Stretch property van Image1 in op True: (hiermee wordt de afbeelding kleiner weergegeven, in 1024 x 482) Stel de properties Left en Top van Image1 beide in op 0: (hiermee komt de afbeelding mooi gelijk te staan met Form1)
Plaats een Shape op Form1, deze kun je vinden op het tabblad Additional : Stel van Shape1 in: Left: 298 Top: 132 Width: 428 Height: 218 Stel bij Shape1 ook het volgende in: Plaats een Label op Form1 met als Caption: Vul hieronder je naam in: en stel de property Color van dit Label1 in op clyellow : Stel van Label1 ook in: Left: 320 Top: 176 Stel de Font property van dit Label1 in op: Font: Arial Font style: Bold Size: 24 Plaats een Edit (Edit1) op Form1 met de volgende properties: Left: 320 Top: 240 Width: 380 Height: 40 Stel de Font property van deze Edit1 in op: Font: Arial Font style: Bold Size: 24 Plaats een Button op Form1 met de volgende properties: Left: 628 Top: 304 Width: 75 Height: 25 Caption: OK Zorg er ook voor dat Form1 bij opstarten van het programma mooi gecentreerd wordt op het scherm door de property Position van Form1 als volgt in te stellen:
Hiermee is het eerste scherm klaar. We gaan nu het tweede scherm aanmaken en inrichten.
Maak een nieuwe Form aan via File New :
De nieuwe Form (genaamd Form2 ) verschijnt: Sla de Unit die bij Form2 hoort op als Unit2 (in dezelfde map als de rest van het project) via File Save As:
Maak een GUI voor het tweede scherm die er als hieronder uitziet. Aanwijzingen hierbij: Stel de breedte van Form2 in op 1024: Stel de hoogte van Form2 in op 482: Stel de Color van Form2 in op ClYellow: Stel de Caption van Form2 in op Dobbelspel : Plaats een Label (Label1) op Form2 en stel het volgende in: AutoSize: true Caption: Dobbelspel Font: Arial, Bold, 24 Left: 30 Top: 20 Plaats een Button (Button1) op Form2 en stel het volgende in: Caption: Dobbelen! Width: 320 Height: 25 Left: 30 Top: 80 Plaats een Label (Label2) op Form2 en stel het volgende in: AutoSize: true Caption: Aantal keren gedobbeld: Font: Arial, Bold, 16 Left: 30 Top: 128 Plaats 4 Images op Form2 en zorg dat de Autosize property van deze Images (Image1 t/m Image4) op False staat: Stel van Image1 t/m Image4 zowel de breedte (Width) als de hoogte (Height) in op 106 en positioneer deze Images zoals getoond in de afbeelding Plaats 4 Checkboxes op Form2 via het tabblad Standard : en stel de Caption van deze Checkboxes (Checkbox1 t/m Checkbox4) in op Laten liggen en positioneer deze netjes onder de 4 Images Plaats een Label (Label3) op Form2 en stel het volgende in: AutoSize: true Caption: Punten: Font: Arial, Bold, 18
Left: gelijk aan die van Image1 Top: 128 Plaats een Button (Button2) op Form2 en stel het volgende in: Caption: Score vastzetten en spel stoppen Width: 250 Height: 25 Left: gelijk aan die van Image1 Top: 280 Plaats een Image (Image5) op Form2 en stel het volgende in: Picture: 5dobbelstenen.png AutoSize: true Left: 0 Top: 182 Plaats een Button (Button3) op Form2 en stel het volgende in: Caption: Stoppen Width: 150 Height: 25 Left: 848 Top: 432 Hiermee is het tweede scherm ook klaar. We gaan nu aan het programmeerwerk beginnen.
Zorg ervoor dat je Form1 voor je krijgt. Tips hierbij: o o Je kunt wisselen tussen Form en bijbehorende Unit met de F12-toets op het toetsenbord Aangezien het Project bestaat uit 2 Forms (Form1 en Form2) en bijbehorende Units (Unit1 en Unit2) kun je via tabbladen voor de Unit kiezen waarin je wilt werken: In het eerste scherm is het uitsluitend de bedoeling dat de speler zijn/haar naam invult en daarna op OK klikt, waarna het tweede scherm geopend wordt. Het is wel de bedoeling dat het programma controleert of er daadwerkelijk een naam ingevoerd is, voordat er naar het tweede scherm overgegaan wordt. Indien er geen naam is ingevuld en er wordt op OK geklikt, moet het programma een mededeling hierover geven. Maak een Onclick event aan bij Button1 door in het tabblad Events van Button1 te dubbelklikken en plaats tussen Begin en End; onderstaande code: if Edit1.Text<> then Form2.Show else ShowMessage( Vul a.u.b. je naam in! ); Sla dit Project nu tussendoor op via het menu: File Save All en start het programma met de F9 toets
Waarschijnlijk krijg je nu de volgende foutmelding: Hier wordt door Lazarus aangegeven dat unit1 niet bekend is met Form2. We kunnen dit probleem als volgt oplossen: Type op de plaats van de pijl in de afbeelding hieronder de volgende code: uses Unit2; Met het codewoord uses kun je een Unit dus vertellen dat deze gebruik moet maken van een andere Unit. In dit geval maakt Unit1 gebruik van Unit2. Start het programma nogmaals en controleer of het nu zonder foutmeldingen opstart
Vul geen naam in en klik op OK. Als het goed is wordt er nu het bericht getoond dat je eerst je naam moet invullen: Het eerste venster (Form1) is nu klaar v.w.b. zowel GUI als functionaliteit. Nu gaan we het tweede scherm (Form2) verder in orde maken. Deze les wordt binnenkort aangevuld EINDE VAN LES 4