Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
2 / 1 / 1
Регистрация: 29.01.2020
Сообщений: 41

Создаю "игру" проблема

11.05.2020, 22:47. Показов 570. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет. Подумал, написать что-то вроде игры, в которой нужно решать примеры, и вводить ответ. Все данные исходят, из фалов. Есть выбор, трех сложности, и трех видов режима игры. Проблема такая: в цикле for, последовательно, программа проходит по строкам файла. В функции, идет подключение 2 фалов, это, вывод примера, и присваивание к переменной из файла ответ. Далее, пользователь вводит ответ, и он сравнивается, с переменной, к которой был присвоен ответ. Из этого у меня вытекает 2 проблемы: 1. Если, сами примеры идут шагом, и меняются, то ответ, всегда остается один, и не делает шаг по файлу. И вторая проблема, когда сравниваются, две переменные которые ввел пользователь, и к которой был присвоен ответ. Ничего не происходит. Они просто будто не сравниваются, я делал в типе: if x != y: или if x == y: программа пропускает правильный ответ, и считает его не правильным, хотя всё введено верно. Пишу я в Microsoft Visual Studio.

Вот проблемное место

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def fasteasyselectgame(): #Функция, быстрой игры легкой сложности
    fa = open(r"D:\Match\FasteasyOtvet.txt") #Открываю файл с ответами
    f = open(r"D:\Match\Fasteasy.txt") #Открываю файл с примерами
    life = 10 #Присваивание, к переменной число 10. Это как бы жизни, если введен неверный ответ, 1 жизнь вычитается
    print("У вас " + str(life) + " жизней") # Пользователю выводится количество жизней
    for line in f.readlines(): #цикл ДЛЯ чтобы идти по порядку в файле с примерами
        print (line) 
        with open(r"D:\Match\FasteasyOtvet.txt") as fasteasy: 
            x = int(fasteasy.readline()) #присваивание к переменной X ответы
        a = input("Ответ>> ") # пользователь вводит ответ на пример
        print(a) # ЭТО ДЛЯ НАГЛЯДНОСТИ ЧТО ПЕРЕМЕННЫЕ РАВНЫ
        print(x) # ЭТО ДЛЯ НАГЛЯДНОСТИ ЧТО ПЕРЕМЕННЫЕ РАВНЫ
        if a == x: # ТУТ ПРОБЛЕМА
            print("Отлично, переходим далее") #
        else: 
            life = life - 1 #
            print('Упс, ошибка, жизней осталось: ' + str(life)) #
            if life == 0: #
                print("Вы проиграли! :(") #
                exit() #
Вот сам код (если будете тестировать, везде вводите один, пока не дойдет до самих примеров)

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
def easyload(): # Функция, которая загружает данные
 
# Лёгкий уровень сложности. В него входят: Быстрый режим, тест, практика и ответы.
 
    f = open(r"D:\Match\Fasteasy.txt", "w")
    f.write("5 + 5\n6 + 12\n9 * 2\n7 * 2\n12 / 2\n4 + 7\n2 + 2\n6 * 3\n7 * 8\n12 + 14\n16 - 8\n7 + 8\n2 * 4\n3 / 3\n2 * 0\n9 - 2\n5 * 9")
    f.close()
 
    fa = open(r"D:\Match\FasteasyOtvet.txt", "w")
    fa.write("10\n18\n18\n14\n6\n11\n4\n18\n56\n26\n8\n15\n8\n1\n0\n7\n45")
    f.close()
        
    f1 = open(r"D:\Match\Testeasy.txt", "w")
    f1.write("13 + 9\n20 + 11\n45 - 8\n34 - 7\n5 * 5\n9 * 11\n81 / 9\n48 / 6\n12 + 6\n78 - 7")
    f1.close()
    
    f1a = open(r"D:\Match\TesteasyOtvet.txt", "w")
    f1a.write("22\n31\n37\n27\n25\n99\n9\n8\n18\n71")
    f1a.close()
 
    f2 = open(r"D:\Match\Treneasy.txt", "w")
    f2.write("1 + 1\n2 * 2\n4 / 2\n4 - 2\n5 + 5\n5 * 2\n10 / 5\n10 / 2\n12-6\n12 + 5\n17 - 5 \n10 * 3\n50 / 5\n10 * 5\n10 - 5\n81 / 9\n100 / 25\n6 * 11\n4 * 10\n56 / 7")
    f.close()
 
    f2a = open(r"D:\Match\TreneasyOtvet.txt", "w")
    f2a.write("2\n4\n2\n2\n10\n10\n2\n5\n6\n17\n12\n30\n10\n50\n5\n9\n4\n66\n40\n8")
    f2a.close()
 
def medload():
 
# Средний уровень сложности. В него входят: Быстрый режим, тест, практика, и ответы.
 
    f3 = open(r"D:\Match\Fastmed.txt", "w")
    f3.write("52 - 17\n78 - 24\n56 - 14\n13 + 69\n78 * 2\n9 * 14\n12 * 13\n120 - 54\n13 * 3\n64 - 28\n36 + 154\n46 * 3\n64 - 18\n26 - 8\n2 + 2\n2 * 2 * 2\n6 * 6 * 6")
    f3.close()
 
    f3a = open(r"D:\Match\FastmedOtvet.txt", "w")
    f3a.write("35\n54\n42\n82\n156\n126\n156\n66\n39\n36\n190\n138\n46\n18\n4\n8\n216")
    f3a.close()
 
    f4 = open (r"D:\Match\Testmed.txt", "w")
    f4.write('64 + 58\n32 - 4\n120 * 3\n450 - 37\n57 + 21\n32 * 4\n69 + 31\n24 + 252\n69 * 4\n2 + 2')
    f4.close()
 
    f4a = open (r"D:\Match\TestmedOtvet.txt", "w")
    f4a.write("122\n36\n360\n413\n78\n128\n100\n276\n276\n4")
    f4a.close()
 
    f5 = open (r"D:\Match\Trenmed.txt", "w")
    f5.write("2 + 2\n10 + 10\n62 + 45\n2 * 2\n21 * 5\n52 * 3\n45 * 5\n2 - 1\n65 - 41\n352 - 167\n81 / 9\n324 / 6")
    f5.close()
 
    f5a = open (r"D:\Match\TrenmedOtvet.txt", "w")
    f5a.write("4\n20\n107\n4\n105\n156\n225\n1\n24\n185\n9\n54")
    f5a.close()
 
#Высокий уровень сложности, я еще не добавил, но это наверное ничего не меняет.
 
def hardload():
    f6 = open(r"D:\Match")
 
 
def loading(): #Функция, создания всех файлов, и данных игры.
    import os
 
    print ("\n\nЧто вы хотите загрузить?!\n1. Легкий уровень сложности.\n2. Средний уровень сложности\n3. Высокий уровень сложности\n4. Выйти в меню")
    loadguid = input(">> ")
 
    if loadguid == '1':
        if os.path.exists("D:\\Match\Fasteasy.txt"):
            print('Это уже загружено.')
            menu()
        else:
            easyload()
            print('Загружено')
            menu()
 
    elif loadguid == '2':
        if os.path.exists("D:\\Match\Fastmed.txt"):
            print('Это уже загружено.')
            menu()
        else:
            medload()
            print('Загружено')
            menu()
    
    elif loadguid == '3':
        if os.path.exists("D:\\Match\Fasthard.txt"):
            print('Это уже загружено.')
            menu()
        else:
            hardload()
            print('Загружено')
            menu()
 
    elif loadguid == '4':
        menu()
    else:
        print('Не могу понять что вы написали, повторите попытку')
        menu()
 
 
def selectgame():
    import os
 
    if os.path.exists("D:\\Match\Fasteasy.txt"):
        print('Выберите сложность:')
        if os.path.exists("D:\\Match\Fasteasy.txt"):
            print("1. Легкая")
        if os.path.exists("D:\\Match\Fastmed.txt"):
            print("2. Средняя")
        if os.path.exists("D:\\Match\Fasthard.txt"):
            print("3. Высокая")
 
        select = input(">> ")
        if select == '1':
            easyselectgame()
        elif select == '2':
            medselectgame()
        elif select == '3':
            hardselectgame()
        else:
            print("Не могу понять что вы ввели!!!")
    else: 
        print("У вас не установлен, ни один из режимов игры, переходим в меню")
        menu()
 
def easyselectgame():
    print("Выберите, режим игры:\n1. Быстрая\n2. Тест\n3. Тренировка")
    easyselect = input(">> ")
    if easyselect == '1':
         fasteasyselectgame()
    elif easyselect == '2':
        testeasyselectgame()
    elif easyselect == '3':
        treneasyselectgame()
    else:
        print("Не понимаю что вы ввели!")
        menu()
 
def fasteasyselectgame():
    fa = open(r"D:\Match\FasteasyOtvet.txt")
    f = open(r"D:\Match\Fasteasy.txt")
    life = 10
    print("У вас " + str(life) + " жизней")
    for line in f.readlines():
        print (line)
        with open(r"D:\Match\FasteasyOtvet.txt") as fasteasy:
            x = int(fasteasy.readline())
        a = input("Ответ>> ")
        print(a)
        print(x)
        if a == x:
            print("Отлично, переходим далее")
        else:
            life = life - 1
            print('Упс, ошибка, жизней осталось: ' + str(life))
            if life == 0:
                print("Вы проиграли! :(")
                exit()
        
 
 
 
 
def menu():#Меню, тут, пользователь выбирает функцию.
    import os
    if os.path.exists(r"D:\Match"):
        print("\n\nЧто вы хотите:\n1. Начать новую игру\n2. Удалить всё данные игры\n3. Загрузка дополнений\n4. Выйти")
        guid = input(">> ")
        if guid == '1':
            selectgame()
        elif guid == '2':
            gameremove()
        elif guid == '3':
            loading()
        elif guid == '4':
            print("Выходим.....")
            exit()
    else:
        os.mkdir(r"D:\Match")
 
menu()
Заранее спасибо. Если, ошибка глупая, тоже заранее прошу прощения, просто мозг, заваривается.

P.S
Еще сначала, установите режим игры. В меню функция установки дополнений.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.05.2020, 22:47
Ответы с готовыми решениями:

Создаю игру, но keylistener не слушает
Всем привет! В общем такая тема : задали нам тему создать какой нибудь проект для сесси. Я решил сделать игру. Анимация работает прекрасно,...

Создаю игру похожую на Baldi’s Basics
Ищу программиста на unity. На мне спрайты, почти все текстуры, идеи, звуки. От программиста требуется овладение unity, создание и...

Создаю первую игру на движке Unity
Всем привет тут я буду разговаривать с вами про мою первую игру на движке Unity. Если у меня что-то не будет получаться то я напишу вам и...

2
11.05.2020, 22:52

Не по теме:

NikitaLav, просто совет на будущее: никогда не привязывайтесь к абсолютным путям. если вам надо что-то сохранить, храните это в профиле пользователя или в ProgramData. os.mkdir(r"D:\Match") эта команда сможет выполниться только на одной из 5-и операционных систем, которые у меня есть) Потому что у меня 3 *nix, 2 винды, но только в одной из них есть диск D:\ :)

0
2 / 1 / 1
Регистрация: 29.01.2020
Сообщений: 41
11.05.2020, 22:55  [ТС]
Хорошо, спасибо за совет. Я обязательно это учту в будущем, и даже в эту программу изменю. Приношу извинений если предоставил неудобства.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.05.2020, 22:55
Помогаю со студенческими работами здесь

Создаю игру наподобие Space Engine
создам игру на подобии Space Engine давайте предложения, присоединяйтесь удалено

Создаю игру Tic Tack Toe
Доброго времени суток. Создаю игру крестики-нолики в целях изучение языка и IDE. Хочу сделать её онлайн, чтобы можно было подключится с...

Создаю игру ККИ онлайн - нужны программисты:)
Всем привет) Я хочу узнать есть ли на форуме разработчики или программисты готовые подкинуться на работу с сурьезным и сложным...

Создаю игру жанра Tower Defense. нужен скрипт передвижения объекта по точкам
Создаю игру жанра Tower Defense. нужен скрипт передвижения объекта по точкам.Работаю в unity

Создаю игру с научным уколоном на C++/opengl. Как подключить openGL и добиться кроссплатформенности
Я читал про opengl - для его инициализации нужно создавать windows - окно. Для linux видимо инициализация происходить по другому. как мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru