Avatar
Tomáš Regina:

Zdravím,
mám nasledovný kód a rád by som dosiahol to, že pri zadaní nejakého smeru sa mi hracie pole "refreshne" namiesto toho aby sa mi vykreslilo nové s novou polohou "hráča". Nejaké rady, tipy? Diky moc.

x = 5
y = 5
n = 10
for k in range (6):
        for i in range(0,11):
                for j in range(0,11):
                        if i == 0 or j == 0 or j == n or i == n:
                                print ('x ', end="")
                        elif i == x and j == y:
                                print ('? ', end="")
                        else:
                                print ('  ',end="")
                print (" ")
        smer = input("Zadaj smer(up, down, right left):  ")
        if (smer == "up"):
                x = x - 1
        elif (smer =="down"):
                x = x + 1
        elif (smer == "right"):
                y = y + 1
        elif (smer == "left"):
                y = y - 1
 
Odpovědět 22.10.2016 14:59
Avatar
Vojtěch Přibáň:

Taky zdravím,
řekl jsem si, že bych pravděpodobně někdy ve zdálené době mohl mít podobný problém, tak jsem se rozhodl najít řešení na zahraničních fórech:

import sys
sys.stdout.write('.')
x = 5
y = 5
n = 10
def clearscreen(numlines=100):
    import os
    if os.name == "posix":
        os.system('clear')
    elif os.name in ("nt", "dos", "ce"):
        os.system('CLS')
    else:
        print ('\n' * numlines)
for k in range (6):
    for i in range(0,11):
        for j in range(0,11):
            if i == 0 or j == 0 or j == n or i == n:
                print("x", end="")
            elif i == x and j == y:
                print ('? ', end="")
            else:
                print (' ',end="")
        print (" ")
    smer = input("Zadaj smer(up, down, right left): ")
    if (smer == "up"):
        x = x - 1
    elif (smer =="down"):
        x = x + 1
    elif (smer == "right"):
        y = y + 1
    elif (smer == "left"):
        y = y - 1
    clearscreen(numlines=100)

zdroj kódu ve funkci: http://stackoverflow.com/…ed-in-python

Blíže jsem to nestudoval takže moc nerozumím co se v tom děje, ale chápu to tak, že to smaže předešlé vypsané věci.
Doufám že jsem pomohl.

Editováno 23.10.2016 22:52
 
Nahoru Odpovědět 23.10.2016 22:51
Avatar
Odpovídá na Vojtěch Přibáň
Vojtěch Přibáň:

...Jo a pokoušel jsem se o jíné spůsoby a to "sys.stdout.wri­te('.')" na druhé řádce je zapomenutým produktem těchto pokusů :-) .
Přeji hezký den.

 
Nahoru Odpovědět 23.10.2016 23:00
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.