Rutenett#

Vi kan lage rutenett ved å lage en liste som inneholder hver rad.

For å skrive ut rutenettet, kan vi skrive ut hver rad med en for-løkke.

rutenett = [[1, 2, 3], 
            [4, 5, 6], 
            [7, 8, 9]]

for rad in rutenett:
    print(rad)
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]

Vi kan også deklarere rutenettet på én linje med rutenett = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

Indeksere i rutenett#

Dette kartet kan hjelpe oss med å indeksere i rutenettet.

       Søyle
 Rad  0  1  2
  0  [1, 2, 3]
  1  [4, 5, 6]
  2  [7, 8, 9]

For å indeksere i rutenettet skriver vi rutenett[rad][søyle].

rutenett = [[1, 2, 3], 
            [4, 5, 6], 
            [7, 8, 9]]


print(rutenett[0][2]) # Rad 0, søyle 2
print(rutenett[1][1]) # Rad 1, søyle 1
print(rutenett[2][0]) # Rad 2, søyle 0
3
5
7

Generere rutenett#

Vi kan generere rutenett ved å bruke en løkke i en løkke.

# Et tomt rutenett
rutenett = []

for n in range(5):
    # Lager en tom rad
    rad = []

    # Legger til på raden
    for m in range(5):
        rad.append("#")
    
    # Legger raden til på rutenettet
    rutenett.append(rad)

# Skriver ut rutenettet
for rad in rutenett:
    print(rad)
['#', '#', '#', '#', '#']
['#', '#', '#', '#', '#']
['#', '#', '#', '#', '#']
['#', '#', '#', '#', '#']
['#', '#', '#', '#', '#']

I noen tilfeller kan vi ønske å bruke strings for radene i stedet for lister.

Da blir rutenettet en liste med strings som representerer hver rad.

rutenett = []

for n in range(5):
    rad = ""
    for m in range(5):
        rad += "# "
    rutenett.append(rad)

for rad in rutenett:
    print(rad)
# # # # # 
# # # # # 
# # # # # 
# # # # # 
# # # # # 

Oppgaver#

Oppgave 1 🪟

Lag et program som lar en bruker skrive inn antall rader og antall søyler for et rutenett, og som skriver ut det tilsvarende rutenettet med #.

Antall rader: 3
Antall søyler: 5
# # # # # 
# # # # # 
# # # # # 

Oppgave 2 ✖️

Lag et program som skriver ut gangetabellen fra \(1\) til \(9\) som et rutenett.

Oppgave 3 🎨

Lag de følgende kvadratiske \(n\) x \(n\)-mønstrene med kode. Alle skal kunne variere i størrelse med en variabel \(n \geq 3\).

1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
1 1 1 1
1 0 0 1
1 0 0 1
1 1 1 1
1 0 1 0
0 1 0 1
1 0 1 0
0 1 0 1

Oppgave 4 🧫 (utfordring)

Conway’s Game of Life spilles på et rutenett med celler.

Hver celle følger disse reglene.

Naboer

Oppdatering

Færre enn to naboer

Dør

To eller tre naboer

Fortsetter å leve

Flere enn tre naboer

Dør

Død, men med akkurat tre levende naboer

Kommer til live

Lag Game of Life for et \(n\) x \(n\)-rutenett i Python.

Oppgave 5 ♟️ (utfordring)

Problemstillingen n queens er en kjent programmeringsoppgave.

  • Lag et \(n\) x \(n\)-sjakkbrett.

  • Fyll det med \(n\) dronninger på en måte som gjør at de ikke kan angripe hverandre.

  • Tallet \(n\) må være større enn \(3\).

Lag et program som finner en løsning for \(n\) x \(n\)-brettet og skriver det ut som et rutenett.