Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Læringsmål:

  • PLACEHOLDERStore programmer

Pensum:

 
I denne oppgaven er det nesten utallige måter å lage koden på, og det går nesten å bruke alt vi har vært gjennom i pensum. 
Men pensum som kan anbefales å lese på for å få litt større forståelse av store programmer er: 

  • Chapter 6: MATLAB Programs
    Samtlige delkapitler 
  • 10.1 - Anonymous Functions
  • 10.2 - Uses of Function Handles
  • 10.3 - Variable Numbers of Arguments
  • 10.4 - Nested Functions PLACEHOLDER

a)

Spillet Sudoku handler om å fylle 9 rader, kolonner og kvadrater med alle heltall fra og med 1 til og med 9.

...


Først når alle ni kolonner, rader og kvadrater er ferdig utfylt er spillet ferdig. Man kan bruke tallet 0 for å representere en rute som ikke er fylt med et tall. For eksempel mangler fortsatt sifrene 4,6,7,8,9 (i kolonnene 2-6) i raden under. 

200000135

...

 

 

Soduko Sudoku i Matlab skal implementeres. Det er fritt valg av Du bestemmer selv hvordan løsningen bygges opp, men følgende krav skal oppfylles:

    • Brukeren skal kunne skrive inn et tall i en valgfri celle. Dersom tallet ikke er gyldig, dvs ikke mellom 1 og 9, skal en feilmelding skrives ut.

    • Brukeren skal ikke kunne fylle inn et tall som allerede finnes i den samme raden, kolonnen eller kvadratet.

    • Brukeren skal kunne slette et tall fra en celle.
    • Hver gang brukeren fyller inn eller sletter et tall skal det nye brettet skrives ut på en fin måte. Et eksempel kan være som vist under (tallene over og ved siden av brettet angir her henholdsvis kolonne- og radnummer).

Code Block
languagenone
Velkommen til Mis Sudoku
 1. Start et nytt spill
 2. Lagre spill til fil
 3. Last spill fra fil
 4. Fortsett å spille
 5. Spill tilfeldig brett
 6. Løs gjeldende brett
 0. Avslutt
Velg et tall fra menyen:  1
  1 2 3    4 5 6    7 8 9
 -----------------------
1----
|        |   5     |    4 3 | 2 |
2 1
|        | 2       |    6 9 | 4 |
3 2
|        |        | 1      2 | |3
 ---------------------------
4|        |       8 | 7        | 4
| |
5       |        | 6 | 4 | 1 2 9 |
6 5
|        | 1       | 3   6 | 8 5 | 6
 ---------------------------
7|        | 7        |    1  | 4 |
8 7
|        |    1  4 9 | 5     | 6 |
9 | 3 5 | 4 7 | 2 |
 8
|        |        |        | 9
 ---------------------------
 
Vil du avslutte?[Y/N] Skriv "endre" for å forandre plassering

 

  • Brukeren skal kunne laste inn et brett fra en tekstfil. 
  • Et halvutfylt brett skal kunne lagres til
  • l
  • fil, slik at man kan fullføre det senere.
  • Spillet skal skrive ut en hyggelig gratulasjonsmelding dersom man har klart brettet.
  • Alt skal utføres gjennom et brukervennlig grensesnitt. Det vil si at brukeren ikke skal trenge å kalle på funksjonene selv, men at alt gjøres via input eller ved å lese fra/skrive til fil.

  • Spillet må ha en meny.

  • (Frivillig) Implementer slik at brukeren kan be om å spille et halvutfylt brett, med forskjellige vanskelighetsgrader.
  • (Frivillig) Implementer en Sudoku-løser, som hjelper brukeren å fylle ut brettet.

 

Code Block
languagenone
Velkommen til Mis Sudoku
 1. Start et nytt spill
 2. Lagre spill til fil
 3. Last spill fra fil
 4. Fortsett å spille
 5. Spill tilfeldig brett
 6. Løs gjeldende brett
 0. Avslutt
Velg et tall fra menyen: 5
 1. Enkel
 2. Middels
 3. Vanskelig
 4. Hjerterå
Hvilken vanskelighetsgrad? 3
 ---------------------------
| 5  3  4|       8| 9     2|
|       2| 1      | 3  4   |
| 1  9  8|    4  2| 5     1|
 ---------------------------
|       9| 7      |        |
|    2  6|    5  3|    9   |
| 7      | 9      | 8     6|
 ---------------------------
|        | 5      | 2  8  4|
|    8  7| 4  1   |       5|
|        |    8  6| 1  7   |
 ---------------------------
Vil du avslutte?[Y/N] Skriv "endre" for å forandre plassering
    •