Стратегия решения олимпиадных задач


Решение можно проверят двумя способами:

1. проверка программ по завершению тура;

2. проверка программ в он-лайн режиме.

В первом случае членам жюри подготовка тестов легче, но проверка усложняется. Также система оценок результата не четкая. Во втором же случае интерактивной оценки результата снимаетмногие вопросы.

Решение можно двумя способами оценивать:

1. Оценка решения полностью решенной задачи по времени решения и по числу попыток решения;

2. Оценка решния задач времени решения и по пройденным тестам.

При использовании оценок задач первым методом участнику олимпиады надо легкие и знакомые задачи решать. После этого приступать к решению незнакомых задач. Из таблицы тестирования видно какие задачи легко решаютсякакие сложнее. Поэтому далее надо решать легкие. После этогоможно приступать к сложным задачам. Поскольку время ррешения ранее решенных задач идет как штрафное время для омтальных. Если в начале решать легкие изнакомые задачи, то штрафное время будет меньше. Исходя из этого самые легкие задачи надо решать. Перед отправкой программы на решение если время позволяет локально отладить надо.

При второй системе оценок работ во-первых знакомые задачи надо решать. Во-вторых легкие задачи. А далее с понятнымусловием и знвуомыми методами.


Литература и электронные ресурсы

1. Н.Прохоренко,В.Дронов. Python 3 и PyQt5/ Разработка приложений. Изд-во «БХВ Петербург». С.-Петербург. 2016.

2. Эрик Мэтиз. Изучаем PYTHON. Программирование игр, визуализация данных, ВЕБ-приложенние. – СПб.: Питер. 2017.

3. http://younglinux.info/book/export/html/48

4. http://younglinux.info/tkinter/canvas.php

5. http://pythonworld.ru/samouchitel-python

6. https://habrahabr.ru/post/29778/7.

7. https://www.jetbrains.com/help/pycharm/2016.2/ctrl-shift.html

8. http://pythontutor.ru/lessons/lists/

9. http://pythontutor.ru/lessons/int_and_float/

10. https://www.youtube.com/watch?v=7rNvoPy1fb4

11. https://www.youtube.com/watch?v=wDgZdYRQ4gU

12. http://pythonworld.ru/samouchitel-python

13. https://habrahabr.ru/post/29778/

14. «Изучаем Python», 4-е издание. Марк Лутц.

15. «Основы программирования на Python. Вводный курс». С. Шапошникова.

16. «OpenGL. Программирование компьютерной графики» (Computer Grafics Using OpenGL. Second Edition). Френсис Хилл.

17. https://ru.wikipedia.org

18. А.В.Казанцев. Основы компьютерной графики для программистов. Изд-во КГУ. – Казань 2005. С. 93. http://window.edu.ru/resource/442/37442/files/CompGraph2005.pdf

19. «Основы OpenGL». И. Тарасов.

20. http://steps3d.narod.ru

21. «Think Python: How to Think Like a Computer Scientist», Allen B. Downey.

22. https://pythonworld.ru


Приложения

Задачи ЕГЭ

Задание № 8.Приведена рекурсивная функция F. Что напечатает данная функция.

s = k = 0

while s <= 80:

s += k

k += 5

print(k)

Решение:

При k=5, s=0+5+10+15+20+25=75 условия цикла истинно и k=6, s=105. Следующего шага не будет.

Ответ: 6

Задание № 11. Приведена рекурсивная функция F. Что напечатает данная функция.

Вариант 1. Вариант 2. Вариант 3.
def F(n): if n >2: F(n - 1) F(n // 3) print(n+1, end='') def F(n): if n >2: print(n+1, end='') F(n - 1) F(n // 3) def F(n): print(n+1, end='') if n >2: F(n - 1) F(n // 3)

Решение.

Вариант 1.

F(6): {F(5): {F(4): {F(3):{F(2): - не выполняется},

{F(1): - не выполняется },

“4” печатает

{F(1): - не выполняется },

“5” печатает},

{F(1): - не выполняется },

“6” печатает},

{F(2): - не выполняется },

“7” печатает}

Оответ : 4567

Вариант 2.

F(6): “7” печатает,

{F(5): “6” печатает,

{F(4): “5” печатает,

{F(3): “4” печаатает,

{F(2): - не выполняется },

{F(1): - не выполняется }}

{F(1): - не выполняется }}

{F(1): - не выполняется }

{F(2): - не выполняется }}

Ответ : 7654

Вариант 3.

F(6): {“7” печатает,

{F(5): “6” печатает,

{F(4): “5” печатает,

{F(3): “4” печатает,

{F(2): - “3” печатает, не выполняется },

{F(1): - “2” печатает, не выполняется }}

{F(1): - “2” печатает, не выполняется }}

{F(1): - “2” печатает, не выполняется }

{F(2): - “3” печатает, не выполняется }}

Ответ : 765432223

Задание №20.1,Ниже записан алгоритм. После выполнения алгоритма было напечатано 3 числа. Первые два напечатанных числа - это числа 11 и 44. 1) Какое наибольшее число может быть напечатано третьим, если x<y?

2) Какое наименьшее число может быть напечатано третьим, если x>y?

3) Сколько шатуральных значений х может быть напечатано третьим, если x<y?

x = int(input())

y = int(input())

x,y = min(x,y),max(x,y)

a = x

b = y

while b > 0:

r,a = a % b,b

b = r

print(a,x.y)

Ответ: 1) 33, 2) 55, 3) 0

 

Задание №20.2, Ниже записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 2, а потом 5

x = int(input())

Q = 8

L = 0

while x >= Q:

L += 1

x -= Q

M = x

if M < L:

M = L

L = x

print(L,M)

Ответ: 42

 

Задание №25.1. Задана последовательность из N натуральных чисел. Написать программу, которая напечатает минимальное число, оканчивающееся на 3, если числа меньше 100000.

Решение:

Вариант 1.

a = []

n = int(input())

for i in range(0, n):

a.append(int(input()))

m=100000

for i in range(0, n):

if a[i] % 10==3 and m>a[i] :

m=a[i]

print(m)

Вариант 2.

print(min(filter(lambda x: x % 10 == 3, [int(input()) for i in range(int(input()))])))

Задание №25.2. Дан целочисленный массив из 40 элементов. Элементы массива могут принимать произвольные значения. алгоритм, который находит и выводит количество элементов самой длинной возрастающей последовательности подряд идущих элементов массива.

Решение.

a = []

n = 40

for i in range(0, n):

a.append(int(input()))

r=m=1

for i in range(1,n) :

if a[i]>a[i-1] : r+=1

else : r=1

m=max(m,r)

print(m)

Задание №25.3. Дан массив, содержащий 10 целых чисел. Напишите на программу, находящую в этом массиве два соседних элемента, значения которых наименее близки, то есть абсолютная величина их разности максимальна. Если таких пар несколько, можно взять любую из них. Программа должна вывести найденные элементы. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.

Решение.

a = []

n = 100

for i in range(0, n):

a.append(int(input()))

 

Задание №27.Самое сложное задание №27. В этом задании надо написать оптимальную программу. Если программа оптимальна по памяти и времени, оценивается в 4 балла. Если оптимальна только по времени, то оценивается в 3 балла. Если не оптимальна, то в 2 балла. За допущенные ошибки баллы снимаются.

№27.1. В первой четверти задано на осях N точек. На каждой оси задана хотябы 1 точка. Найти самого большого прямоугольного треугольника с пвершинами на осях и прямым углом в центре координат.

В первой строке задано N. И в N строках координаты точек.

Решение .

Вариант 1.1. (2 балла)

var x,y:array[1..100000] of real;

i,j,n:integer;

maxs:real;

begin

read(n);

for i:= 1 to n do

read(x[i],y[i]);

maxs:=0;

for i:=2 to n do

for j:=1 to i-1 do

maxs:=max(maxs,x[i]*y[i] /2);

write(maxs)

end.

Вариант 1.2. (3 балла)

Найдя самые большие катеты, можно посчитать максимальную площпдь.

var x,y:array[1..100000] of real;

i,j,n,maxx,maxy:integer;

begin

read(n);

for i:= 1 to n do

read(x[i],y[i]);

maxx:=0;

maxy:=0;

for i:=1 to n do begin

maxx:=max(maxx,x[i]);

maxy:=max(maxy,y[i])

end;

write(maxx*maxy/2)

end.

Вариант 1.3. (4 балла)

Найдя самые большие катеты, можно посчитать максимальную площпдь. При поиске этих значений при вводе корректировать.

var x,y,i,j,n,maxx,maxy:integer;

begin

maxx:=0;

maxy:=0;

read(n);

for i:= 1 to n do begin

read(x,y);

maxx:=max(maxx,x);

maxy:=max(maxy,y)

end;

write(maxx*maxy/2)

end.

№27.2. На плоскости дано N точек. На кождой оси минимум 2 точки. Рассматриваются треугольники с вершинами осях. Найти максимальную площадь среди этих треугольников.

Решение.

В первой строке задано N. Далее в N строках заданы координаты точек. Заданные числа меньше 100000

Вариант 2.1. (2 балла)

var x,y:array[1..100000] of real;

k, i, j, n:integer;

maxs:real;

begin

read(n);

for i:= 1 to n do

read(x[i],y[i]);

maxs:=0;

// расссматриваются всевозможные треугольники

for i:=1 to n-2 do

for j:=i+1 to n-1 do

for k:=j+1 to n do

// две вершины на оси Ү третья на оси Х

if (x[i]=0) and (x[j]=0) and y[k]=0)then

maxs:=max(maxs,abs((y[i]-y[j])*x[k]) /2) else

if (x[i]=0) and (x[k]=0) and y[j]=0)then

maxs:=max(maxs,abs((y[i]-y[k])*x[j]) /2) else

if (x[k]=0) and (x[j]=0) and y[i]=0)then

maxs:=max(maxs,abs((y[k]-y[j])*x[i]) /2) else

// две вершины на оси Х ретья на оси Ү

if (y[i]=0) and (y[j]=0) and x[k]=0)then

maxs:=max(maxs,abs((x[i]-x[j])*y[k]) /2) else

if (y[i]=0) and (y[k]=0) and x[j]=0)then

maxs:=max(maxs,abs((x[i]-x[k])*y[j]) /2) else

if (y[k]=0) and (y[j]=0) and x[i]=0)then

maxs:=max(maxs,abs((x[k]-x[j])*y[i]) /2);

write(maxs)

end.

 

Вариант 2.2. (3 балла)

Самый большой треугольник определяется точками максимальным и минимальным на оси Х,Ү.

var x,y:array[1..100000] of real;

k, i, j, n, maxx, maxy, minx, miny:integer;

begin

read(n);

for i:= 1 to n do

read(x[i],y[i]);

maxx:=0;

maxy:=0;

minx:=100000;

miny:=100000;

for i:=1 to n do

if x[i]=0 then begin

maxy:=max(maxy,y[i]);

miny:=min(miny,y[i])

end else

if y[i]=0 then begin

maxx:=max(maxy,x[i]);

minx:=min(miny,x[i])

end;

write(max((maxy-miny)*max(abs(maxx),abs(minx)),

(maxx-minx)*max(abs(maxy),abs(miny)))

end.

 

Вариант 2.3. (4 балла)

Самый большой треугольник определяется точками максимальным и минимальным на оси Х,Ү.

var x, y, k, i, j, n, maxx, maxy, minx, miny:integer;

begin

read(n);

maxx:=0;

maxy:=0;

minx:=10000;

miny:=10000;

for i:=1 to n do begin

read(x,y);

if x=0 then begin

maxy:=max(maxy,y);

miny:=min(miny,y)

end else

if y=0 then begin

maxy:=max(maxy,y);

miny:=min(miny,y)

end;

write(max((maxy-miny)*max(abs(maxx),abs(minx)),

(maxx-minx)*max(abs(maxy),abs(miny)))

end.

№27.3.В первой строке задан N. Затем ппострочно N натуральных чисел. Нужно сосчитать среди них сколько пар дают произведение кратное 51.

Решение.

Вариант 3.1. (2 балла)

// Перебераются все пары. Их произведениея проверяются делимость на 51.

var x:array[1..100000] of real;

k, i, j, n:integer;

maxs:real;

begin

read(n);

for i:= 1 to n do

read(x[i]);

k:=0;

for i:=2 to n do //i – номер правого элемента пары

for j:=1 to i-1 do //j – номер левого элемента пары

if x[i]*x[j] mod 51=0 then

k+=1;

write(k)

end.

Вариант 3.2. (3 балла)

Каждый правый элемент правой пары кратный 51 со всеми левыми элементами образует кратное 51 произведение. Если делится на 17 но делится на 3, то со всеми кратными 3 образует произведение кратное 51. Если правый элемент делится 3, а не делится на 17, то эти числа образую с числами слева кратными 17 прозведение кратное 51. Если не делится 3 и 17, то левые элементы кратные 51 образуют кратное 51 проиведение.

Этот алгоритм оптимальный по времени.

var x:array[1..100000] of integer;

k, k3, k17, k51, i, j,n:integer;

begin

read(n);

k:=0;

k3:=0;k17:=0;k51:=0;

for i:=1 to n do begin

read(x[i]);

if x[i] mod 51=0 then begin k51+=1; k+=i-1 end else

if x[i] mod 3=0 then begin k+=k17+k51; k3+=1 end else

if x[i] mod 17=0 then begin k+=k3+k51; k17+=1 end else

k+=k51

end;

write(k)

end.

Вариант 3.3. (4 балла)

Если приведенном в 3.2. алгиритме фиксировать только текущий правый элемент, то получим оптимальную по памяти..

var x, k, k3, k17, k51, i, j, n:integer;

begin

read(n);

k:=0;

k3:=9; k17:=0; k51:=0;

for i:=1 to n do begin

read(x);

if x mod 51=0 then begin k51+=1; k+=i-1 end else

if x mod 3=0 then begin k+=k17 k+=k17+k51; k3+=1 end else

if x mod 17=0 then begin k+=k3+k51; k17+=1 end else

k+=k51

end;

write(k)

end.

Вариант 3.4. (4 балла)

Если сосчитаем k3,k17,k51 , то число пар будет

k3*k17+k51*(k51-1)/2+k51*(n-k51).

var x, k3, k17, k51, i, n:integer;

begin

read(n);

k3:=9;k17:=0;k51:=0;

for i:=1 to n do begin

read(x);

if x mod 51=0 then k51+=1 else

if x mod 3=0 then k3+=1 else

if x mod 17=0 then k17+=1

end;

write(k3*k17+k51*(k51-1)/2+k51*(n-k51))

end.

№27.4. В первой строке задано N. Затем в N строках даны натуральные числа. Сосчитать число пар, сумма которых нечетна. Значеня чисел не превышает 100000.

Решение.

Вариант 4.1. (2 балла)

// Перебираем возможные пары и проверяем нечетность их суммы

var x:array[1..100000] of integer;

k, i, j, n:integer;

begin

read(n);

for i:= 1 to n do read(x[i]);

k:=0;

for i:=6 to n do

for j:=1 to i-5 do

if (x[i]+x[j]) mod 2=0 then

k+=1;

write(k)

end.

 

Вариант 4.2. (3 балла)

var x:array[1..100000] of integer;

k, k0, k1, i, n:integer;

begin

read(n);

for i:= 1 to n do read(x[i]);

k:=0; k0:=0; k1:=0;

for i:=5 to n do begin

if x[i] mod 2=0 then

begin k+=k0; k0+=1 end

else begin k+=k1; k1+=1 end;

write(k)

end.

Вариант 4.3. (4 балла)

var xi, k, k0, k1, i, n:integer;

zapret:array[1..4] of integer;

begin

read(n);

for i:=1 to 4 do read(zapret[i]);

k:=0;k0:=0;k1:=0;

for i:=5 to n do begin

read(xi);

if xi mod 2=0 then k+=k0

else k+=k1;

if zapret[1] mod 2 then k0+=1;

else k1+=1;

for j=1 to 3 do zapret[j]:=zapret[j+1];

zapret[4]:=x[i]

end;

write(k)

end.

№27.5. В первой строке задано N. Затем в N строках даны натуральные числа. Сосчитать число пар, произведение которых четна. Значеня чисел не превышает 100000.

Решение.

Вариант 5.1. (4 балла)

Var ai, kpar, kch, i, n:integer;

Begin

Read(n);

Kch:=0;// число четных чисел

kpar:=0;// число пар с четной суммой

For i:=1 to n do begin

Read(ai);

If ai mod 2=0 then begin

kpar+=i-1;

kch+=1

end

Else kpar+=kch;

End;

Write(kpar)

End.

Вариант 5.2. (4 балла)

Var ai, kch, i, n:integer;

Begin

Read(n);

Kch:=0;// число четтных элементов

For i:=1 to n do begin

Read(ai);

If ai mod 2=0 then kch+=1;

End;

Write(kсh*(kch-1)/2+(n-kсh)*(n-kch-1)/2)

End.

№27.6. В первой строке задано N. Затем вв N строках заданы пары натуральных чисел меньше 10000. Из пар выбрав один элемент получить максимальную сумму не кратную 7. Если такой суммы нет, то вывести -1.

Решение. (4 балла)

Var i, n, s, a, b, minr:integer;

Begin

Read(n);

S:=0;

Minr:=10000;

For i:=1 to n do begin

Read(a,b);

S+=max(a,b);

If abs(a-b) mod 7 <> then

Minr:=min(minr,abs(a-b));

End;

If s mod 7 =0 then

If minr<10000 then

Write(s+minr)

Else write(-1)

Else write(s)

End.

№27.7. В первой строке задано N (N>=1000) число участников олимпиады. Затем вв в N строках заданы <Фамилия> <Инициалы> <номер школы> учеников. Поля разделены пробелами. Фамилия до 21 символов, инициал 4 символа (буква, точка, буква, точка), номер школы меньше 100. Пример:

Сафин И.К. 42

Напечатать номера школ с минимальным числом участников. Учитывать только школы, пославших учеников..

Решение.

Var sch:array[1..99] of integer;

M,i,k,n:integer;

C:char;

Begin

Readln(n);

For i:=1 to n do sch[i]:=0;

For i:=1 to n do begin

Repeat read(c) until c=’ ‘; // пропуск фамилии

Repeat read(c) until c=’ ‘; // пропуск инициалов

Readln(k); // ввод номера школы

Sch[k]+=1

End;

M:=n;

For i:=1 to 99 do

If sch[i]>0 then M:=min(m,sch[i]);

For i:=1 to 99 do

If m=sch[i] then

Writeln(i)

End.

Вариант 2

import sys

save_stdin = sys.stdin

sys.stdin = open("in/0-1.in")

N = int(input())

schCount = {}

for i in range(N):

fam, io, sch = input().split()

schCount[sch] = schCount.get(sch, 0) + 1

minCount = min(schCount.values())

schMin = [x[0] for x in list(schCount.items()) if x[1] == minCount]

for x in sorted(schMin):

print(x)

sys.stdin = save_stdin


 

Особенности

· «del» очищает переменные или элементы массива.

· Python имеет большие возможности для работы со списками. Можно использовать операторы объявлении структуры списка. Оператор forможет задавать элементы списка в определенной последовательности, а if – может выбирать элементы по условию.

lst1 = [1, 2, 3]

lst2 = [3, 4, 5]

print [x * y for x in lst1 for y in lst2] # [3, 4, 5, 6, 8, 10, 9, 12, 15]

print [x for x in lst1 if 4 > x > 1] # [2, 3]

# Оператор «any» возвращает true, если хотя бы одно из условий, входящих

# в него, выполняется.

any (i % 3 for i in [3, 3, 4, 4, 3])

True

# Следующая процедура подсчитывает количество подходящих элементов

# в списке

sum(1 for i in [3, 3, 4, 4, 3] if i == 3) # 3

del lst1[0]

print lst1 # [2, 3]

del lst1

Сумма цифр числа

N = int(input()) sum = 0 while N > 0: d = N%10 sum += d N = N // 10 print(sum) N = int(input()) sum = 0 while N > 0: sum += N%10 N = N // 10 print(sum)

Число разрядов числа в двоичной записи числа

x = int(input())

cnt = 0

while x > 0:

cnt += 1

x //= 10

print(cnt)

Число единиц в двоичной записи числа

x = int(input())

cnt = 0

while x > 0:

cnt += x % 2

x //= 2

print(cnt)

Максимальная цифра числа

N = int(input()) maxD = N % 10 while N > 0: d = N % 10 if d > maxD: maxD = d N //= 10 print(maxD) s= input() S=list(s) print(max(S)) print(max(list(input())))

 

Сумма всех отрицательных чисел последовательности и максимальное число в последовательности

mx = s = 0

for i in range(1, 5):

x = int(input())

if x < 0: s += x

if x > mx: mx = x

print(s,mx)

1. Задан текст, завершающийся точкой. Написать программу вывода самого большого числа из цифр, использованных в тексте.

x=input() A=[0,0,0,0,0,0,0,0,0,0] i=0 while(x[i]!=' .') : if x[i]>='0' and x[i]<='9' : A[int(x[i])]+=1: i+=1 for z in range(9,-1,-1): print(z*A[z],end='') var a:array['0'..'9'] of integer; i,j,k:integer; c:char; begin for c:='0' to '9' do a[c]:=0; repeat read(c): if c in ['0'..'9'] then a[c]:=a[c]+1 // if (c>='0') and (c<='9') then a[c]:=a[c]+1 until c='.'; for c:='9' downto '0' do for i:=1 to a[c] do write(c) end.

2. Задано число N и последовательность N натуральных чисел. В конце данных задается контрольное значение. Контрольное значение – максимальное произведение двух чисел из этой последовательности кратных 21.

N = int(input())

M3 = M7 = M21 = M = 0

for i in range(N):

x = int(input())

if x % 21 != 0:

if x % 3 == 0: M3 = max(M3, x)

if x % 7 == 0: M7 = max(M7, x)

if x % 21 == 0 and x > M21:

M = max(M21, M)

M21 = x

else:

M = max(M, x)

R = max(M3*M7, M21*M)

print("Контрольное значение - ", R)

R0 = int(input())

if R == R0: # if int(input()) == R0:

print("Контроль пройден")

else:

print("Контроль не пройден")

3. №11. Ниже записаны две рекурсивные процедуры: F и G:

def F(n):

if n > 0:

G(n - 1)

def G(n):

print('*')

if n > 1:

F(n - 2)

Сколько символов «звёздочка» будет напечатано на экране при выполнении вызова F(11)?

4. №20

x = int(input())

L = x-45

M = x+45

while L != M:

if L > M: L –= M

else: M –= L

print(M)


Функции PyCharm

Комбинация Фукция

Клавиш

Backspace удаление символа.

Ctrl+X вырезать линию или выделение.

Shift+Down перемещение текущей строки вниз.

Shift+End выделение текста от курсора до конца строки.

Shift+Enter Start a new line after the current one, positioning the caret in accordance with the current indentation level (equal to sequential pressing End, Enter).

Shift+Escape Скрытие инструментов активного окна

Shift+Home выделение текста от курсора до начала строки.

Ctrl+V вставка из буфера обмена.

Shift+Left перемещение влево с выделением текста.

Shift+Page Down перемещение на одну страницу вниз с выделением текста.

Shift+Page Up перемещение на одну страницу вверх с выделением текста.

Shift+Right перемещение вправо с выделением текста.

Shift+Tab снять отступ, переместив блок на прежний уровень отступа

Shift+F1 внешнее описание

Shift+F2 одно из следующих действий: «Перейти к предыдущей выделенной ошибке» или «Остановка Программы»

F3/Shift+F3 переход к следующему/предыдущему вхождению выделенного слова в редакторе

Shift+F4

Shift+F5

Shift+F6 переименование и исправление ссылки. (Рефакторинг)

Shift+F7 построчное исполнение

Shift+F8 шаг к первой выполняемой строке после возвращения из текущего метода.

Shift+F9 построчное исполнение основного модуля

Shift+F10 исполнение программы

Shift+F11 управление существующими закладками и перемещение между ними

Shift+F12 установка схемы PyCharm по умолчанию (инструмент позиции окна, расположение кнопок и заказ). Чтобы восстановить схему по умолчанию, установите флажок сохранить текущий макет по умолчанию в меню "окно".


Рисунки

Рисунок с использованием библиотеки Turtle

#16 в ширину 23 в длину
import turtle
s = ['#726d45', '#706f41', '#736c3e', '#7a7442', '#86804e', '#87824a', '#888552',

'#8a8959', '#919062', '#959466', '#a19861', '#a7a16d', '#afa66f', '#aa9e6c',

'#b2a76f', '#b0a669',

'#827c4a', '#7d7648', '#7e7846', '#84794c', '#8f8351', '#8f8955', '#959162',

'#9c9869', '#a39f72', '#a29b6d', '#aa9e6c', '#b1aa7c', '#b6ac7b', '#b0a56f',

'#b2a676', '#b9a975',

'#86804e', '#8b8551', '#918851', '#96874c', '#998e56', '#9e955c', '#81744a',

'#65553c', '#685a40', '#7d6f4c', '#a89c6c', '#b7ad70', '#b7ac74', '#baa971',

'#b9a874', '#bdb27c',

'#938956', '#9d945d', '#9c9255', '#a59655', '#aa9a66', '#51472c', '#492f14',

'#291a13', '#170f0d', '#1a0f0d', '#302418', '#a0905c', '#bdb47d', '#b8ad75',

'#c1b784', '#c4bf87',

'#9d925a', '#a29960', '#aa9b60', '#aca16b', '#796b48', '#987a44', '#d2b16a',

'#c49954', '#6b4b24', '#19110f', '#120c09', '#2a2319', '#bdb47b', '#c4be8c',

'#c7bd8a', '#d0c689',

'#a69c5e', '#a89d65', '#ada46b', '#abaa7c', '#604822', '#dcb670', '#e1c178',

'#e5bd66', '#bb8932', '#513917', '#170f0d', '#0d0b0c', '#7a724d', '#c2b781',

'#c9c183', '#cfcb8c',

'#aea467', '#ada773', '#b8b072', '#7d6c41', '#684e2d', '#daaf6a', '#e2bd6c',

'#d4a555', '#cf9e51', '#996d2e', '#18100d', '#0d0b0c', '#3d3824', '#8b864e',

'#9f9f69', '#adbb7d',

'#686834', '#a19f66', '#b0ae73', '#56482b', '#432e19', '#89602c', '#bb8a3d',

'#926629', '#6d4b1d', '#7f5c22', '#22150d', '#0d0b0c', '#252116', '#5e633a',

'#768357', '#7c8a57',

'#424623', '#5f5b2e', '#5d5b34', '#3b301e', '#6e502a', '#d2a355', '#c9994f',

'#cb9c4e', '#d6ab5c', '#ac7a31', '#18100d', '#0c0a0d', '#181712', '#66673f',

'#707b50', '#6b7d4d',

'#2b331b', '#30341d', '#27271b', '#1a0e0e', '#4c3219', '#d2a057', '#ac8446',

'#b88b48', '#ca994c', '#6a4b1c', '#100b08', '#0c0a0b', '#0f0d0e', '#3a3e27',

'#57613f', '#5f6f48',

'#2a2d1c', '#29301e', '#1e2418', '#100a0c', '#1e130d', '#b38138', '#a17335',

'#986c2f', '#b18137', '#543c16', '#0c0a0b', '#070508', '#0a0a0c', '#393d26',

'#4e5939', '#475733',

'#212719', '#2a321a', '#3a3f21', '#171611', '#09070a', '#523e1d', '#c19244',

'#a47934', '#705220', '#2b200e', '#0a0809', '#080607', '#0d0c08', '#414021',

'#5b6037', '#5a6231',

'#2a2d1c', '#373a27', '#565536', '#241d15', '#09070a', '#030305', '#2e2311',

'#332313', '#1b140c', '#211610', '#1b1310', '#0a080b', '#0a080b', '#2b2b1f',

'#4b5439', '#57623a'

'#42462f', '#4c5039', '#595635', '#2d2a1b', '#0a080b', '#060608', '#13120e',

'#876a32', '#534520', '#735d23', '#563e18', '#15100d', '#181310', '#1c1c12',

'#4d4c2e', '#5c5a33',

'#242515', '#212318', '#212318', '#0d0e09', '#060608', '#15100d', '#6e5829',

'#be9448', '#bd9442', '#c89a45', '#a3772e', '#332313', '#382916', '#0f0d10',

'#26261a', '#484522',

'#232011', '#11120d', '#10110c', '#030305', '#120d0a', '#a07934', '#d3ae5d'

'#ddb55e', '#dfb55f', '#d8b059', '#b58731', '#4a3017', '#332816', '#1b1311',

'#1d1513', '#3d3c1e',

'#302e19', '#282919', '#100f0b', '#090909', '#61431f', '#d5ad56', '#e1bc6b',

'#dfbb63', '#e2be66', '#dcb65b', '#aa7b2d', '#4e3419', '#352a16', '#544120',

'#4a3a21', '#181713',

'#50491b', '#1b1b11', '#010506', '#2d2210', '#c59b49', '#e4c167', '#e0bc64',

'#e6c774', '#e4c670', '#dcb65f', '#a67729', '#6a4e1c', '#876827', '#695226'

, '#362e1b', '#0f0f0f', '#3c3616', '#030708', '#030708', '#282516', '#876a32',

'#bc9d4d', '#dfc16b',

'#d9c679', '#dec872', '#cdaf59', '#735e25', '#342c19', '#13120e', '#0e0e10',

'#09080e', '#03060b', '#05090a', '#030708', '#0e0e0e', '#252616', '#282917',

'#413a20', '#554724',

'#67542a', '#6a592b', '#3e3b1a', '#181a0f', '#060a0b', '#181913', '#181913',

'#090d0e', '#060a0b', '#03060b', '#02050a', '#0a0e0f', '#090d0e', '#0b0f10',

'#272a17', '#2a2b1b',

'#1c1c12', '#181d16', '#080c0d', '#030708', '#090d0e', '#121711', '#25251b'

, '#3b3622', '#222218', '#03060d', '#03060d', '#03060b', '#030708', '#05090a',

'#070b0c', '#090d0e',

'#0f140e', '#060a0b', '#05090a', '#05080d', '#050b0b', '#111610', '#35301c',

'#2e2818', '#0a0e0f',

'#05080f', '#03060d', '#03060b', '#02050a', '#03060b', '#05090a', '#080c0d',

'#070d0d', '#05080d', '#030708', '#03060b', '#060a0b', '#151a14', '#151611',

'#080b10', '#06090e']

turtle.width(1)
turtle.tracer(0)
turtle.penup()
k = 539
turtle.goto(-959,k)
for i in range(23):
for j in range(16):
turtle.begin_fill()
turtle.color(s.pop(0))
turtle.pendown()
for n in range(4):
turtle.forward(40)
turtle.right(90)
turtle.end_fill()
turtle.forward(40)
turtle.penup()
k -= 40
turtle.goto(-959,k)
turtle.done()

Рисунок с использованием библиотеки Canvas

from tkinter import*
root = Tk()

h, a, d = 100, 120, 300
count = 50
house_h = 150
wigth = a+d+80
height = wigth
x1, x2, x3 = 40, 40 + a/2, 40 + a
x4 = x2 + d
x5 = x3 + d
y1 = (wigth - h)/2
y2 = y1 + h
y_x1 = y2-10
r = d/count
n = int((h//r)+1)
stepx, stepy = a/2/n, h/n
x = list(map(lambdai: x2+stepx*i, range(n)))
y = list(map(lambdai: y1+stepy*i, range(n)))
# ДОМ
с = Canvas(root, width = wigth, height = height, bg = "lightblue")
с.create_polygon(0, height, 0, height-house_h//2-80, wigth, height-house_h//2-80, wigth, height, fill="green")
с.create_polygon(x1, y_x1, x2, y1, x3, y2, fill = "grey")
с.create_polygon(x1, y_x1+house_h, x1, y_x1, x3, y2, x3, y2+house_h, fill = "orange3")
с.create_polygon(x3, y2, x5, y2, x5, y2+house_h, x3, y2+house_h, fill = "orange4")
# РЕЛЬЕФ НА КРЫШЕ
for i inrange(n-1, -1, -1):
xs1, xs2 = x[i], x[i]+r*2
ys1, ys2 = y[i]-r, y[i]+r
forj inrange(count//2):
с.create_arc(xs1, ys1, xs2, ys2, start = 180, extent = 200, style = CHORD, fill = "grey")
xs1 = xs2
xs2 += r*2
с.pack()
root.mainloop()

Рисунок с использованием библиотеки Canvas

from tkinter import*
root = Tk()
w = h = 700
с = Canvas(root, width=w, height=h, bg="white", cursor="pencil")
step_width = 100 # ширина ступеньки
step_count = round((w - 100)//step_width) #число ступеней
# лестница занимает половину высоты картинки
step_h = h/2/step_count # расчитаем высоту ступенек
# Далее введём начальные координаты x и y ступеньки
xbeg = 50
ybeg = h - step_h
# текущие координаты прорисовки
xtemp = xbeg
ytemp = ybeg
# Обозначим высоту перил
height_line = 150
fori inrange(0, step_count):
с.create_rectangle(xtemp, h, xtemp + step_width, ytemp, fill="lightblue")
с.create_line(xtemp, ytemp, xtemp, ytemp - height_line, width=6)
с.create_line(xtemp + step_width / 2, ytemp - step_height / 2, xtemp + step_width / 2, ytemp -
step_height / 2 - height_line, width=6)
ytemp -= step_height
xtemp += step_width
с.create_line(xtemp, ytemp + step_height, xtemp, ytemp - height_line, width=6)
# две наклонные линии. соединяющие перилы.
с.create_line(xbeg, ybeg, xtemp, ytemp, width=6)
с.create_line(xbeg, ybeg - height_line, xtemp, ytemp - height_line, width=9, fill='brown')
с.pack()
root.mainloop()


Дом

fromtkinter import*
root = Tk()
D = Canvas(width=1000, height=700, bg='#a8ffff')
D.focus_set()
D.pack()
D.create_rectangle(0, 500, 1000, 700, fill='green', outline='green')

defйорт(x,y):
# бина - здание
D.create_rectangle(x, y, x+600, y-300, fill='wheat1', outline='ivory')
# карниз
point_roof = [177, 185, 385, 100, 585, 100, 818, 185]
point1 = [200, 210, 175, 195, 820, 195, 800, 210, 800, 200, 200, 200]
D.create_polygon(point_roof, fill='red4', outline='black')
D.create_polygon(point1, fill='white', outline='black')
D.create_rectangle(175, 195, 820, 185, fill='white')
# урта_карниз - средний карниз
point2 = [200, 342, 177, 337, 818, 337, 800, 342]
D.create_polygon(point2, fill='white', outline='black')
D.create_rectangle(177, 337, 818, 327, fill='white')

defюл(x,y):
D.create_rectangle(x + 220, y - 200, x + 317, y - 320, fill='sienna4', outline='sienna4')
D.create_rectangle(x + 220, y - 200, x + 222, y - 320, outline='lightsalmon4',width=4)
D.create_rectangle(x + 315, y - 200, x + 317, y - 320, outline='lightsalmon4',width=4)
D.create_arc(x + 222, y - 291, x + 315, y - 348, extent=180, fill='sienna4', outline='sienna4')
D.create_arc(x + 222, y - 291, x + 315, y - 348, extent=180, outline='lightsalmon4',width=6)
D.create_line(x + 224, y - 318, x + 314, y - 318, fill='sienna4', width=10)
points = [x, y, x+220, y-200, x+320, y-200, x + 350, y]
D.create_polygon(points, fill="ivory4")
porog=[x+215, y-197, x+215, y-205, x+321, y-205, x+321, y-197]
D.create_polygon(porog,fill='gray26')
D.create_oval(x+230, y-260, x+235, y-266, outline='black', width=2,fill='black')
D.create_rectangle(x + 238, y - 270, x + 300, y - 320, fill='black', width=2)
D.create_rectangle(x + 240, y - 272, x + 298, y - 318, fill='khaki2', width=2)
D.create_line(x + 269, y - 272, x + 269, y - 318, fill='black', width=2)
D.create_line(x + 240, y - 295, x + 298, y - 295, fill='black', width=2)
D.create_arc(x+250,y-180,x+290,y-230,fill='dim gray',extent=180,width='2')

defwindow(x,y):
D.create_rectangle(x, y, x+60, y+80, fill='black')
D.create_rectangle(x+5, y+5, x + 55, y + 75, fill='khaki2')
D.create_line(x+30, y, x+30, y+80)
D.create_line(x , y+40, x + 60, y + 40)

defкуак(x,y):
D.create_oval(x + 10, y - 10, x + 30, y - 30, fill='dark green')
D.create_oval(x, y - 5, x + 20, y - 25)
D.create_oval(x, y, x + 20, y - 20)
D.create_oval(x + 20, y - 5, x + 40, y - 25)
D.create_oval(x + 15, y, x + 35, y - 20, fill='dark green')
D.create_oval(x, y, x + 20, y - 20, fill='dark green')
D.create_oval(x + 30, y - 13, x + 33, y - 10, fill='red')
D.create_oval(x + 10, y - 12, x + 15, y - 7, fill='yellow')
D.create_oval(x + 20, y - 24, x + 24, y - 27, fill='maroon1')
D.create_oval(x + 6, y - 18, x + 10, y - 21, fill='cyan')
D.create_oval(x + 32, y - 17, x + 35, y - 21, fill='purple4')

defкуаклар():
fori inrange(14):
куак(465 + i * 38, 514)
fori inrange(10):
куак(330 - i * 38, 514)
fori inrange(9):
куак(470+i*4,530+23*i)
fori inrange(10):
куак(320 - i * 23, 530 + 20 * i)

defbalkon(x, y):
D.create_line(x + 45, y - 40, x + 45, y - 85, fill='ivory',width=3)
D.create_line(x + 235, y - 40, x + 235, y - 85, fill='ivory',width=3)
D.create_rectangle(x + 110, y - 40, x + 170, y - 100, fill='sienna4',width=4)
D.create_rectangle(x + 60, y - 60, x + 90, y - 90, fill='khaki2', outline='black', width=4)
D.create_rectangle(x + 185, y - 60, x + 215, y - 90, fill='khaki2', outline='black', width=4)
D.create_arc(x+25, y+30, x + 255, y - 113,extent=180, width=10, outline='lightsalmon4')
D.create_line(x, y - 41, x + 280, y - 41, fill='lightsalmon4', width=13)

D.create_line(x + 60, y - 75, x + 90, y - 75)
D.create_line(x + 75, y - 60, x + 75, y - 90)
D.create_line(x + 185, y - 75, x + 215, y - 75)
D.create_line(x + 200, y - 60, x + 200, y - 90)

йорт(200, 500)
юл(150, 700)
D.create_line(200, 200, 800, 200, fill='black')
window(250, 215)
window(694, 215)
window(250, 365)
window(563, 365)
window(694, 365)
куаклар()
balkon(365, 327)

root.mainloop()


Рисунок с использованием библиотеки Pygame

# -*- coding: cp1251 -*-
import os, pygame, sys
from pygame.locals import * # подключение pygame
pygame.init()
# размер экрана
screen = pygame.display.set_mode((800, 640), 0, 32) # окно, в котором формируется кадр
# 640,360-размеры окна; 0-flags;32-цвет
pygame.display.set_caption("My First Form") # заголовок для окна
# фон
bgcolor = (255, 255, 255)
rect_6_color = (85, 107, 47) # зеленый
rect_7_color = (47, 79, 79) # темно-зеленый
circle_color = (255, 218, 185) # солнце
circle_pos = (400, 390)
circle_radius = 60
circle_width = 0
rect_6_rect = Rect((0, 400), (800, 150))
rect_7_rect = Rect((0, 550), (800, 80))
# ширина обводки
rect_1_width = rect_2_width = 0
# дерево1
circle_color_der = (0, 100, 0)
circle_radius_der = 70
circle_width_der = 0
circle_color_der2 = (0, 0, 0)
circle_width_der2 = 3
# ствол1
line_start_pos = (100, 300)
line_end_pos = (100, 460)
lines_color = (139, 69, 19)
poligon_color = (139, 69, 19)
poligon_width = 0
poligon_points1 = [(100, 300), (110, 285), (105, 305)]
poligon_points2 = [(100, 300), (90, 285), (95, 305)]
# тень
line_start_pos4 = (96, 305)
line_end_pos4 = (96, 460)
lines_color4 = (0, 0, 0)
poligon_color5 = (0, 0, 0)
poligon_width5 = 0
poligon_points5 = [(93, 460), (107, 460), (47, 480)]
# дерево2
circle_color_der3 = (107, 142, 35)
circle_radius_der3 = 60
circle_width_der3 = 0
circle_color_der2 = (0, 0, 0)
line_start_pos3 = (200, 340)
line_end_pos3 = (200, 470)
lines_color = (139, 69, 19)
poligon_color3 = (139, 69, 19)
poligon_width = 0
poligon_points3 = [(200, 340), (210, 335), (205, 345)]
poligon_points4 = [(200, 340), (190, 335), (195, 345)]
# тень
line_start_pos5 = (195, 345)
line_end_pos5 = (195, 470)
lines_color5 = (0, 0, 0)
poligon_color6 = (0, 0, 0)
poligon_width6 = 0
poligon_points6 = [(188, 470), (202, 470), (140, 490)]
# дерево3
circle_color_der4 = (85, 107, 47)
circle_radius_der4 = 140
circle_width_der4 = 0
circle_color_der5 = (0, 0, 0)
line_start_pos11 = (40, 200)
line_end_pos11 = (40, 450)
lines_color = (139, 69, 19)
poligon_color13 = (139, 69, 19)
poligon_width = 0
poligon_points13 = [(40, 200), (50, 195), (45, 215)]
poligon_points14 = [(40, 200), (30, 195), (35, 215)]
# тень
line_start_pos12 = (30, 207)
line_end_pos12 = (30, 450)
lines_color12 = (0, 0, 0)
poligon_color12 = (0, 0, 0)
poligon_width12 = 0
poligon_points12 = [(30, 450), (50, 450), (-10, 470)]
# птицы
# клюв
poligon_color_p1 = (255, 0, 0)
poligon_width_p1 = 0
circle_color_p1 = (0, 0, 0)
circle_radius_p1 = 30
circle_width_p1 = 0
circle_radius_p11 = 15
circle_color_p12 = (255, 255, 255)
circle_radius_p12 = 5
circle_radius_p13 = 2
# крыло
line_start_pos_p1 = (580, 146)
line_end_pos_p1 = (600, 159)
lines_color_p1 = (255, 255, 255)
line_start_pos_p11 = (602, 146)
line_end_pos_p11 = (600, 159)
# лапки
line_start_pos_p14 = (615, 165)
line_end_pos_p14 = (654, 177)
lines_color_p14 = (139, 69, 19)
line_start_pos_p15 = (602, 146)
line_end_pos_p15 = (655, 159)
# пальчики
line_start_pos_p141 = (645, 174)
line_end_pos_p141 = (655, 169)
line_start_pos_p142 = (645, 174)
line_end_pos_p142 = (650, 182)
line_start_pos_p151 = (645, 159)
line_end_pos_p151 = (655, 151)
line_start_pos_p152 = (645, 159)
line_end_pos_p152 = (655, 166)
# флаг цикла отображения
mainLoop = True
while mainLoop:
for event in pygame.event.get():
if event.type == QUIT: # QUIT-ЗАВЕРШЕНИЕ РАБОТЫ ПРОГРАММЫ
mainLoop = False # меняем флаг
# формируем кадр
screen.fill(bgcolor) # фон
w = 5
x4 = 2
y4 = 18
z4 = 30
c4 = 4
for j in range(w):
lines_color6 = (25 + z4, 25 + x4, 112 - y4) # бордовый
line_start_pos6 = (0, 0 + c4)
line_end_pos6 = (800, 0 + c4)
x4 += 2
y4 -= 15
z4 += 30
c4 += 9
pygame.draw.line(screen, lines_color6,line_start_pos6,line_end_pos6,9)
w = 7
x3 = y3 = z3 = c3 = 4
for j in range(w):
lines_color7 = (178 + z3, 34 + x3, 34 - y3) # бордовый
line_start_pos7 = (0, 42 + c3)
line_end_pos7 = (800, 42 + c3)
x3 += 6
y3 -= 6
z3 += 10
c3 += 6
pygame.draw.line(screen, lines_color7,line_start_pos7,line_end_pos7,6)
k = 9
x1 = y1 = c1 = 4
for j in range(k):
lines_color9 = (255, 69 + x1, 0 + y1) # оранжевый
line_start_pos9 = (0, 90 + c1)
line_end_pos9 = (800, 90 + c1)
x1 += 12
y1 += 4
c1 += 20
pygame.draw.line(screen,lines_color9,line_start_pos9,line_end_pos9,20)
n = 10
x2 = y2 = c2 = 4
for i in range(n):
lines_color8 = (255, 165 + x2, 0 + y2) # оранжевый(светллее)
line_start_pos8 = (0, 255 + c2)
line_end_pos8 = (800, 255 + c2)
x2 += 4
y2 += 10
c2 += 20
pygame.draw.line(screen,lines_color8,line_start_pos8,line_end_pos8,20)
pygame.draw.circle(screen, circle_color, circle_pos, circle_radius, circle_width)
pygame.draw.rect(screen, rect_6_color, rect_6_rect, rect_1_width)
pygame.draw.rect(screen, rect_7_color, rect_7_rect, rect_1_width)
# закончили с фоном
# дерево3
circle_pos_der4 = (40, 200)
circle_width_der4 = 0
pygame.draw.circle(screen, circle_color_der4, circle_pos_der4, circle_radius_der4, circle_width_der4)
pygame.draw.circle(screen, circle_color_der2, circle_pos_der4, circle_radius_der4, 2)
# ствол
pygame.draw.line(screen,lines_color,line_start_pos11,line_end_pos11,23)
pygame.draw.polygon(screen, poligon_color, poligon_points13, poligon_width)
pygame.draw.polygon(screen, poligon_color, poligon_points14, poligon_width)
# тень
pygame.draw.line(screen,lines_color12,line_start_pos12,line_end_pos12,5)
pygame.draw.polygon(screen, poligon_color12, poligon_points12, poligon_width12)
# дерево1
circle_pos_der1 = (100, 300)
circle_width_der = 0
pygame.draw.circle(screen, circle_color_der, circle_pos_der1, circle_radius_der, circle_width_der)
pygame.draw.circle(screen, circle_color_der2, circle_pos_der1, circle_radius_der, circle_width_der2)
# ствол
pygame.draw.line(screen,lines_color,line_start_pos,line_end_pos,14)
pygame.draw.polygon(screen, poligon_color, poligon_points1, poligon_width)
pygame.draw.polygon(screen, poligon_color, poligon_points2, poligon_width)
# тень
pygame.draw.line(screen,lines_color4,line_start_pos4,line_end_pos4, 6)
pygame.draw.polygon(screen, poligon_color5, poligon_points5, poligon_width5)
# дерево2
circle_pos_der3 = (200, 340)
circle_width_der = 0
pygame.draw.circle(screen, circle_color_der3, circle_pos_der3, circle_radius_der3, circle_width_der3)
pygame.draw.circle(screen, circle_color_der2, circle_pos_der3, circle_radius_der3, circle_width_der2)
# ствол
pygame.draw.line(screen,lines_color,line_start_pos3, line_end_pos3, 14)
pygame.draw.polygon(screen, poligon_color, poligon_points3, poligon_width)
pygame.draw.polygon(screen, poligon_color, poligon_points4, poligon_width)
# тень
pygame.draw.line(screen,lines_color5, line_start_pos5, line_end_pos5, 5)
pygame.draw.polygon(screen, poligon_color6, poligon_points6, poligon_width6)
# птицы
pygame.draw.line(screen, lines_color_p14, line_start_pos_p14, line_end_pos_p14, 3)
pygame.draw.line(screen, lines_color_p14, line_start_pos_p15, line_end_pos_p15, 3)
pygame.draw.line(screen, lines_color_p14, line_start_pos_p141, line_end_pos_p141, 3)
pygame.draw.line(screen, lines_color_p14, line_start_pos_p142, line_end_pos_p142, 3)
pygame.draw.line(screen, lines_color_p14, line_start_pos_p151, line_end_pos_p151, 3)
pygame.draw.line(screen, lines_color_p14, line_start_pos_p152, line_end_pos_p152, 3)
circle_pos_p1 = (600, 150)
circle_width_p1 = 0
pygame.draw.circle(screen, circle_color_p1, circle_pos_p1, circle_radius_p1, circle_width_p1)
circle_pos_p11 = (562, 145)
pygame.draw.circle(screen, circle_color_p1, circle_pos_p11, circle_radius_p11, circle_width_p1)
circle_pos_p12 = (555, 145)
pygame.draw.circle(screen, circle_color_p12, circle_pos_p12, circle_radius_p12, circle_width_p1)
circle_pos_p13 = (555, 145)
pygame.draw.circle(screen, circle_color_p1, circle_pos_p13, circle_radius_p13, circle_width_p1)
poligon_points_p1 = [(548, 143), (548, 153), (530, 149)]
pygame.draw.polygon(screen, poligon_color_p1, poligon_points_p1, poligon_width_p1)
pygame.draw.polygon(screen, circle_color_p1, poligon_points_p1, 2)
pygame.draw.line(screen, lines_color_p1, line_start_pos_p1, line_end_pos_p1, 3)
pygame.draw.line(screen,lines_color_p1,line_start_pos_p11,line_end_pos_p11,3)
pygame.time.wait(25)
pygame.display.update() # отображение кадра
pygame.quit()



Дата добавления: 2022-04-12; просмотров: 117;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.138 сек.