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:
[code]
import time, sys, random
from pyansi import *

hidecur()  # Hiding cursor
clrscr()
title("Game")

colorlist = [
    Red,
    Blue,
    Green,
    Yellow,
    Gray,
    LightGreen,
    LightRed,
]


def drawbox():  # generate random objects
    x, y, xpos, ypos = [], [], [], []
    a, b, c, d = 1, 1, 1, 1

    while a <= 55:
        gotoxy(a, 1)
        puts("═")
        a += 1

    while b <= 55:
        gotoxy(b, 25)
        puts("═")
        b += 1

    while c <= 25:
        gotoxy(1, c)
        puts("║")
        c += 1

    while d <= 25:
        gotoxy(55, d)
        puts("║")
        d += 1

    gotoxy(55, 1)
    puts("╗")
    gotoxy(55, 25)
    puts("╝")
    gotoxy(1, 1)
    puts("╔")
    gotoxy(1, 25)
    puts("╚")

    for xi in range(2, 54):
        x.append(xi)
        for yi in range(2, 24):
            y.append(yi)
            random.seed(time.time())
            epochext = time.time()

            xrand = random.choice(x)
            yrand = random.choice(y)

            gotoxy(xrand, yrand)
            textcolor(random.choice(colorlist))
            puts("×")

            yield xrand, yrand


def charc():
    puts("*")
    resetvideo()


def gameover():
    clrscr()
    resetvideo()
    puts(BEL)
    print("Don't touch the walls!")
    sys.exit()


def coord_dump():
    while 1:  # Dumping random objects coordinates.
        fl = open("posfl.log", 'w')
        apos = drawbox()

        for d in apos:
            fl.write(str(d))

        fl.close()
        break


def main():
    x = 27
    y = 12
    punt = 0

    coord_dump()
    while 1:
        textcolor(LightRed)
        gotoxy(x, y)
        puts("█")

        key = getch()
        gotoxy(x, y)
        puts(" ")  # Cleans gotoxy footprint

        if key == "w":
            y -= 1

        elif key == "a":
            x -= 1

        elif key == "s":
            y += 1

        elif key == "d":
            x += 1

        elif key == "r":
            clrscr()
            resetvideo()
            coord_dump()

        elif key == "x":
            showcur()
            resetvideo()
            clrscr()
            sys.exit("")

        if x >= 55 or x <= 1 or y <= 1 or y >= 25 or x == 1:
            gameover()

        """
        if x > 55:
            x = 0
            y += 1
            gotoxy(x, y)
         """

        textcolor(LightWhite)
        gotoxy(0, 26)
        puts("X:%s Y:%s" % (x, y))
        gotoxy(0, 27)
        puts("Use WASD to move, r to regenerate, and x for exit.", "konniskatt 2018")


main()
[/code]
Responder
#2
Genial! Wink
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)