Форум программистов, компьютерный форум, киберфорум
Python: Tkinter
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 18.10.2020
Сообщений: 3

После окончания игры, код начинается заново

12.06.2021, 13:55. Показов 1018. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import pygame
import random
 
pygame.init()
 
 
def draw_grid(scr):
    pygame.draw.line(scr, (0, 0, 0), (100, 0), (100, 300), 3)
    pygame.draw.line(scr, (0, 0, 0), (200, 0), (200, 300), 3)
    pygame.draw.line(scr, (0, 0, 0), (0, 100), (300, 100), 3)
    pygame.draw.line(scr, (0, 0, 0), (0, 200), (300, 200), 3)
 
 
def draw_tic_tac_toe(scr, items):
    for i in range(3):
        for j in range(3):
            if items[i][j] == "0":
                pygame.draw.circle(scr, (255, 0, 0), (j * 100 + 50, i * 100 + 50), 45)
            elif items[i][j] == "x":
                pygame.draw.line(scr, (0, 0, 255), (j * 100 + 5, i * 100 + 5), (j * 100 + 95, i * 100 + 95), 3)
                pygame.draw.line(scr, (0, 0, 255), (j * 100 + 95, i * 100 + 5), (j * 100 + 5, i * 100 + 95), 3)
 
 
def get_win_check(fd, symbol):
    flag_win = False
    for line in fd:
        if line.count(symbol) == 3:
            flag_win = True
    for i in range(3):
        if fd[0][i] == fd[1][i] == fd[2][i] == symbol:
            flag_win = True
    if fd[0][0] == fd[1][1] == fd[2][2] == symbol:
        flag_win = True
    if fd[0][2] == fd[1][1] == fd[2][0] == symbol:
        flag_win = True
    return flag_win
 
 
SCREEN_SIZE = (300, 300)
 
window = pygame.display.set_mode(SCREEN_SIZE)
screen = pygame.Surface(SCREEN_SIZE)
 
pygame.display.set_caption("Крестики-нолики")
screen.fill((255, 255, 255))
 
field = [["", "", ""],
         ["", "", ""],
         ["", "", ""]]
mainloop = True
game_over = False
 
while mainloop:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            mainloop = False
 
        if event.type == pygame.MOUSEBUTTONDOWN and not game_over:
            pos = pygame.mouse.get_pos()
            if field[pos[1] // 100][pos[0] // 100] == "":
                field[pos[1] // 100][pos[0] // 100] = "x"
                x, y = random.randint(0, 2), random.randint(0, 2)
                while field[x][y] != "":
                    x, y = random.randint(0, 2), random.randint(0, 2)
                field[x][y] = "0"
 
            player_win = get_win_check(field, "x")
            ai_win = get_win_check(field, "0")
            if player_win or ai_win:
                game_over = True
                if player_win:
                    pygame.display.set_caption("Вы победили")
                else:
                    pygame.display.set_caption("Компьютер победил")
            elif field[0].count("x") + field[0].count("0") + field[1].count("x") + \
                    field[1].count("0") + field[2].count("x") + field[2].count("0") == 8:
                game_over = True
                pygame.display.set_caption("Ничья")
 
    draw_tic_tac_toe(screen, field)
    draw_grid(screen)
    window.blit(screen, (0, 0))
    pygame.display.update()
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.06.2021, 13:55
Ответы с готовыми решениями:

Как заставить программу заново запускаться после окончания всех действий?
Код: #include <iostream> #include <cstdlib> using namespace std; main () { string a,b,c,d; cout <<"I have a"; cin >>a; ...

После окончания таймера на 1 час начинается таймер на 24 часа
if(!empty($_POST)) { $time = 60; $hour_work = $_POST * $time; $time_work = time() + ($hour_work*60*1); mysql_query("UPDATE...

Переход на форму после окончания игры Пятнашки
Суть вопроса состоит в том, что нужно перейти на форму 2 автоматически , когда все будет собрано в правильной последовательности. Вот код...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.06.2021, 13:55
Помогаю со студенческими работами здесь

Поиск слова в тексте не начинается заново
Подскажите, как можно реализовать такую функцию. Чтоб поиск по тексту производился по нескольким словам и не начинал сначала. Вот например....

Установка Windows XP постоянно начинается заново
При включение компьютера в bios, там вроде всё правильно ставлю в настройках, и начинаю установку. Когда компьютер restart, компьютер...

Как вставить код из произвольного поля сразу после окончания поста?
Добрый день. Хочу вставить код из произвольного поля путем <?php echo get_post_meta($post->ID, 'name_field', true); ?>вставляю...

Ассемблерная вставка в Си. При возврате управления основной программе, выполнения asm-кода начинается заново (зациклив.)
/* cpuid.c */ #include <stdio.h> #include "cpuid.h" void cpuid_check (void) { printf ("CPUID checked\n"); asm...

Есть такой код для игры 2048 на C++ в консоли, но после компиляции, после введения имени игрока все крашится, в чем беда
#include <stdio.h> #include <locale.h> #include <stdlib.h> #include <conio.h> #include <math.h> #include <time.h> #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru