В своєму блозі я розміщую власні: проекти по програмуванню, 3d-моделюванню, картини, вірші та пісні
Поиск в блоге
пʼятниця, 6 листопада 2020 р.
середа, 4 листопада 2020 р.
вівторок, 3 листопада 2020 р.
середа, 26 серпня 2020 р.
Змейка на Python Pygame
https://www.youtube.com/watch?v=x41O-TP-9BU&list=PLQAt0m1f9OHun6Q9uZPNryl5gXm1ng_kd&index=1
import pygame
import sys
import random
import time
FPS = 5
SIZE_BLOCK = 20
FRAME_COLOR = (0, 0, 100)
WHITE = (255,255,255)
BLUE = (100,100,255)
blue = (0,0,100)
red = (255,0,255)
COUNT_BLOCK = 20
MARGIN = 1
x=10
y=10
napr_x = 1
napr_y = 0
size = [450,450]
screen = pygame.display.set_mode(size)
pygame.display.set_caption('Snake Game')
clock = pygame.time.Clock()
x_food = random.randint(0,19)
y_food = random.randint(0,19)
class SnakeBlock:
def __init__(self,x,y):
self.x=x
self.y=y
snake_blocks = [SnakeBlock(9,8),SnakeBlock(9,9),SnakeBlock(9,10)]
субота, 15 серпня 2020 р.
Крестики нолики на Python Pygame
Два игрока
https://www.youtube.com/watch?v=GElUzJ7-bcI
import pygame
import sys
pygame.init()
size_block = 100
margin = 15
width = height = size_block*3+margin*4
blue = (0,0,255)
white = (255,255,255)
red= (255,0,0)
screen = pygame.display.set_mode((width,height))
pygame.display.set_caption('Tic tac toe')
mas = [[0]*3 for i in range(3)]
query=0
def check_win(mas):
#x
if mas[0][0]=='x' and mas[0][1]=='x' and mas[0][2]=='x':
print('Крестики выиграли')
if mas[1][0]=='x' and mas[1][1]=='x' and mas[1][2]=='x':
print('Крестики выиграли')
if mas[2][0]=='x' and mas[2][1]=='x' and mas[2][2]=='x':
print('Крестики выиграли')
#
if mas[0][0]=='x' and mas[1][0]=='x' and mas[2][0]=='x':
print('Крестики выиграли')
if mas[0][1]=='x' and mas[1][1]=='x' and mas[2][1]=='x':
print('Крестики выиграли')
if mas[0][2]=='x' and mas[1][2]=='x' and mas[2][2]=='x':
print('Крестики выиграли')
#
if mas[0][0]=='x' and mas[1][1]=='x' and mas[2][2]=='x':
print('Крестики выиграли')
if mas[0][2]=='x' and mas[1][1]=='x' and mas[2][0]=='x':
print('Крестики выиграли')
#o
if mas[0][0]=='o' and mas[0][1]=='o' and mas[0][2]=='o':
print('Нолики выиграли')
if mas[1][0]=='o' and mas[1][1]=='o' and mas[1][2]=='o':
print('Нолики выиграли')
if mas[2][0]=='o' and mas[2][1]=='o' and mas[2][2]=='o':
print('Нолики выиграли')
#
if mas[0][0]=='o' and mas[1][0]=='o' and mas[2][0]=='o':
print('Нолики выиграли')
if mas[0][1]=='o' and mas[1][1]=='o' and mas[2][1]=='o':
print('Нолики выиграли')
if mas[0][2]=='o' and mas[1][2]=='o' and mas[2][2]=='o':
print('Нолики выиграли')
#
if mas[0][0]=='o' and mas[1][1]=='o' and mas[2][2]=='o':
print('Нолики выиграли')
if mas[0][2]=='o' and mas[1][1]=='o' and mas[2][0]=='o':
print('Нолики выиграли')
while True:
for event in pygame.event.get():
if event.type==pygame.QUIT:
pygame.quit()
sys.exit(0)
elif event.type==pygame.MOUSEBUTTONDOWN:
x_mouse,y_mouse = pygame.mouse.get_pos()
col = x_mouse//(size_block+margin)
row = y_mouse//(size_block+margin)
if mas[row][col]==0:
if query%2==0:
mas[row][col]='x'
else:
mas[row][col]='o'
query+=1
for row in range(3):
for col in range(3):
x = col*size_block+(col+1)*margin
y = row*size_block+(row+1)*margin
pygame.draw.rect(screen,blue,(x,y,size_block,size_block))
if mas[row][col]=='x':
pygame.draw.line(screen,red,(x+5,y+5),(x+size_block-5,y+size_block-5),8)
pygame.draw.line(screen,red,(x+size_block-5,y+5),(x+5,y+size_block-5),8)
elif mas[row][col]=='o':
pygame.draw.circle(screen,red,(x+size_block//2,y+size_block//2),size_block//2-3,8)
#
check_win(mas)
if query == 9:
print('Piece')
pygame.display.update()
понеділок, 10 серпня 2020 р.
Рыцари и лжецы Python
На острове Буяне жили N человек, каждый из которых был либо рыцарем либо лжецом, встали в круг. Рыцари говорят только правду, лжецы всегда только лгут. Каждому человеку в кругу задали вопрос: «Кто ты и кто твой сосед слева: рыцарь или лжец?» При этом каждый человек сказал, что он – рыцарь. А ответы всех людей о левом соседе были записаны в следующем формате: 1 – рыцарь 0 – лжец. Все ответы записаны в строку через пробел. Последний спрошенный человек отвечал на вопрос о первом.
Написать программу, которая по ответам жителей определяет, какое количество рыцарей заведомо присутствует в круге.
Входные данные
Первое число ( 1 < N ≤ 255 ) - количество жителей. Следующие N чисел (0 или 1), разделенных пробелами - ответы жителей.
Примеры
Вход | Выход |
4 0 1 0 1 | 2 |
Кривая Минковского на Python
http://judge.mipt.ru/mipt_cs_on_python3/labs/lab8.html
Кривая и снежинка Коха на Python
http://judge.mipt.ru/mipt_cs_on_python3/labs/lab8.html
import turtle
def kr_Koxa(x,depth):
if depth==1:
#turtle.left(60)
return
turtle.forward(x)
turtle.left(60)
turtle.forward(x)
turtle.left(-120)
turtle.forward(x)
turtle.left(60)
turtle.forward(x)
if depth==5 or depth%3==0:
turtle.left(60)
elif depth%2==0:
turtle.left(-120)
return kr_Koxa(x,depth-1)
kr_Koxa(30,5)
неділя, 26 липня 2020 р.
Наибольший общий делитель Python
Формат входных данных
Формат выходных данных
Примеры
Ввод | Вывод |
30 18 | 6 |
Ввод | Вывод |
1071 462 | 21 |
https://www.youtube.com/watch?v=n9oXAOvP3Xs
Задача Первое число трибоначчи, превосходящее заданное на Python
0
.Формат входных данных
Формат выходных данных
Примеры
Ввод | Вывод |
10 | 7 |
Ввод | Вывод |
0 | 2 |
Ввод | Вывод |
13 | 8 |
Определение типа треугольника на Python
Формат входных данных
Формат выходных данных
Примеры
Ввод | Вывод |
3 4 5 | right |
субота, 25 липня 2020 р.
Задачa D-Обработка массива чисел на Python
Формат входных данных
Формат выходных данных
Примеры
Ввод | Вывод |
1 2 3 4 5 6 # | 3.5 6 1 3 |
пʼятниця, 24 липня 2020 р.
Задача A-Принадлежность точки кругу на Python
Формат входных данных
Формат выходных данных
Примеры
Ввод | Вывод |
0 0 1
| YES
|
Ввод | Вывод |
-1 3 1
| NO
|
Модель перевернутого маятника на Python
from math import *
window = gr.GraphWin("Модель перевернутого маятника", 800, 800)
len = 300
angle = pi/4
aVel = 0
aAcc = 0
aVel2=0
aAcc2=0
g = 9.8
m=0.5
M=1
b=m/(m+M)
j=m*len*len
#x=400
#y=50
x2=0
y2=0
def clear_window():
rectangle = gr.Rectangle(gr.Point(0, 0), gr.Point(800, 800))
rectangle.setFill('yellow')
rectangle.draw(window)
while(True):
clear_window()
x1 = 400+len * sin(angle)
y1 = 50+len * cos(angle)
my_line = gr.Line(gr.Point(400+x2,360+y2), gr.Point(x1, y1))
my_circle1 = gr.Circle(gr.Point(x1, y1), 10)
#my_rectangle = gr.Rectangle(gr.Point(360, 360), gr.Point(440, 400))
my_circle2 = gr.Circle(gr.Point(400+x2,360+y2), 20)
my_line.draw(window)
my_circle1.draw(window)
my_circle2.draw(window)
#my_rectangle.draw(window)
angle+= aVel
aVel+=aAcc
aAcc = (g*sin(angle)+b*len*aVel*aVel*sin(angle)*cos(angle))/(len*(1+b*cos(angle)**2))
x2+=aVel2
aVel2+=aAcc2
aAcc2=b*(len*aVel*aVel*sin(angle)-g*sin(angle)*cos(angle))/(1+b*cos(angle)**2)
https://habr.com/ru/post/472588/
Моделирование математического маятника на Python
from math import *
window = gr.GraphWin("Модель математического маятника", 800, 800)
len = 300
angle = pi/4
aVel = 0
aAcc = 0
g = 9.8
damping = 0.99
def clear_window():
rectangle = gr.Rectangle(gr.Point(0, 0), gr.Point(800, 800))
rectangle.setFill('yellow')
rectangle.draw(window)
while(True):
clear_window()
x = 400+len * sin(angle)
y = len * cos(angle)
my_line = gr.Line(gr.Point(400,0), gr.Point(x, y))
my_circle = gr.Circle(gr.Point(x, y), 10)
my_line.draw(window)
my_circle.draw(window)
#aAcc = -0.01*sin(angle)
aAcc = (-1*g/len)*sin(angle)
aVel*=damping
aVel+=aAcc
angle+= aVel
http://judge.mipt.ru/mipt_cs_on_python3/labs/lab5.html
https://www.youtube.com/watch?v=9iaEqGOh5WM
середа, 22 липня 2020 р.
Задача I-Максимум последовательности на Python
Формат входных данных
Формат выходных данных
Задача H-Количество четных элементов на Python
Формат входных данных
Формат выходных данных
вівторок, 21 липня 2020 р.
Программирование задач Ейлера (задача 1) - Числа, кратные 3 или 5
субота, 14 березня 2020 р.
Я нажму на тормоза, позову тебя со мною
Одеялом же любови, тепло я тебя укрою,
Звездочку сниму с небес, подарю тебе на счастье,
И отправимся мы в лес, по тропинке сквозь ненастья.
Бури, грезы, мы забудем, окунувшись с головою,
И подарим нашим детям, окрыленные душою,
Мир улыбок, счастья, детства, что напомнит в день тревоги,
Не одни же мы на свете, вдаль идут идут дороги.
О любви расскажем людям, чтоб они не забывали,
Первые же поцелуи, лаской мир весь согревали,
Мир тогда наполнит летом, крылья вырастут, как птицы,
Мы взмахнем и вдаль напиться полетим как две жар-птицы.
пʼятниця, 13 березня 2020 р.
Исповедь пред Богом
Покажите мне дорогу к благодатному лучу,
Что пронзит мое он сердце, возродит душевный строй,
Много должен я пред Богом, залечи пчелиный рой.
И грехи мои исправи, и прости обиды всем,
Причинил, теперь я каюсь, искупи грехи совсем.
Чашу я свою уж выпил, до горла наполнена,
Чадом отравил я душу, погаси его сперва.
Оживи Ты мое сердце, радости ему прибавь,
И расторгни сети ада, в воду лед его расплавь.
Не отринь молитвы этой, бедной нищенской ходьбой,
Окрыли его и к свету, дай ему любви покой.
субота, 15 лютого 2020 р.
Рассказ о любви. Шум дождя. Автор Максим Драган
четвер, 13 лютого 2020 р.
Сомнение в жизни верующего человека
вівторок, 11 лютого 2020 р.
Сегодня мой день рождения
День появления на свет,
День радости наших родителей,
И тех кого с нами нет.
Сегодня мой день рождения,
Накрыт праздничный стол,
Все поздравляют весело,
И радость эта на целый год.
Года идут, проходят не смелые,
Часть жизни уже прошла.
Только сердце остается спелое,
Его еще никто не сорвал.
Сегодня мой день рождения,
Но я благодарю всех вас,
Кто был со мной в эти годы познания,
Будьте такими же, пусть годы не старят нас.