Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Начальный этап крестиков-ноликов (https://javascript.ru/forum/misc/23045-nachalnyjj-ehtap-krestikov-nolikov.html)

speedway 10.11.2011 01:10

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

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Crosses & circles</title>
<script type="text/javascript" src="jquery-1.6.4.js"></script>
</head>
<body>
<script type="text/javascript">
var cell1 = 0;
var cell2 = 0;
var cell3 = 0;
var cell4 = 0;
var cell5 = 0;
var cell6 = 0;
var cell7 = 0;
var cell8 = 0;
var cell9 = 0;
var pole = 1;

function lick1(pole,cell1){
if (pole==1)&&(cell1==0) {
cell1 = 1;
pole = 2;
$("#td1").text("X");
}
if (pole==2)&&(cell1==0) {
cell1=2;
pole = 1;
$("#td1").text("O");
}
}
function lick2(pole,cell2){
if (pole==1)&&(cell2==0) {cell2 = 1; pole = 2;
$("#td2").text("X");
}
if (pole==2)&&(cell2==0) {cell2=2; pole = 1;
$("#td2").text("O");
}
}
function lick3(pole,cell3){
if (pole==1)&&(cell3==0) {cell3 = 1; pole = 2;
$("#td3").text("X");
} ;
if (pole==2)&&(cell3==0) {cell3=2; pole = 1;
$("#td3").text("O");
}
}
function lick4(pole,cell4){
if (pole==1)&&(cell4==0) {cell4 = 1; pole = 2;
$("#td4").text("X");
} ;
if (pole==2)&&(cell4==0) {cell4=2; pole = 1;
$("#td4").text("O");
}
}
function lick5(pole,cell5){
if (pole==1)&&(cell5==0) {cell5 = 1; pole = 2;
$("#td5").text("X");
} ;
if (pole==2)&&(cell5==0) {cell5=2; pole = 1;
$("#td5").text("O");
}
}
function lick6(pole,cell6){
if (pole==1)&&(cell6==0) {cell6 = 1; pole = 2;
$("#td6").text("X");
} ;
if (pole==2)&&(cell6==0) {cell6=2; pole = 1;
$("#td6").text("O");
}
}
function lick7(pole,cell7){
if (pole==1)&&(cell7==0) {cell7 = 1; pole = 2;
$("#td7").text("X");
} ;
if (pole==2)&&(cell7==0) {cell7=2; pole = 1;
$("#td7").text("O");
}
}
function lick8(pole,cell8){
if (pole==1)&&(cell8==0) {cell8 = 1; pole = 2;
$("#td8").text("X");
} ;
if (pole==2)&&(cell8==0) {cell8=2; pole = 1;
$("#td8").text("O");
}
}
function lick9(pole,cell9){
if (pole==1)&&(cell9==0) {cell9 = 1; pole = 2;
$("#td9").text("X");
} ;
if (pole==2)&&(cell9==0) {cell9=2; pole = 1;
$("#td9").text("O");
}
}
</script>
<table id="ya" title="Крестики-Нолики" class="таблица" align="center" border="5" cellpadding="5" cellspacing="20" height="200" width="200">
<tr>
<td id="td1" onclick="lick1(pole,cell1)" height="40px" width="40px"> </td>
<td id="td2" onclick="lick2(pole,cell2)" height="40px" width="40px"> </td>
<td id="td3" onclick="lick3(pole,cell3)" height="40px" width="40px"> </td>
</tr>
<tr>
<td id="td4" onclick="lick4(pole,cell4)" height="40px" width="40px"> </td>
<td id="td5" onclick="lick5(pole,cell5)" height="40px" width="40px"> </td>
<td id="td6" onclick="lick6(pole,cell6)" height="40px" width="40px"> </td>
</tr>
<tr>
<td id="td7" onclick="lick7(pole,cell7)" height="40px" width="40px"> </td>
<td id="td8" onclick="lick8(pole,cell8)" height="40px" width="40px"> </td>
<td id="td9" onclick="lick9(pole,cell9)" height="40px" width="40px"> </td>
</tr> </br>

</body>
</html>

trikadin 10.11.2011 01:57

speedway, ты только не обижайся, но это же твоя игра. И значит, сделать ты её должен сам. Иначе от этому никому никакой пользы не будет. Если что-то не получается - разбирайся, почему не получается. Пользуйся firebug'ом. ;)

trikadin 10.11.2011 02:44

Четвёртая причина - это когда ты начал изучать язык, и тебе хочется сделать что-то крутое-крутое (а ты ещё видишь в книжках, что JS - это язык кучи возможностей). Например, игру. Чтобы друзьям показать, чтобы круто было))

Kolyaj 10.11.2011 12:27

Offtop: Крестики-нолики на HTML+CSS без JavaScript

ksa 10.11.2011 14:56

Kolyaj, да там ппц сколько в "исходном коде"! :lol:

trikadin 10.11.2011 15:10

Цитата:

Сообщение от ksa
Kolyaj, да там ппц сколько в "исходном коде"!

Мне кажется, автор просто продумал алгоритм, по которому это всё будет меняться, а потом написал небольшую программку на том же php, которая это всё написала...

Kolyaj 10.11.2011 15:12

Уж точно не руками писал :)

ksa 10.11.2011 15:53

Цитата:

Сообщение от trikadin
программку на том же php

Зато "без JavaScript"... :lol:

Kolyaj 10.11.2011 15:56

ksa,
т.е. если бы было написано руками всё, было бы честно, а с кодогенерацией нечестно? А в чём разница?

ksa 10.11.2011 15:57

Цитата:

Сообщение от Kolyaj
А в чём разница?

Это вопрос принципиальный! :D Т.е. написание "без скриптов". Написал бы руками - сразу видно парень работящий! :)

9xakep 10.11.2011 16:25

<table border='1'>   
  <tr widht='20'>
<td id='one' onclick="a('one')">_</td>
</tr>
<script>
function a(tr_id) {
document.getElementById(tr_id).innerHTML = 'X'
document.getElementById(tr_id).onclick = function () {
document.getElementById(tr_id).innerHTML = 'O'
}
}
</script>

Это если для игры с самим собой))Как то тоже писал)
Первый раз нижамешь:Х,второй О

speedway 10.11.2011 18:59

Спасибо конечно nasqad, но что толку если все равно не работает,
и зачем ты if убрал....

9xakep 10.11.2011 19:06

Ой...извиняюсь, я думал у тебя не получается сделать, то что я написал :)

speedway 10.11.2011 19:09

а ты где запускаешь?

speedway 10.11.2011 19:43

Извиняюсь, код хороший, но функция не меняет значение глобальной переменной pole, всвязи с чем везде крестики

speedway 10.11.2011 20:07

после первого крестика тыкаю второй но получается крестик, значения переменных не поменялись проверял алертом:
var cell1=0,cell2=0,cell3=0,cell4=0,cell5=0,cell6=0,ce ll7=0,cell8=0,cell9=0,flag=1;
function lick1(flag,cell1){if ((flag==1)&&(cell1==0)) {cell1=1; flag=2; $("#td1").text("X");};
if ((flag==2)&&(cell1==0)) {cell1=2; flag=1; $("#td1").text("O");};
alert(+cell1+" "+flag);}
function lick2(flag,cell2){alert(+cell1+" "+flag); if ((flag==1)&&(cell2==0)) {cell2=1; flag=2; $("#td2").text("X");};
if ((flag==2)&&(cell2==0)) {cell2=2; flag=1; $("#td2").text("O");};
alert(+cell2+" "+flag);}

ksa 10.11.2011 21:06

Пошел говнокод... :(


Часовой пояс GMT +3, время: 04:24.