Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Snake
- from random import randint
- from time import sleep
- import msvcrt
- import os
- import sys
- def lag_tomt_brett():
- brett=[[1 for i in range(11)] for j in range(11)]
- return brett
- def legg_ut_epler(brett,n):
- while n>0:
- x=randint(0,10)
- y=randint(0,10)
- if brett[y][x]==1:
- brett[y][x]=5
- n-=1
- def sjekk_eple(brett,x,y):
- try:
- return brett[y][x]==5
- except:
- return False
- def tegn_orm(brett,x,y):
- N=len(y)
- for i in range(N):
- if i<(N-1):
- brett[y[i]][x[i]]=0
- else:
- brett[y[i]][x[i]]=1
- def sjekk_krasj(retning,orm_x,orm_y):
- orm=zip(orm_y,orm_x)
- orm.pop()
- try:
- if retning=='w':
- if ((orm_y[0]-1),orm_x[0]) in orm: return True
- elif retning=='d':
- if (orm_y[0],(orm_x[0]+1)) in orm: return True
- elif retning=='s':
- if ((orm_y[0]+1),orm_x[0]) in orm: return True
- elif retning=='a':
- if (orm_y[0],(orm_x[0]-1)) in orm: return True
- return False
- except: return False
- def flytt_orm(retning,orm_x,orm_y):
- if retning=='w':
- orm_y.insert(0,(orm_y[0]-1)%11)
- orm_x.insert(0,orm_x[0])
- elif retning=='d':
- orm_y.insert(0,orm_y[0])
- orm_x.insert(0,(orm_x[0]+1)%11)
- elif retning=='s':
- orm_y.insert(0,(orm_y[0]+1)%11)
- orm_x.insert(0,orm_x[0])
- elif retning=='a':
- orm_y.insert(0,orm_y[0])
- orm_x.insert(0,(orm_x[0]-1)%11)
- def kbfunc():
- return (msvcrt.getch()).lower() if msvcrt.kbhit() else ' '
- def run():
- orm_x=[6,5,4,3,2]
- orm_y=[5,5,5,5,5]
- score=0
- retning='d'
- temp_retning=0
- brett=lag_tomt_brett()
- n = randint(0,5)
- legg_ut_epler(brett,n)
- while True:
- os.system('cls')
- try: h=input('Hastighet(1-9):')
- except: h=-1
- if h<10 and h>0: break
- while True:
- sleep((10-h)/20.0)
- os.system('cls')
- tegn_orm(brett,orm_x,orm_y)
- print 'SCORE:',score
- for i in brett:
- temp = ' '.join(str(j) for j in i)
- temp = temp.replace('1','.')
- temp = temp.replace('0','O')
- temp = temp.replace('5','*')
- print temp
- temp_retning=kbfunc()
- if temp_retning in 'wasd': retning=temp_retning
- if not sjekk_krasj(retning,orm_x,orm_y):
- flytt_orm(retning,orm_x,orm_y)
- if sjekk_eple(brett,orm_x[0],orm_y[0]):
- score+=10
- else:
- orm_y.pop()
- orm_x.pop()
- else:
- skriv_highscore(hs,score)
- valg=restart(score)
- if restart(score): meny_valg()
- else: sys.exit()
- if not [i for i in brett if (5 in i)]:
- n = randint(0,5)
- legg_ut_epler(brett,n)
- def restart(score):
- os.system('cls')
- print 'SCORE:',score
- print 'GAME OVER!\nTrykk noe for aa gaa til menyen.'
- for i in range(60):
- if msvcrt.kbhit(): return True
- sleep(1)
- return False
- def les_highscore():
- f=open('highscore.txt','r')
- hs=[]
- linje = f.readline()
- while linje:
- linje=int(linje.rstrip())
- hs.append(linje)
- linje=f.readline()
- f.close()
- return hs
- def vis_highscore(hs):
- os.system('cls')
- print 'HIGHSCORE:'
- for i in range(10):
- print '%i.\t%s'%((i+1),hs[i])
- print 'Trykk noe for a gaa til menyen.'
- for i in range(60):
- if msvcrt.kbhit(): meny_valg()
- sleep(1)
- def skriv_highscore(hs,score):
- f=open('highscore.txt','w')
- hs.append(score)
- hs.sort()
- hs.reverse()
- for s in hs: f.write(str(s)+'\n')
- f.close()
- def meny_valg():
- os.system('cls')
- print '1. Spill\n2. Vis highscore\n3. Avslutt'
- try: valg=input('Velg(1-3):')
- except: valg=-1
- if valg==1: run()
- elif valg==2:
- os.system('cls')
- vis_highscore(hs)
- elif valg==3:
- sys.exit()
- else: meny_valg()
- hs=les_highscore()
- meny_valg()
Add Comment
Please, Sign In to add comment