fp = input('Укажите имя файла, содержащего пак фактов:\n')
facts = f.LoadPack(fp)
for i, Q in enumerate(facts):
print(f'Вопрос {i+1}:\n{Q[0]}')
reply = True if input().lower() == 'да' else False
if reply != Q[1]:
lives -= 1
print(f'Вы не поверите, но тот факт, что {Q[0]}, действительно является правдой!\nЖизней осталось: {lives}')
else:
print(f'Вы совершенно правы!')
if lives <= 0:
print('Вы проиграли')
IsGameRunning = input('Попробуем ещё раз? Y/N\n').lower()
break
else:
print('Поздравляем, вы успешно выполнили все задания из файла!')
IsGameRunning = input('Сыграем ещё раз? Y/N\n').lower()
if __name__ == "__main__":
main()
В файле с паком вопросов после каждого вопроса должен быть указан код ответа (по умолчанию - 1 - истина, 0 - ложь), отделённый от вопроса особым символом/набором символов (по умолчанию - ':: ')
Коды ответа при необходимости в изменении указываются при создании экземпляра FactPackLoader(), символ-разделитель - при вызове LoadPack().
По умолчанию в файле с заданиями пара вопрос ответ выглядит так:
//facts.txt
На самом деле солнце белого цвета :: 1
После "::" должен стоять пробел
P.S - Код main() можно и нужно рефакторить, ибо сейчас это нечто страшное.
P.S 2 Да, я часто обращаю внимание на плохой код людей, а сейчас сам его написал. Вынепонимаете, этодругое =))
P.S 3 Проверял, программа работает. Если что то сломалось, виноват сайт. На всякий случай прикреплю файл исходного кода в .txt
Объем изображения I=k*i*n , где k- количество точек, i- глубина цвета, n - количество слайдов Глубина цвета i=㏒₂N, где N-количество цветов палитры i=㏒₂256=8
I=1024*512*8*10/(8*1024*1024)= 5 Мбайт
Объем звука:
I= i*n*t, где i-глубина кодирования звука, n- частота дискретизации, t- время звучания.
I= 16*32000*40/(8*1024*1024)= 2,44 Мбайт
Общий объем презентации: 5 Мбайт+2,44 Мбайт= 7,44 Мбайт Еще добавляем 10 Кбайт служебной информации.
А объем флешки: 3 Гбайт= 3072 Мбайт Свободное место 10%= 307,2 Мбайт
--- Python 3.8.3 ---
import typing
from typing import List
from typing import AnyStr
from typing import Tuple
from typing import Callable
from typing import Any
class FactPackLoader:
def __init__(self, TrueCode: str = '1', FalseCode: str = '0', encoding: AnyStr = 'utf-8',):
self._encoding = encoding
self._trueAnswCode = TrueCode
self._falseAnswCode = FalseCode
def LoadPack(self, FactPackPath: AnyStr, AnswSplitter: AnyStr = ':: ') -> Tuple[AnyStr, int]:
with open(FactPackPath, 'r', encoding=self._encoding) as data:
RawData = data.read().split('\n')
for FactPair in RawData:
FactPair = tuple(FactPair.split(AnswSplitter))
yield (FactPair[0], self._ToBool(FactPair[1]))
def _ToBool(self, replyCode):
if replyCode == self._trueAnswCode: return True
return False
def main():
f = FactPackLoader()
print('"Правда-Ложь"\nАвтор: KnowsUser1\nVersion: 0.0.1 Ya-Sdelyal')
IsGameRunning = 'y'
while IsGameRunning == 'y':
lives = 3
fp = input('Укажите имя файла, содержащего пак фактов:\n')
facts = f.LoadPack(fp)
for i, Q in enumerate(facts):
print(f'Вопрос {i+1}:\n{Q[0]}')
reply = True if input().lower() == 'да' else False
if reply != Q[1]:
lives -= 1
print(f'Вы не поверите, но тот факт, что {Q[0]}, действительно является правдой!\nЖизней осталось: {lives}')
else:
print(f'Вы совершенно правы!')
if lives <= 0:
print('Вы проиграли')
IsGameRunning = input('Попробуем ещё раз? Y/N\n').lower()
break
else:
print('Поздравляем, вы успешно выполнили все задания из файла!')
IsGameRunning = input('Сыграем ещё раз? Y/N\n').lower()
if __name__ == "__main__":
main()
В файле с паком вопросов после каждого вопроса должен быть указан код ответа (по умолчанию - 1 - истина, 0 - ложь), отделённый от вопроса особым символом/набором символов (по умолчанию - ':: ')
Коды ответа при необходимости в изменении указываются при создании экземпляра FactPackLoader(), символ-разделитель - при вызове LoadPack().
По умолчанию в файле с заданиями пара вопрос ответ выглядит так:
//facts.txt
На самом деле солнце белого цвета :: 1
После "::" должен стоять пробел
P.S - Код main() можно и нужно рефакторить, ибо сейчас это нечто страшное.
P.S 2 Да, я часто обращаю внимание на плохой код людей, а сейчас сам его написал. Вынепонимаете, этодругое =))
P.S 3 Проверял, программа работает. Если что то сломалось, виноват сайт. На всякий случай прикреплю файл исходного кода в .txt
Глубина цвета i=㏒₂N, где N-количество цветов палитры
i=㏒₂256=8
I=1024*512*8*10/(8*1024*1024)= 5 Мбайт
Объем звука:
I= i*n*t, где i-глубина кодирования звука, n- частота дискретизации, t- время звучания.
I= 16*32000*40/(8*1024*1024)= 2,44 Мбайт
Общий объем презентации: 5 Мбайт+2,44 Мбайт= 7,44 Мбайт
Еще добавляем 10 Кбайт служебной информации.
А объем флешки: 3 Гбайт= 3072 Мбайт
Свободное место 10%= 307,2 Мбайт
Поэтому презентация уместится.