Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Simple juego con librería pyANSI
#1
Thumbs Up 
Les mostrare un (muy) simple juego que hice usando mi librería pyANSI.
Se trata se mover un @ por la pantalla, usando las teclas wasd para moverse respectivamente, también genera aleatoriamente objectos en la pantalla usando random y el tiempo epoch del PC como seed.
Es muy simple ya que no detecta cuando el @ choca con unos de esos objectos, es algo complejo hacer eso. Pero estoy seguro que podrán hacer algo mejor.


Código:
  1. import time, sys, random
  2. from pyansi import *
  3.  
  4. hidecur() ; ;# Hiding cursor
  5. clrscr()
  6. title("Game")
  7.  
  8. colorlist = [
  9.  ; ; ; ;Red,
  10.  ; ; ; ;Blue,
  11.  ; ; ; ;Green,
  12.  ; ; ; ;Yellow,
  13.  ; ; ; ;Gray,
  14.  ; ; ; ;LightGreen,
  15.  ; ; ; ;LightRed,
  16. ]
  17.  
  18.  
  19. def drawbox(); ;# generate random objects
  20.  ; ; ; ;x, y, xpos, ypos = [], [], [], []
  21.  ; ; ; ;a, b, c, d = 1, 1, 1, 1
  22.  
  23.  ; ; ; ;while a <= 55:
  24.  ; ; ; ; ; ; ; ;gotoxy(a, 1)
  25.  ; ; ; ; ; ; ; ;puts("═")
  26.  ; ; ; ; ; ; ; ;a += 1
  27.  
  28.  ; ; ; ;while b <= 55:
  29.  ; ; ; ; ; ; ; ;gotoxy(b, 25)
  30.  ; ; ; ; ; ; ; ;puts("═")
  31.  ; ; ; ; ; ; ; ;b += 1
  32.  
  33.  ; ; ; ;while c <= 25:
  34.  ; ; ; ; ; ; ; ;gotoxy(1, c)
  35.  ; ; ; ; ; ; ; ;puts("║")
  36.  ; ; ; ; ; ; ; ;c += 1
  37.  
  38.  ; ; ; ;while d <= 25:
  39.  ; ; ; ; ; ; ; ;gotoxy(55, d)
  40.  ; ; ; ; ; ; ; ;puts("║")
  41.  ; ; ; ; ; ; ; ;d += 1
  42.  
  43.  ; ; ; ;gotoxy(55, 1)
  44.  ; ; ; ;puts("╗")
  45.  ; ; ; ;gotoxy(55, 25)
  46.  ; ; ; ;puts("╝")
  47.  ; ; ; ;gotoxy(1, 1)
  48.  ; ; ; ;puts("╔")
  49.  ; ; ; ;gotoxy(1, 25)
  50.  ; ; ; ;puts("╚")
  51.  
  52.  ; ; ; ;for xi in range(2, 54):
  53.  ; ; ; ; ; ; ; ;x.append(xi)
  54.  ; ; ; ; ; ; ; ;for yi in range(2, 24):
  55.  ; ; ; ; ; ; ; ; ; ; ; ;y.append(yi)
  56.  ; ; ; ; ; ; ; ; ; ; ; ;random.seed(time.time())
  57.  ; ; ; ; ; ; ; ; ; ; ; ;epochext = time.time()
  58.  
  59.  ; ; ; ; ; ; ; ; ; ; ; ;xrand = random.choice(x)
  60.  ; ; ; ; ; ; ; ; ; ; ; ;yrand = random.choice(y)
  61.  
  62.  ; ; ; ; ; ; ; ; ; ; ; ;gotoxy(xrand, yrand)
  63.  ; ; ; ; ; ; ; ; ; ; ; ;textcolor(random.choice(colorlist))
  64.  ; ; ; ; ; ; ; ; ; ; ; ;puts("×")
  65.  
  66.  ; ; ; ; ; ; ; ; ; ; ; ;yield xrand, yrand
  67.  
  68.  
  69. def charc():
  70.  ; ; ; ;puts("*")
  71.  ; ; ; ;resetvideo()
  72.  
  73.  
  74. def gameover():
  75.  ; ; ; ;clrscr()
  76.  ; ; ; ;resetvideo()
  77.  ; ; ; ;puts(BEL)
  78.  ; ; ; ;print("Don't touch the walls!")
  79.  ; ; ; ;sys.exit()
  80.  
  81.  
  82. def coord_dump():
  83.  ; ; ; ;while 1; ;# Dumping random objects coordinates.
  84.  ; ; ; ; ; ; ; ;fl = open("posfl.log", 'w')
  85.  ; ; ; ; ; ; ; ;apos = drawbox()
  86.  
  87.  ; ; ; ; ; ; ; ;for d in apos:
  88.  ; ; ; ; ; ; ; ; ; ; ; ;fl.write(str(d))
  89.  
  90.  ; ; ; ; ; ; ; ;fl.close()
  91.  ; ; ; ; ; ; ; ;break
  92.  
  93.  
  94. def main():
  95.  ; ; ; ;x = 27
  96.  ; ; ; ;y = 12
  97.  ; ; ; ;punt = 0
  98.  
  99.  ; ; ; ;coord_dump()
  100.  ; ; ; ;while 1:
  101.  ; ; ; ; ; ; ; ;textcolor(LightRed)
  102.  ; ; ; ; ; ; ; ;gotoxy(x, y)
  103.  ; ; ; ; ; ; ; ;puts("█")
  104.  
  105.  ; ; ; ; ; ; ; ;key = getch()
  106.  ; ; ; ; ; ; ; ;gotoxy(x, y)
  107.  ; ; ; ; ; ; ; ;puts(" ") ; ;# Cleans gotoxy footprint
  108.  
  109.  ; ; ; ; ; ; ; ;if key == "w":
  110.  ; ; ; ; ; ; ; ; ; ; ; ;y -= 1
  111.  
  112.  ; ; ; ; ; ; ; ;elif key == "a":
  113.  ; ; ; ; ; ; ; ; ; ; ; ;x -= 1
  114.  
  115.  ; ; ; ; ; ; ; ;elif key == "s":
  116.  ; ; ; ; ; ; ; ; ; ; ; ;y += 1
  117.  
  118.  ; ; ; ; ; ; ; ;elif key == "d":
  119.  ; ; ; ; ; ; ; ; ; ; ; ;x += 1
  120.  
  121.  ; ; ; ; ; ; ; ;elif key == "r":
  122.  ; ; ; ; ; ; ; ; ; ; ; ;clrscr()
  123.  ; ; ; ; ; ; ; ; ; ; ; ;resetvideo()
  124.  ; ; ; ; ; ; ; ; ; ; ; ;coord_dump()
  125.  
  126.  ; ; ; ; ; ; ; ;elif key == "x":
  127.  ; ; ; ; ; ; ; ; ; ; ; ;showcur()
  128.  ; ; ; ; ; ; ; ; ; ; ; ;resetvideo()
  129.  ; ; ; ; ; ; ; ; ; ; ; ;clrscr()
  130.  ; ; ; ; ; ; ; ; ; ; ; ;sys.exit("")
  131.  
  132.  ; ; ; ; ; ; ; ;if x >= 55 or x <= 1 or y <= 1 or y >= 25 or x == 1:
  133.  ; ; ; ; ; ; ; ; ; ; ; ;gameover()
  134.  
  135.  ; ; ; ; ; ; ; ;"""
  136.         if x > 55:
  137.             x = 0
  138.             y += 1
  139.             gotoxy(x, y)
  140.          """
  141.  
  142.  ; ; ; ; ; ; ; ;textcolor(LightWhite)
  143.  ; ; ; ; ; ; ; ;gotoxy(0, 26)
  144.  ; ; ; ; ; ; ; ;puts("X:%s Y:%s" % (x, y))
  145.  ; ; ; ; ; ; ; ;gotoxy(0, 27)
  146.  ; ; ; ; ; ; ; ;puts("Use WASD to move, r to regenerate, and x for exit.", "konniskatt 2018")
  147.  
  148.  
  149. main()
Responder
#2
Genial! Wink
Responder


Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)