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. října 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. října 22:52
 
Nahoru Odpovědět 23. října 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. října 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.