Игра – ХО в консоле


deftic_tac_toe():
board = [1, 2, 3, 4, 5, 6, 7, 8, 9]
end = False
win_commbinations=((0,1,2),(3,4,5),(6,7,8), (0,3,6), (1,4,7), (2,5,8), (0,4,8), (2,4,6))

defdraw():
print(board[0], board[1], board[2])
print(board[3], board[4], board[5])
print(board[6], board[7], board[8])
print()

defp1():
n = choose_number()
ifboard[n] == "X" orboard[n] == "O":
print("\nYou can't go there. Try again")
p1()
else:
board[n] = "X"

defp2():
n = choose_number()
ifboard[n] == "X" orboard[n] == "O":
print("\nYou can't go there. Try again")
p2()
else:
board[n] = "O"

defchoose_number():
while True:
while True:
a = input()
try:
a = int(a) - 1
ifa inrange(0, 9):
returna
else:
print("\nThat's not on the board. Try again")
continue
except
ValueError:
print("\nThat's not a number. Try again")
continue

defcheck_board():
count = 0
fora inwin_commbinations:
ifboard[a[0]]==board[a[1]]==board[a[2]]=="X":
print("Player 1 Wins!\n")
print("Congratulations!\n")
return True

ifboard[a[0]]==board[a[1]]==board[a[2]]=="O":
print("Player 2 Wins!\n")
print("Congratulations!\n")
return True
for
a inrange(9):
count += board[a] == "X" orboard[a] == "O"
if
count == 9:
print("The game ends in a Tie\n")
return True
while not
end:
draw()
end = check_board()
ifend == True:
break
print("Player 1 choose where to place a cross")
p1()
print()
draw()
end = check_board()
ifend == True: break
print("Player 2 choose where to place a nought")
p2()
print()
ifinput("Play again (y/n)\n") == "y":
print()
tic_tac_toe()
tic_tac_toe()

Полет мяча

import pygame
s = w, h = 1600, 600
sp = [3, 3]
black = 255, 255, 255
scr = pygame.display.set_mode(s)
tup = pygame.image.load("1.png")
t_r = tup.get_rect()
while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()
t_r = t_r.move(sp)
if t_r.left < 0 or t_r.right > w:
sp[0] = -sp[0]
if t_r.top < 0 or t_r.bottom > h:
sp[1] = -sp[1]
scr.fill(black)
scr.blit(tup, t_r)
pygame.display.flip()


«Полет мяча подуглом в свободном падении»

from tkinter import*
fromrandom importrandrange asrnd, choice
root = Tk()
root.geometry('900x740+100+100')
canv = Canvas(bg='aqua')
canv.pack(fill=BOTH, expand=1)
vx = 2
vy = 1
r = 25
x = y = 50
vX = -2
vY = -1
R = 25
X = 780
Y = 70
canv.create_rectangle(50 - r, 50 - r, 850 + r, 690 + r)
canv.create_rectangle(50-r,650+r,850+r,690+r,\ fill='green')

defupdate():
globalx, y, vx, vy
x += vx
y += vy
ifx > 850:
vx = -vx
x = 850
ifx < 50:
vx =-vx
x = 50
ify > 650:
vy *= -0.975
y = 650
vx *= 0.975
ify < 50:
vy = -vy
y = 50
vy += 1
canv.delete('ball')
canv.create_oval(x-r, y-r,x+r,y+r, fill='yellow', \ tag='ball')
canv.delete('AY')
canv.create_oval(X-50,Y-20,X+50,Y+70, \ fill='orange',outline="aqua", \ tag='AY')
canv.delete('Ay')
canv.create_oval(X-65,Y-15,X+25,Y+80,fill='aqua', \ outline="aqua", tag='Ay')
root.after(30, update)
defsign(d) : return1 ifd>0 else1
def click(event):
globalvy, vx
dx = event.x - x
dy = event.y - y
ifdx != 0 anddy != 0:
vx = 20 * sign(dx)
vy = 20 * sign(dy)canv.bind('<1>', click)
update()
root.mainloop()

 

«Вращение рисунка с помощью мыши»

На экране изображена кошка и с помощью мыши производится разворот головы мыши.

from tkinter import*
c = Canvas(width=800, height=800, cursor = "pencil")
c.create_line(400, 800, 400, 0, width=2, arrow=LAST)
c.create_line(0, 400, 800, 400, width=2, arrow=LAST)
c.pack()
xy = [(304, 247), (343, 145), (370, 176), (410, 166),(456, 176), (484, 132), (505, 256), (451, 298), (353, 301)]
polygon_item = c.create_polygon(xy, outline='brown', fill='peru', width=4)
i=0

defgetangle(event):
dx = c.canvasx(event.x) - center[0]
dy = c.canvasy(event.y) - center[1]
try:
returncomplex(dx, dy) / abs(complex(dx, dy))
exceptZeroDivisionError:
return0.0
defpress(event):
globalstart, i
ifi==0:
x1 = event.x
y1 = event.y
c.create_line(x1-4,y1-4, x1 + 4, y1 + 4, width=2)
c.create_line(x1-4, y1+4, x1 + 4, y1 - 4, width=2)
globalcenter
center = x1, y1
i=1
start = getangle(event)
defmotion(event):
globalstart
угол = getangle(event) / start
offset = complex(center[0], center[1])
newxy = []
forx, y inxy:
v = угол * (complex(x, y) - offset) + offset
newxy.append(v.real)
newxy.append(v.imag)
c.coords(polygon_item, *newxy)
c.bind("<Button-1>", press)
c.bind("<B1-Motion>", motion)
mainloop()

В результате выдаст

«Ловля шариков»

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

from tkinter import *
from random import randrange as rnd, choice
import time
root = Tk()
root.geometry('800x600')
canv = Canvas(root, bg='white')
canv.pack(fill=BOTH, expand=1)
colors = ['#CC6666','#FF9966','#9999FF','#CCCC99']
def new_ball(): # воспроизведение образа нового случайного шара
global x, y, r, kol
canv.delete(ALL)
x = rnd(100, 700)
y = rnd(100, 500)
r = rnd(30, 50)
kol+=1
canv.create_text(20, 20, text=str(points)+' '+str(kol), font='Arial 22')
if points==10 or kol>30:
if points>9 : canv.create_text(400, 300, text=str('YOU WIN'), font='Arial 22')
else : canv.create_text(400, 300, text=str('YOU LOST'), font='Arial 20')
canv.sleep(5)
exit(0)
canv.create_oval(x - r, y - r, x + r, y + r, fill=choice(colors), width=0)
root.after(1000, new_ball)
def click(event): # проверка при нажатии клавиши мыши
global points
if (event.y - y) ** 2 + (event.x - x) ** 2 <= r ** 2:
points += 1
points = 0 # число пойманных шаров
kol = 0 # число изображенных шаров
new_ball()
canv.bind('<Button-1>', click)
mainloop()




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


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

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

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

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