-
Notifications
You must be signed in to change notification settings - Fork 0
/
skillAliceEmulator.py
90 lines (74 loc) · 3.08 KB
/
skillAliceEmulator.py
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
from gameCore.builder import builder
from datetime import datetime
from gameCore.historyHandler import passEpisode
from termcolor import colored
# эмулятор навыка в консоли, чтобы удобно было тестировать
def skillEmulate(historyText, statsEnds, linkEpisodes=None):
# билдинг истории в словарное-представление
print(colored("+", "green"), "Старт синтезирования")
startTime = datetime.now()
history = builder(historyText, linkEpisodes, "истории")
# билдинг концовок
for key in statsEnds:
for kkey in statsEnds[key]:
statsEnds[key][kkey] = builder(
statsEnds[key][kkey],
transformLinkEpisodes=False,
printText="концовки: " + key + "-" + kkey,
)
endTime = datetime.now()
print(
colored("+", "green"),
"Синтезирование завершено с кайфом за: " + str(endTime - startTime),
)
# создание начальной информации об игре
info = {
"posEpisode": [0],
"maxPosEpisode": [len(history) - 1],
"pastPosEpisode": None,
"choice": "none",
"pastHasEvent": None,
"stats": {"church": 50, "army": 50, "nation": 50, "coffers": 50},
"notAppliedStats": {
"true": [0, 0, 0, 0],
"false": [0, 0, 0, 0],
"always": [0, 0, 0, 0],
},
}
# старт истории
print(colored("=>", "blue"), "История началась", colored("<=", "blue"))
while True:
# пройти и получить эпизод
episode = passEpisode(info, history, statsEnds)
# print(info["posEpisode"])
# print(episode)
if episode == "its all":
break
# показать статы
print(episode["stats"])
# показать имя (если оно есть)
if 'name' in episode and not (episode['name'] is None):
print('' + episode["name"] + ':')
# показать сообщение
print(episode["message"])
# получить ответ пользователя
while True:
# если конец игры, то
if len(episode["buttons"]) == 0:
break
# выдать кнопоки
choice = input(" ".join(episode["buttons"]) + "\n")
# если у нас есть только 1 кнопка
if len(episode["buttons"]) == 1:
info["choice"] = "true"
break
# если пользователь выбрал "t"
if choice == "t" or choice == "y":
info["choice"] = "true"
break
# если пользователь выбрал "f"
elif choice == "f" or choice == "n":
info["choice"] = "false"
break
# конец =)
print("=> История закончилась <=")