0 / 0 / 0
Регистрация: 16.11.2015
Сообщений: 11
1

Крестики-нолики (версия с компьютером)

21.11.2015, 21:33. Показов 15377. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Не так давно изучаю HTML, поэтому мало что в нём понимаю. Пытаюсь сделать игру крестики-нолики (версию с "компьютером"). В этом коде я сделал так, что код изначально выставляет кто ходит первым (крестики или нолики), кто ходит затем (крестики или нолики) и определяет кто выиграл:
HTML5
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<!DOCTYPE html>
<html>
    <head>
         <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
         <title>Tictactoe game</title>
         <script src="game.js"></script>
         <link rel="stylesheet" href="style.css">
 
        <style>
            .Square {
                width: 150px;
                height: 150px;
                border: 1;
                text-align: center;
                font-size: 80pt;
                font-weight: bold;
                font-family: Verdana;
            }
        </style>
 
          <style type="text/css">
   TABLE {
    border-collapse: collapse; 
   }
   TD, TH {
    padding: 5px; 
    border: 2px solid black; 
   }
  </style>
        
        <script>
        
        function startGame() {
        
            for (var i = 1; i <= 9; i = i + 1) {
                clearBox(i);
            }
        
            document.turn = "X";
            if (Math.random() < 0.5) {
                document.turn = "O";
            }
            document.winner = null;
            setMessage(document.turn + " начинают");
        }
        
        function setMessage(msg) {
            document.getElementById("message").innerText = msg;
        }
        
        function nextMove(square) {
            if (document.winner != null) {
                setMessage(document.winner + " уже выиграли игру, начните снова");
            } else if (square.innerText == "") {
                square.innerText = document.turn;
                switchTurn();
            } else {
                setMessage("Это поле занято");
            }
        }
        
        function switchTurn() {
        
            if (checkForWinner(document.turn)) {
                setMessage(document.turn + " выиграли!");
                document.winner = document.turn;
            } else if (document.turn == "X") {
                document.turn = "O";
                setMessage("Ход ноликов");
            } else {
                document.turn = "X";
                setMessage("Ход крестиков");
            }
        }
        
        function checkForWinner(move) {
            var result = false;
            if (checkRow(1, 2, 3, move) || 
                checkRow(4, 5, 6, move) ||
                checkRow(7, 8, 9, move) || 
                checkRow(1, 4, 7, move) ||
                checkRow(2, 5, 8, move) ||
                checkRow(3, 6, 9, move) ||
                checkRow(1, 5, 9, move) ||
                checkRow(3, 5, 7, move)) {
                
                result = true;
            }
            return result;
        }
        
        function checkRow(a, b, c, move) {
            var result = false;
            if (getBox(a) == move && getBox(b) == move && getBox(c) == move) {
                result = true;
            }
            return result;
        }
        
        function getBox(number) {
            return document.getElementById("s" + number).innerText;
        }
        
        function clearBox(number) {
            document.getElementById("s" + number).innerText = "";
        }
        
        </script>
    </head>
         <body onload="startGame();" align="center">
             <div id="message"> загрузка...</div>
        
        <table border="1" frame="void" align="center">
            <tbody>  
            <tr>
                <td id="s1" class="Square" onclick="nextMove(this);"></td>
                <td id="s2" class="Square" onclick="nextMove(this);"></td>
                <td id="s3" class="Square" onclick="nextMove(this);"></td>
            </tr>
            <tr>
                <td id="s4" class="Square" onclick="nextMove(this);"></td>
                <td id="s5" class="Square" onclick="nextMove(this);"></td>
                <td id="s6" class="Square" onclick="nextMove(this);"></td>
            </tr>
            <tr>
                <td id="s7" class="Square" onclick="nextMove(this);"></td>
                <td id="s8" class="Square" onclick="nextMove(this);"></td>
                <td id="s9" class="Square" onclick="nextMove(this);"></td>
            </tr>
            </tbody>
        </table>
        <a href="javascript:startGame();">Начать снова</a>
         </body>
</html>
Для того, что бы мне сделать версию с компьютером мне нужно, чтобы при клике на одну ячейку таблицы, происходил клик по другой ячейке этой же таблицы, сразу после предыдущего клика. То есть что-то вроде: если пользователь кликнул на s1 (первую ячейку), то "компьютер" походил на s2 (вторая ячейка). Помогите пожалуйста разобраться в этом вопросе, как это можно сделать? Заранее большое спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2015, 21:33
Ответы с готовыми решениями:

Отобразить таблицу результатов игры в крестики нолики
В рабочей области окна просмотра отобразить таблицу результатов всех ходов (частично заполненных...

Крестики-нолики с компьютером
Мне необходимо создать игру крестики-нолики в delphi (игра против человека и против компьютера на...

Крестики-нолики с компьютером
Помогите, пожалуйста) У меня прога крестики-нолики, рассчитанная на 2х игроков. На ее основе нужно...

Крестики нолики с компьютером
Помогите, пожалуйста! Написать программу игры в «крестики - нолики» с использованием эвристики...

1
49 / 42 / 25
Регистрация: 18.11.2015
Сообщений: 279
22.11.2015, 11:28 2
С данным вопросом вы походу ошиблись в разделе ...
0
22.11.2015, 11:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2015, 11:28
Помогаю со студенческими работами здесь

Крестики нолики с компьютером
Никак не могу понять, как довести ее до ума. Не получается сделать так, чтобы игроки ходили...

Крестики-нолики 3x3 с компьютером
Такое вот задание: сделать крестики-нолики для игры с компьютером на C. Немного погуглив и нихера...

Игра в крестики-нолики с компьютером
Помогите написать простенькую программу) плиз) очень срочно надо) Заранее спасибо)

Приложение Крестики-нолики. Игра с компьютером
Доброго времени суток. Дело вот в чем. Как в игре Крестики-нолики добавить режим &quot;игра с...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru