Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2019, 10:09   #1
Makzlol
 
Регистрация: 27.04.2019
Сообщений: 4
По умолчанию Почему не передвигается буква?

Код:
clear = lambda: os.system('cls')
width = 80
height = 25
coordsx = [
        0,0,0,0,0,0,0
        ]
coordsy = [
        0,0,0,0,0,0,0
        ]
Код:
class Mapplace:
    def drawmap(self):
        global frs
        global coordsx
        global coordsy
        if frs is True:
            coordsx[0] = width / 2#player
            coordsy[0] = 12
            coordsx[6] = random.randint(2, width - 2)#quit
            coordsy[6] = random.randint(2, height - 2)
            coordsx[1] = random.randint(2, width - 2)#gun
            coordsy[1] = random.randint(2, height - 2)
            coordsx[2] = random.randint(2, width - 2)#gun1
            coordsy[2] = random.randint(2, height - 2)
            coordsx[3] = random.randint(2, width - 2)#gun2
            coordsy[3] = random.randint(2, height - 2)
            coordsx[4] = random.randint(2, width - 2)#gun3
            coordsy[4] = random.randint(2, height - 2)
            coordsx[5] = random.randint(2, width - 2)#gun4
            coordsy[5] = random.randint(2, height - 2)
            frs = False
        changestring = False
        I = '#'
        H = '#'
        for i in range(width - 2):
            H = H + I
        print(H)
        for i in range(width - 3): 
            I = I + ' '
        I = I + '#'
        for y in range(height - 2):
            for x in range(len(I)):
                if (x == coordsx[6] and y == coordsy[6]):
                    X = x - 1
                    I = I[0:X] + 'Q' + I[x:len(I)]
                    changestring = True
                if (x == coordsx[1] and y == coordsy[1]):
                    X = x - 1
                    I = I[0:X] + 'G' + I[x:len(I)]
                    changestring = True
                if (x == coordsx[2] and y == coordsy[2]):
                    X = x - 1
                    I = I[0:X] + 'G' + I[x:len(I)]
                    changestring = True
                if (x == coordsx[3] and y == coordsy[3]):
                    X = x - 1
                    I = I[0:X] + 'G' + I[x:len(I)]
                    changestring = True
                if (x == coordsx[4] and y == coordsy[4]):
                    X = x - 1
                    I = I[0:X] + 'G' + I[x:len(I)]
                    changestring = True
                if (x == coordsx[5] and y == coordsy[5]):
                    X = x - 1
                    I = I[0:X] + 'G' + I[x:len(I)]
                    changestring = True
                if (x == coordsx[0] and y == coordsy[0]):
                    X = x - 1
                    I = I[0:X] + 'P' + I[x:len(I)]
                    changestring = True
            print(I)
            if changestring is True:
                I = '#'
                for i in range(width - 3): 
                    I = I + ' '
                I = I + '#'
                changestring = False
        print(H)
        print('Куда идем?\n1. Вверх\n2. Влево\n3. Вниз\n4. Вправо')
        way = input()
        if (way == 1 or way == 'Вверх' or way == 'вверх'):
            coordsy[0] =- 1
        if (way == 2 or way == 'Влево' or way == 'влево'):
            coordsx[0] =- 1
        if (way == 3 or way == 'Вниз' or way == 'вниз'):
            coordsy[0] =+1
        if (way == 4 or way == 'Вправо' or way == 'вправо'):
            coordsx[0] =+ 1
        Mapplace.update(self)
    def update(self):
        clear()
        Mapplace.drawmap(self)
Код:
if __name__ == "__main__":
    Mapplace.drawmap(self)

Последний раз редактировалось Makzlol; 27.04.2019 в 10:15.
Makzlol вне форума Ответить с цитированием
Старый 27.04.2019, 13:57   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Потому что 1 - это совсем не то, что "1"
Словами команды пробовали вводить?
Black Fregat вне форума Ответить с цитированием
Старый 27.04.2019, 18:09   #3
Makzlol
 
Регистрация: 27.04.2019
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Потому что 1 - это совсем не то, что "1"
Словами команды пробовали вводить?
Да, пробовал, не помогло, там исчезает буква вообще
Makzlol вне форума Ответить с цитированием
Старый 28.04.2019, 02:31   #4
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от Makzlol Посмотреть сообщение
там исчезает буква вообще
Исчезает, потому что нигде нет проверки на выход за пределы поля.
Ну и ещё исчезнет, если совпадет с другими буквами.
А на несколько шагов у меня вполне двигается
Black Fregat вне форума Ответить с цитированием
Старый 28.04.2019, 10:51   #5
Makzlol
 
Регистрация: 27.04.2019
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
А на несколько шагов у меня вполне двигается
У меня он сразу исчезает при первом движении.
Makzlol вне форума Ответить с цитированием
Старый 28.04.2019, 12:06   #6
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

А, ну да, я же поправил. Знаки не в том порядке, надо += вместо =+ и -= вместо =-
Black Fregat вне форума Ответить с цитированием
Старый 28.04.2019, 14:22   #7
Makzlol
 
Регистрация: 27.04.2019
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
А, ну да, я же поправил. Знаки не в том порядке, надо += вместо =+ и -= вместо =-
Спасибо, всё работает.
Makzlol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Буква Y на Си helu Помощь студентам 0 22.12.2018 20:16
Подскажите пожалуйста почему добавляется всего одна буква из трех? Nata Golden rose Общие вопросы C/C++ 2 22.05.2014 05:29
Буква - не буква? nec117 Общие вопросы C/C++ 4 06.11.2008 17:27
Буква CD-ROM’a Micha Компоненты Delphi 5 05.10.2007 11:36
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45