Нужно перевести из pascal на python, ) uses graphabc,crt; var x,y,y0,ys,i,s: integer; k,q: real; begin setwindowsize(700,500); write('сколько секунд должны отсчитать часы? '); readln(s); setpencolor(clnavy); arc(200,410,200,-8,61); arc(400,410,200,119,-170); arc(200,70,200,-60,7); arc(400,70,200,173,-120); setbrushcolor(clsilver); setpencolor(clblack); rectangle(170,50,430,30); rectangle(170,450,430,430); floodfill(250,110,clskyblue); floodfill(250,410,clskyblue); k: =80; x: =300; q: =0; for y: =130 to 230 do begin setpencolor(clnavy); line(round(x-k),y,round(x+k),y); k: =k-q; if y mod 25=0 then q: =q+0.45; end; k: =80; x: =300; q: =0; y0: =430; for y: =130 to 230 do begin setpencolor(clskyblue); line(round(x-k),y,round(x+k),y); k: =k-q; if y mod 25=0 then q: =q+0.45; setpencolor(clnavy); line((x-100),430,x,y0); line(x,y0,(x+100),430); sleep(10*s); y0: =y0-1; for i: =1 to 20 do begin ys: =random(151)+250; putpixel(300,ys,clnavy); end; for i: =1 to 20 do begin ys: =random(101)+230; putpixel(300,ys,clskyblue); end; end; setpencolor(clskyblue); line(300,250,300,330); setpencolor(clnavy); arc(200,410,200,-8,61); arc(400,410,200,119,-170); arc(200,70,200,-60,7); arc(400,70,200,173,-120); setbrushcolor(clsilver); rectangle(170,50,430,30); rectangle(170,450,430,430); writeln(s,' секунд истекло! '); end.
import typing
from typing import Callable
from typing import AnyStr
from typing import Any
from typing import Iterable
from typing import List
def ListTransform(Data: List[Any], Tranformer: Callable[[Any], Any], Selector: Callable[[Any], bool] = lambda p: True):
'''Трансформирует элементы list, удовлетворяющие условию, в соответствии с заданным правилом
По умолчанию трансформирует все элементы'''
for index, item in enumerate(Data):
if (Selector(item)):
Data[index] = Tranformer(item)
return Data
def ReadSeq(SeqLen: int, CastType):
'''
Возвращает последовательность элементов в указанном типе, считанных с клавиатуры, заданной длины.
'''
try:
for _ in range(SeqLen):
yield CastType(input())
except TypeError:
raise RuntimeError(f'Unsupported type: {CastType}')
def main():
n = int(input())
Lst = list(ReadSeq(n, int))
def Filter(number):
if number % 2 == 0: return 1
else: return 0
print(*ListTransform(Lst, Filter))
if __name__ == "__main__":
main()
игра сводится к ничьей
Объяснение:
Рассмотрим различные комбинации получения числа 15:
9 + 5 + 19 + 4 + 28 + 6 + 18 + 5 + 28 + 4 + 37 + 6 + 27 + 5 + 36 + 5 + 4Здесь представлены все возможные комбинации без учёта порядка следования. Когда игрок делает первый ход, у него есть как минимум две стратегии, по которым он может получить число 15 (это следует из того, что каждое число встречается хотя бы 2 раза). При этом однозначно стратегия определяется вторым ходом (всегда найдётся ровно одна комбинация, содержащая два определённых числа).
Если игрок 2 (II) будет пытаться мешать игроку 1 (I), это приведёт к ничьей: пусть I выбрал некоторое число. Тогда II может ограничить выбор I. После второго хода I II забирает число, необходимое для получения 15. Тогда I делает то же самое (так как стратегия II определилась), оба проиграли. Этот исход получается, если I будет мешать II.
Если II не будет мешать I (и наоборот), это так же приведёт к ничьей, но с другим исходом — оба выиграют.