Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #sudoku
- import random
- def spill_brett():
- brett=[[0for i in range(9)]for j in range(9)]
- return brett
- def is_legal(brett,n,x,y):
- nedover=[]
- if n in brett[x]:
- return False
- for i in range(9):
- nedover.append(brett[i][y])
- if n in nedover:
- return False
- def in_rute(brett,n,x,y):
- rute1=[]
- rute2=[]
- rute3=[]
- rute4=[]
- rute5=[]
- rute6=[]
- rute7=[]
- rute8=[]
- rute9=[]
- for q in range(3):
- for w in range(3):
- rute1.append(brett[q][w])
- for a in range(3,6):
- for s in range(3):
- rute2.append(brett[a][s])
- for z in range(6,9):
- for d in range(3):
- rute3.append(brett[z][d])
- for p in range(3):
- for c in range(3,6):
- rute4.append(brett[p][c])
- for v in range(3,6):
- for b in range(3,6):
- rute5.append(brett[v][b])
- for o in range(6,9):
- for m in range(3,6):
- rute6.append(brett[o][m])
- for f in range(3):
- for g in range(6,9):
- rute7.append(brett[f][g])
- for h in range(3,6):
- for j in range(6,9):
- rute8.append(brett[h][j])
- for k in range(6,9):
- for l in range(6,9):
- rute9.append(brett[k][l])
- if x<3 and y<3:
- if n in rute1:
- return False
- else:
- return True
- elif 2<x<6 and y<3:
- if n in rute2:
- return False
- else:
- return True
- elif 5<x and y<3:
- if n in rute3:
- return False
- else:
- return True
- elif x<3 and 2<y<6:
- if n in rute4:
- return False
- else:
- return True
- elif 2<x<5 and 2<y<6:
- if n in rute5:
- return False
- else:
- return True
- elif 5<x and 2<y<6:
- if n in rute6:
- return False
- else:
- return True
- elif x<3 and 5<y:
- if n in rute7:
- return False
- else:
- return True
- elif 2<x<5 and 5<y:
- if n in rute8:
- return False
- else:
- return True
- elif 5<x and 5<y:
- if n in rute9:
- return False
- else:
- return True
- def place_numbers(brett,difficulty):
- n = random.randint(1,9)
- x= random.randint(0,8)
- y=random.randint(0,8)
- for i in range(difficulty):
- while in_rute(brett,n,x,y)==False or is_legal(brett,n,x,y)==False or brett[x][y]>0:
- n = random.randint(1,9)
- x= random.randint(0,8)
- y=random.randint(0,8)
- brett[x][y]=n
- return brett
- def is_finished(brett):
- end=[]
- for i in range(9):
- for j in range(9):
- if brett[i][j]>0:
- end.append(1)
- return len(end)
- brett=spill_brett()
- y=input('hvor mange tall vil du begynne med?')
- brett=place_numbers(brett,y)
- while is_finished(brett)<81:
- for i in brett:
- print i
- x = input('Hva er x-coordinaten til tallet du vil sette inn?')
- y = input('Hva er y-coordinaten til tallet du vil sette inn?')
- n=input('Hva er tallet du vil sette inn')
- if is_legal(brett,n,x,y)==False or in_rute(brett,n,x,y)==False:
- print 'Dette er ikke lov'
- else:
- brett[x][y]=n
Add Comment
Please, Sign In to add comment