Top.Mail.Ru
Ответы
Аватар пользователя

Информационные технологии

IT делает многое, а с приходом умного искуственного интеллекта будет делать почти все. Область, где технологии часто обновляются каждый год, а иногда каждые пару недель. Здесь делимся советами по осноению новых скилов, спрашиваем технические вопросы и обсуждаем чему научиться, чтобы подготовиться к тому когда ИИ будет делать всю интеллектуальную работу, лучше чем мы.
14302076 постов
139 участников
Аватар пользователя
53 минуты назад
Аватар пользователя
1 час назад
Help (код python)

Всем привет, начинающий кодер, написал код на tkinter:

.

#Библия

import tkinter as tk

import time

#Окно

window = tk.Tk()

window.title('Потусторонняя реальность')

window.state('zoomed')

#Переменные

text1= tk.Label(window, text="П", font=("Arial Bold", 50))

text2 = tk.Label(window, text="Р", font=("Arial Bold", 50))

text3 = tk.Label(window, text="И", font=("Arial Bold", 50))

text4 = tk.Label(window, text="В", font=("Arial Bold", 50))

text5 = tk.Label(window, text="Е", font=("Arial Bold", 50))

text6 = tk.Label(window, text="Т", font=("Arial Bold", 50))

time.sleep(3)

text1.grid(column=0, row=0)

time.sleep(0.5)

text2.grid(column=1, row=0)

time.sleep(0.5)

text3.grid(column=2, row=0)

time.sleep(0.5)

text4.grid(column=3, row=0)

time.sleep(0.5)

text5.grid(column=4, row=0)

time.sleep(0.5)

text6.grid(column=5, row=0)

window.mainloop()

.

он должен делать окно, открывать на весь экран и переписывать название - это работает,
но ещё раз в пол секунды добавлять в ряд "П", "Р",.. пока не будет слово "ПРИВЕТ", но как только я добавляю главную часть с time.sleep() он не работает (окно появляется не сразу)! что мне делать(?

Аватар пользователя
1 час назад
Оцените мою игру на HTML
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
<!DOCTYPE html>
<html lang="ru">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Игра "Стратегия"</title>
    <style>
      body {
        font-family: Arial, sans-serif;
        text-align: center;
        background: #f4f4f4;
        padding: 20px;
      }
      h1 {
        color: #222;
      }
      #scoreboard,
      #status {
        font-size: 20px;
        margin: 10px 0;
      }
      #board {
        display: grid;
        grid-template-columns: repeat(10, 40px);
        grid-gap: 2px;
        margin: auto;
        width: fit-content;
        border: 2px solid #333;
        background: #ccc;
      }
      .cell {
        width: 40px;
        height: 40px;
        background: #fff;
        border: 1px solid #999;
        cursor: pointer;
        transition: background 0.3s, border 0.3s;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 18px;
        font-weight: bold;
      }
      .cell:hover {
        background: #f0f0f0;
      }
      .player1 {
        background-color: lightblue;
      }
      .player2 {
        background-color: lightgreen;
      }
      .winning {
        animation: pulse 1s infinite;
        border: 3px solid red !important;
      }
      @keyframes pulse {
        0% {
          transform: scale(1);
        }
        50% {
          transform: scale(1.1);
        }
        100% {
          transform: scale(1);
        }
      }
      #controls {
        margin-top: 20px;
      }
      button {
        padding: 10px 20px;
        font-size: 16px;
        cursor: pointer;
        border: none;
        background-color: #333;
        color: #fff;
        border-radius: 5px;
        transition: background 0.3s;
        margin: 0 5px;
      }
      button:hover {
        background-color: #555;
      }
      @media (max-width: 500px) {
        #board {
          grid-template-columns: repeat(10, 30px);
          grid-gap: 2px;
        }
        .cell {
          width: 30px;
          height: 30px;
          font-size: 14px;
        }
      }
    </style>
  </head>
  <body>
    <h1>Игра "Стратегия"</h1>
    <div id="scoreboard">Игрок 1: 0 | Игрок 2: 0 | Ничья: 0</div>
    <div id="status">Ход игрока 1</div>
    <div id="board"></div>
    <div id="controls">
      <button id="undoBtn">Отмена хода</button>
      <button id="resetBtn">Новая игра</button>
    </div>
    <audio id="moveSound" src="move.mp3" preload="auto"></audio>
    <audio id="winSound" src="win.mp3" preload="auto"></audio>
    <script>
      const boardSize = 10;
      const winningCount = 5;
      let currentPlayer = 1;
      let gameActive = true;
      let score = { player1: 0, player2: 0, draws: 0 };
      let boardState = new Array(boardSize * boardSize).fill(0);
      let moveHistory = [];

      const boardElement = document.getElementById("board");
      const statusElement = document.getElementById("status");
      const scoreboardElement = document.getElementById("scoreboard");
      const resetBtn = document.getElementById("resetBtn");
      const undoBtn = document.getElementById("undoBtn");
      const moveSound = document.getElementById("moveSound");
      const winSound = document.getElementById("winSound");

      function updateScoreboard() {
        scoreboardElement.textContent = `Игрок 1: ${score.player1} | Игрок 2: ${score.player2} | Ничья: ${score.draws}`;
      }

      function createBoard() {
        boardElement.innerHTML = "";
        for (let i = 0; i < boardSize * boardSize; i++) {
          const cell = document.createElement("div");
          cell.classList.add("cell");
          cell.dataset.index = i;
          cell.addEventListener("click", () => handleCellClick(cell, i));
          boardElement.appendChild(cell);
        }
      }

      function handleCellClick(cell, index) {
        if (!gameActive || boardState[index] !== 0) return;

        if (moveSound) {
          moveSound.currentTime = 0;
          moveSound.play();
        }

        boardState[index] = currentPlayer;
        cell.classList.add(currentPlayer === 1 ? "player1" : "player2");
        moveHistory.push({ index, player: currentPlayer });

        const row = Math.floor(index / boardSize);
        const col = index % boardSize;

        if (checkWin(row, col, currentPlayer)) {
          statusElement.textContent = `Победа игрока ${currentPlayer}!`;
          gameActive = false;
          if (currentPlayer === 1) score.player1++;
          else score.player2++;
          updateScoreboard();
          highlightWinningSequence(row, col, currentPlayer);
          if (winSound) {
            winSound.currentTime = 0;
            winSound.play();
          }
          return;
        }

        if (boardState.every(cell => cell !== 0)) {
          statusElement.textContent = "Ничья!";
          gameActive = false;
          score.draws++;
          updateScoreboard();
          return;
        }

        currentPlayer = currentPlayer === 1 ? 2 : 1;
        statusElement.textContent = `Ход игрока ${currentPlayer}`;
      }

      function checkWin(row, col, player) {
        function countDir(dr, dc) {
          let count = 0;
          let r = row + dr;
          let c = col + dc;
          while (
            r >= 0 &&
            r < boardSize &&
            c >= 0 &&
            c < boardSize &&
            boardState[r * boardSize + c] === player
          ) {
            count++;
            r += dr;
            c += dc;
          }
          return count;
        }

        const directions = [
          { dr: 0, dc: 1 },
          { dr: 1, dc: 0 },
          { dr: 1, dc: 1 },
          { dr: 1, dc: -1 }
        ];

        for (const { dr, dc } of directions) {
          let count = 1;
          count += countDir(dr, dc);
          count += countDir(-dr, -dc);
          if (count >= winningCount) return true;
        }
        return false;
      }

      function highlightWinningSequence(row, col, player) {
        const directions = [
          { dr: 0, dc: 1 },
          { dr: 1, dc: 0 },
          { dr: 1, dc: 1 },
          { dr: 1, dc: -1 }
        ];
        let winningSequence = [];

        for (const { dr, dc } of directions) {
          let sequence = [{ row, col }];
          let r = row + dr;
          let c = col + dc;
          while (
            r >= 0 &&
            r < boardSize &&
            c >= 0 &&
            c < boardSize &&
            boardState[r * boardSize + c] === player
          ) {
            sequence.push({ row: r, col: c });
            r += dr;
            c += dc;
          }
          r = row - dr;
          c = col - dc;
          while (
            r >= 0 &&
            r < boardSize &&
            c >= 0 &&
            c < boardSize &&
            boardState[r * boardSize + c] === player
          ) {
            sequence.push({ row: r, col: c });
            r -= dr;
            c -= dc;
          }
          if (sequence.length >= winningCount) {
            winningSequence = sequence;
            break;
          }
        }

        winningSequence.forEach(pos => {
          const index = pos.row * boardSize + pos.col;
          const cell = boardElement.querySelector(`[data-index='${index}']`);
          if (cell) {
            cell.classList.add("winning");
          }
        });
      }

      function undoMove() {
        if (!gameActive || moveHistory.length === 0) return;
        const lastMove = moveHistory.pop();
        boardState[lastMove.index] = 0;
        const cell = boardElement.querySelector(`[data-index='${lastMove.index}']`);
        if (cell) cell.classList.remove("player1", "player2", "winning");
        currentPlayer = lastMove.player;
        statusElement.textContent = `Ход игрока ${currentPlayer}`;
      }

      function resetGame() {
        boardState = new Array(boardSize * boardSize).fill(0);
        currentPlayer = 1;
        gameActive = true;
        moveHistory = [];
        statusElement.textContent = `Ход игрока ${currentPlayer}`;
        createBoard();
      }

      resetBtn.addEventListener("click", resetGame);
      undoBtn.addEventListener("click", undoMove);

      createBoard();
      updateScoreboard();
    </script>
  </body>
</html>
Аватар пользователя
2 часа назад
Что с ответами?

Я зашёл на ответы, подумал что это очередная ошибка трафика, но через пару секунд понял, что дизайнеры заслуживают чтобы на них заказали докс, сват, деанон, ОМОН, ФБР, ФСБ, снайперов, вагнеров, офицеров, редановцев, вайперов, фурри в памперсах, танкистов, спецназ, ГРУ, спортсменов, чеченских боевиков, СС, ФБИ, ВСУ, КГБ, накаченных таджиков с автоматами, милиционеров, разведчиков, диверсантов, кибершпионов, пограничников, парашютистов, морпехов, артиллеристов, инженеров-саперов, контрразведчиков, наемников, десантников, радистов, военных врачей, пилотов, штурманов, космонавтов, геодезистов, инструкторов по выживанию, пожарных, сантехников, электриков, водителей бронетехники, грузчиков, строителей укреплений, психологов, логистов, переводчиков, судей, следователей, прокуроров, адвокатов, учителей военной подготовки, журналистов военной тематики, инженеров-строителей, ветеринаров, физиотерапевтов, психотерапевтов, офтальмологов, стоматологов, хирургов, анестезиологов, реаниматологов, лаборантов, геологов, гидрологов, метеорологов, экологов, агрономов, зоологов, биологов, химиков, физиков, математиков, программистов, анти-дизайнеров, архитекторов, искусствоведов, историков, философов, лингвистов, педагогов, социологов, экономистов, юристов, политологов, психологов, астрономов, генетиков, нейробиологов, робототехников, нанотехнологов, энергетиков, транспортников, связистов, геодезистов, гидротехников, мелиораторов, лесоводов, охотоведов, рыбоводов, виноделов, пивоваров, кондитеров, поваров, шеф-поваров, барменов, официантов, гостиничников, туристов, гидов, экскурсоводов, спортсменов-профессионалов. любителей спорта, фитнес-тренеров, йогов, массажистов, астрологов, гадалок, психологов-консультантов, психотерапевтов-психоаналитиков, гипнотерапевтов, нутрициологов, диетологов, фитотерапевтов, гомеопатов, акупунктуристов, мануальных терапевтов, реабилитологов, ортопедов, травматологов, стоматологов-ортодонтов, стоматологов-хирургов, стоматологов-педиатров, оптомет и гостей из Мексики...экономистов, юристов, политологов, психологов, астрономов, генетиков, нейробиологов и робототехников

OSZAR »