IT-CUBE



Входное тестирование VR/AR https://forms.gle/d3VfjgmAcSfoxFMfA
Ввходное тестирование https://forms.gle/MYDVv2yAZ849qz4L6


Работа со строками: https://forms.gle/ydY3AViFPbm33j9a7

Алгоритм модели игры крестики/нолики

  1. Спроектируйте модель игры крестики-нолики. Для этого создайте двумерный (квадратный) список 3*3, заполните его минусами.

  2. Выведите список построчно, без скобок и запятых

  3. Будем в цикле имитировать ходы игроков.

  4. Вводим ход первого игрока - координаты клетки, в которую он поставит свой крестик.

  5. Проверяем, пустая ли клетка (они помечены минусами). Если клетка пустая, то устанавливаем в неё крестик, выводим сообщение, что игрок 1 походил в клетку с координатами … Выводим игровое поле.  Проверяем, выиграл ли он. Если да, то выводим сообщение об этом и прерываем игру. Для досрочного выхода из цикла используем оператор break.

  6. Если клетка, в которую попытался сходить игрок 1 была уже занята, ему нужно предоставить возможность сходить заново.  Подсказка: можно считать количество состоявшихся ходов и по остатку от деления на 2 определять, какой игрок должен сейчас ходить. Не забудьте увеличить счётчик на 1, когда ход состоялся. 

  7. Если первый походил, но не выиграл, проводим аналогичную работу со вторым игроком, который играет ноликами.

  8. Предусмотрите, чтобы в случае, когда игра заканчивается в ничью, игровой цикл прерывался с соответствующим сообщением.


Модель игры Крестики-Нолики
field = [['-']*3  for i in range(3)]
for i in range(3):
print(*field[i])

hod=0
win=False
for i in range(100):
x=int(input('Введите номер строки'))-1
y=int(input('Введите номер столбца'))-1
if x<0 or x>2 and y<0 or y>2:
print('Введите корректные координаты')
continue

if field[x][y] !="-":
print('Клетка занята')
continue

if hod%2==0:
field[x][y]="x"
else:
field[x][y] = "o"
hod+=1

for i in field:
print()
for j in i:
print(j,end=' ')
print()
print()
for i in range(3):
if field[i][0]==field[i][1]==field[i][2]=='x' or field[0][i]==field[1][i]==field[2][i]=='x':
win=True
if win:
if hod%2==0:
print("Нолики")
else:
print("Крестики")
break


Модель игры морской бой
field = [[0]*40 for i in range(40)]
a = 3
b = 5
field[a][b] = field[a - 1][b] = field[a + 1][b + 1] = 1
for i in range(40):
print(*field[i], sep='')
for i in range(a-1, a + 2):
for j in range(b - 1, b + 2):
if field[i][j] == 0:
field[i][j] = "x"
elif field[i][j] == 1 and i == a and j == b:
field[i][j] = 2
print()
for i in range(40):
print(*field[i], sep='')

count = 0
for i in range(40):
for j in range(40):
if field[i][j] == 'x':
count += 1

print(count)

Шаблон программы Pygame

import pygame #импортируем библиотеку pygame


size=(600,400)                        #задаем размер окна

screen=pygame.display.set_mode(size)  #инициализируем окно

pygame.display.set_caption(“Моя программа”) #название окна

img=pygame.image.load(“image.jpg”)    #переменная для иконки 

pygame.display.set_icon(img)       #размещаем иконку в шапке нашего окна



while True: #создаем цикл событий

  for event in pygame.event.get():

     if event.type == pygame.QUIT: #закрытие экрана

         quit() #закрытие экрана






import pygame
from ball import Ball
pygame.init()

W,H=1000,700
screen = pygame.display.set_mode(W,H)
clock=pygame.time.Clock()
FPS=60

speed=1
b1=Ball(W//2,'lib/fox.jpeg')
black=(0,0,0)



while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
screen.fill(black)
screen.blit(b1.image,b1.rect)
pygame.display.updade()

clock.tick(FPS)

if b1.rect.y<H-20:
b1.rect.y+=speed
else:
b1.rect.y=0



Крестики/нолики
import pygame
pygame.init()
FPS = 60
clock = pygame.time.Clock()
sfild = 100
otstup = 10
size = (sfild*3+otstup*4, sfild*3+otstup*4)

okno = pygame.display.set_mode(size)
pygame.display.set_caption('СТИХИЙНИКИ ОНЛАЙН ИГРАТЬ БЕЗ РЕКЛАМЫ И РЕГЕСТРАЦИИ')
img1=pygame.image.load('icon.png')
pygame.display.set_icon(img1)



def win(a):
    global e
    global doo
    r = 0
    if a[0][0] == r and a[0][1] == r and a[0][2] == r or a[1][0] == r and a[1][1] == r and a[1][2] == r or a[2][0] == r and a[2][1] == r and a[2][2] == r or a[0][0] == r and a[1][0] == r and a[2][0] == r or a[0][1] == r and a[1][1] == r and a[2][1] == r or a[0][2] == r and a[1][2] == r and a[2][2] == r or a[0][0] == r and a[1][1] == r and a[2][2] == r or a[0][2] == r and a[1][1] == r and a[2][0] == r:
        e = 1
        print("нолики винеры")
    r = 'x'
    if a[0][0] == r and a[0][1] == r and a[0][2] == r or a[1][0] == r and a[1][1] == r and a[1][2] == r or a[2][0] == r and a[2][1] == r and a[2][2] == r or a[0][0] == r and a[1][0] == r and a[2][0] == r or a[0][1] == r and a[1][1] == r and a[2][1] == r or a[0][2] == r and a[1][2] == r and a[2][2] == r or a[0][0] == r and a[1][1] == r and a[2][2] == r or a[0][2] == r and a[1][1] == r and a[2][0] == r:
        e = 1
        print("krestiki wineri")
    elif doo == 9:
        print('nu, loxi oba')

def main():
    global e
    global doo
    iq = 0
    d1 = 0
    d2 = 0
    e = 0
    doo = 0
    a = [['-']*3 for _ in range(3)] # поле 50*50
    r = True
    for j in range(3):
                            for i in range(3):
                                color = (255, 255, 255)
                                pygame.draw.rect(okno, (color),  (i*sfild + otstup*(i+1), sfild*j+otstup*(j+1), sfild , sfild))
    while r:
        if e == 0:
            
                for event in pygame.event.get():
                    if event.type == pygame.QUIT:
                        r = False
                    if event.type == pygame.MOUSEBUTTONDOWN:
                            
                        x, y = pygame.mouse.get_pos()
                        d1 = x // (sfild + otstup)
                        d2 = y // (sfild + otstup)
                        if iq == 0 and a[d2][d1] == '-':
                            a[d2][d1] = 'x'
                            iq = 1
                        elif a[d2][d1] == '-':
                            a[d2][d1] = 0
                            iq = 0
                        else:
                            print('лох, просрал ход на занятую клетку. Пошёл нахуй бот')
                        doo +=  1
                        win(a)
                        okno.fill((0, 0, 0))
                        clock.tick(FPS)
                        for j in range(3):
                            for i in range(3):
                                if a[j][i] == 'x':
                                    color = (0, 120, 250)
                                    pygame.draw.line(okno, (color),  (i*sfild + otstup*(i+1)+sfild//10, sfild*j+otstup*(j+1)+sfild//10), (i*sfild + otstup*(i+1)+sfild-sfild//10, sfild*j+otstup*(j+1)+sfild-sfild//10), 10)
                                    pygame.draw.line(okno, (color),  (i*sfild + otstup*(i+1)-sfild//10+sfild, sfild*j+otstup*(j+1)+sfild//10), (i*sfild + otstup*(i+1)+sfild+sfild//10-sfild, sfild*j+otstup*(j+1)+sfild-sfild//10), 10)
                                elif a[j][i] == 0:
                                    color = (255, 0, 0)
                                    pygame.draw.circle(okno, (color),  (i*sfild + otstup*(i+1) + sfild//2, sfild*j+otstup*(j+1) + sfild // 2),  50,  5)
                                else:
                                    color = (255, 255, 255)
                                    pygame.draw.rect(okno, (color),  (i*sfild + otstup*(i+1), sfild*j+otstup*(j+1), sfild , sfild)) #3-ий параметр - левый верхн угол, ширина и высота
                pygame.display.update()
        if e == 1:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    r = False
    pygame.quit()

if __name__ == "__main__":
    main()





СНЕГ
Основная программа
import pygame
import sys
import snow

FPS=60
W=600
H=800
sc=pygame.display.set_mode((W,H))
pygame.display.set_caption('hello')
clock=pygame.time.Clock()

group=pygame.sprite.Group()

a=Snow()
group.add(a)


while True:
for i in pygame.event.get():
if i.type==pygame.QUIT:
pygame.quit()
sys.exit()
for s in group:
s.draw(sc)



pygame.clock.tick(FPS)


КЛАСС СНЕГ
import pygame.sprite
import random

class Snow(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.x=random.randint(0,600)
self.y=0
self.r=random.randint(2,5)

def draw(self,sc):
pygame.draw.ellipse(sc,(255,0,0),self.x,self.y,self.r,self.r)

Комментарии