Opgave 2. T-drop T-drop is een Tetris-achtig spelletje waarbij je zoveel mogelijk T-stukken in een rechthoekige put wilt laten vallen en waarbij je de put zo goed mogelijk wilt opvullen. De put heeft een van tevoren vastgestelde breedte B. In het voorbeeld is dat B=6. De put is in principe oneindig hoog. De T-stukken zien eruit zoals in het voorbeeld. Je kan de T-stukken op vier manieren in de put laten vallen. De letter geeft aan in welke rij het T-stuk gevallen is en het cijfer geeft de oriëntatie aan. In het voorbeeld zie je het resultaat van het laten vallen van de reeks: A1–A2–A3–A4. A4 A3 A2 A1 Je kan het ook “raar” opvullen. Dit is het resultaat van de reeks: E4–C3–C2–D4–C3–A4–A4. 9 8 C3 7 6 D4 5 A4 4 C2 3 C3 2 A4 1 E4 Merk op dat er in voor B=6 geen zetten mogelijk zijn voor: E1 en E3. Opdracht 2a Je programma moet het tekstbestand in.txt openen en daaruit de volgende gegevens inlezen. Eerst krijg je de breedte B van de put aangeboden, vervolgens het aantal T-stukken N en tenslotte op de volgende N regels de T-stukken. Je programma moet naar het tekstbestand uit.txt, in volgorde, de coördinaten wegschrijven van de N T-stukken. De coördinaat is het nummer van de rij waarin het meest links en beneden geplaatste vierkantje van de T terecht is gekomen (zie ook het voorbeeld hieronder). Invoervoorbeeld bestand in.txt: 6 7 E4 C3 C2 D4 C3 A4 A4 Uitvoervoorbeeld bestand uit.txt: 2 3 4 6 8 2 5 Het invoer- en uitvoervoorbeeld stelt het “rare” voorbeeld van hierboven voor. Je programma krijgt moeilijke en makkelijk opdrachten te verwerken. Het maximum aantal T-stenen dat je programma te verwerken krijgt is echter 1000. Voor dit onderdeel kan je maximaal 40 punten verdienen. Je programma krijgt in totaal 10 testgevallen die elk 4 punten waard zijn. Optimaal vullen Bij het tweede deel van deze opdracht moet je een oplossing zien te vinden voor het zo best mogelijk opvullen van een put. Je krijgt van tevoren een breedte B en een diepte D opgegeven. Jij moet het maximum aantal stukken S zien te vinden dat in de put past. Bijvoorbeeld: B=6 en D=4. Een mogelijke optimale oplossing voor dit probleem is: 4 3 2 1 Voor dit voorbeeld is de oplossing dus S=5. Opdracht 2b: Je krijgt via stdin een breedte B en een diepte D opgegeven. Je programma moet naar stdout het maximum aantal T-stukken S wegschrijven dat in deze put past. Invoervoorbeeld: 6 4 Uitvoervoorbeeld: 5 Je programma krijgt moeilijke en makkelijk opdrachten te verwerken. Voor de breedte van de put geldt: 2≤B≤7. Voor de diepte D van de put zijn er in drie categorieën punten te verdienen: D<10, D<20 en D<30. Per categorie krijg je maximaal 20 punten. Je programma wordt in totaal onderworpen aan 30 testgevallen, 10 per categorie. Je programma krijgt maximaal 5 seconden rekentijd per geval.
© Copyright 2025 ExpyDoc