Guest User

Untitled

a guest
Apr 21st, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.17 KB | None | 0 0
  1. #Snake
  2. from random import randint
  3. from time import sleep
  4. import msvcrt
  5. import os
  6. import sys
  7.  
  8. def lag_tomt_brett():
  9.     brett=[[1 for  i in range(11)] for j in range(11)]
  10.     return brett
  11.  
  12. def legg_ut_epler(brett,n):
  13.     while n>0:
  14.         x=randint(0,10)
  15.         y=randint(0,10)
  16.         if brett[y][x]==1:
  17.             brett[y][x]=5
  18.             n-=1
  19.            
  20. def sjekk_eple(brett,x,y):
  21.     try:
  22.         return brett[y][x]==5
  23.     except:
  24.         return False
  25.  
  26. def tegn_orm(brett,x,y):
  27.     N=len(y)
  28.     for i in range(N):
  29.         if i<(N-1):
  30.             brett[y[i]][x[i]]=0
  31.         else:
  32.             brett[y[i]][x[i]]=1
  33.  
  34. def sjekk_krasj(retning,orm_x,orm_y):
  35.     orm=zip(orm_y,orm_x)
  36.     orm.pop()
  37.     try:
  38.         if retning=='w':
  39.             if ((orm_y[0]-1),orm_x[0]) in orm: return True
  40.         elif retning=='d':
  41.             if (orm_y[0],(orm_x[0]+1)) in orm: return True
  42.         elif retning=='s':
  43.             if ((orm_y[0]+1),orm_x[0]) in orm: return True
  44.         elif retning=='a':
  45.             if (orm_y[0],(orm_x[0]-1)) in orm: return True
  46.         return False
  47.     except: return False
  48.  
  49. def flytt_orm(retning,orm_x,orm_y):
  50.     if retning=='w':
  51.         orm_y.insert(0,(orm_y[0]-1)%11)
  52.         orm_x.insert(0,orm_x[0])
  53.        
  54.     elif retning=='d':
  55.         orm_y.insert(0,orm_y[0])
  56.         orm_x.insert(0,(orm_x[0]+1)%11)
  57.        
  58.     elif retning=='s':
  59.         orm_y.insert(0,(orm_y[0]+1)%11)
  60.         orm_x.insert(0,orm_x[0])
  61.        
  62.     elif retning=='a':
  63.         orm_y.insert(0,orm_y[0])
  64.         orm_x.insert(0,(orm_x[0]-1)%11)
  65.  
  66. def kbfunc():
  67.     return (msvcrt.getch()).lower() if msvcrt.kbhit() else ' '
  68.  
  69. def run():
  70.     orm_x=[6,5,4,3,2]
  71.     orm_y=[5,5,5,5,5]
  72.  
  73.     score=0
  74.     retning='d'
  75.     temp_retning=0
  76.  
  77.     brett=lag_tomt_brett()
  78.     n = randint(0,5)
  79.     legg_ut_epler(brett,n)
  80.    
  81.     while True:
  82.         os.system('cls')
  83.         try: h=input('Hastighet(1-9):')
  84.         except: h=-1
  85.         if h<10 and h>0: break
  86.    
  87.     while True:
  88.         sleep((10-h)/20.0)
  89.         os.system('cls')
  90.         tegn_orm(brett,orm_x,orm_y)
  91.         print 'SCORE:',score
  92.         for i in brett:
  93.             temp = ' '.join(str(j) for j in i)
  94.             temp = temp.replace('1','.')
  95.             temp = temp.replace('0','O')
  96.             temp = temp.replace('5','*')
  97.             print temp
  98.         temp_retning=kbfunc()
  99.         if temp_retning in 'wasd': retning=temp_retning
  100.         if not sjekk_krasj(retning,orm_x,orm_y):
  101.             flytt_orm(retning,orm_x,orm_y)
  102.             if sjekk_eple(brett,orm_x[0],orm_y[0]):
  103.                 score+=10
  104.             else:
  105.                 orm_y.pop()
  106.                 orm_x.pop()
  107.         else:
  108.             skriv_highscore(hs,score)
  109.             valg=restart(score)
  110.             if restart(score): meny_valg()
  111.             else: sys.exit()
  112.         if not [i for i in brett if (5 in i)]:
  113.             n = randint(0,5)
  114.             legg_ut_epler(brett,n)
  115.  
  116. def restart(score):
  117.     os.system('cls')
  118.     print 'SCORE:',score
  119.     print 'GAME OVER!\nTrykk noe for aa gaa til menyen.'
  120.     for i in range(60):
  121.         if msvcrt.kbhit(): return True
  122.         sleep(1)
  123.     return False
  124.  
  125. def les_highscore():
  126.     f=open('highscore.txt','r')
  127.     hs=[]
  128.     linje = f.readline()
  129.     while linje:
  130.         linje=int(linje.rstrip())
  131.         hs.append(linje)
  132.         linje=f.readline()
  133.     f.close()
  134.     return hs
  135.        
  136. def vis_highscore(hs):
  137.     os.system('cls')
  138.     print 'HIGHSCORE:'
  139.     for i in range(10):
  140.         print '%i.\t%s'%((i+1),hs[i])
  141.     print 'Trykk noe for a gaa til menyen.'  
  142.     for i in range(60):
  143.         if msvcrt.kbhit(): meny_valg()
  144.         sleep(1)
  145.  
  146. def skriv_highscore(hs,score):
  147.     f=open('highscore.txt','w')
  148.     hs.append(score)
  149.     hs.sort()
  150.     hs.reverse()
  151.     for s in hs: f.write(str(s)+'\n')
  152.     f.close()
  153.  
  154. def meny_valg():
  155.     os.system('cls')
  156.     print '1. Spill\n2. Vis highscore\n3. Avslutt'
  157.     try: valg=input('Velg(1-3):')
  158.     except: valg=-1
  159.    
  160.     if valg==1: run()
  161.     elif valg==2:
  162.         os.system('cls')
  163.         vis_highscore(hs)
  164.     elif valg==3:
  165.         sys.exit()
  166.     else: meny_valg()
  167.  
  168. hs=les_highscore()
  169. meny_valg()
Add Comment
Please, Sign In to add comment