Не работает if-else
Добрый день. Пытаюсь написать крестики-нолики. Не могу понять: почему не работает присвоение "Х" или "0" при четном-нечетном ходу в if-else.
Очень прошу помощи у знатоков. Спасибо. <!DOCTYPE> <html> <head> <title>Крестики-нолики</title> <meta charset="utf-8"> </head> <body> <form> <table height="" width="" border="0"> <tr> <td> <input type="button" name="b1" value="" onclick="event_b1(form)"> </td> <td> <input type="button" name="b2" value="" onclick="event_b2(form)"> </td> <td> <input type="button" name="b3"value="" onclick="event_b3(form)"> </td> </tr> <tr> <td><input type="button" name="b4"value="" onclick="event_b4(form)"></td> <td><input type="button" name="b5"value="" onclick="event_b5(form)"></td> <td><input type="button" name="b6"value="" onclick="event_b6(form)"></td> </tr> <tr> <td><input type="button" name="b7"value="" onclick="event_b7(form)"></td> <td><input type="button" name="b8"value="" onclick="event_b8(form)"></td> <td><input type="button" name="b9"value="" onclick="event_b9(form)"></td> </tr> </table> </form> <script> var hod = 0; function event_b1 (form){ if (hod%2 == 0){ form.b1.value = "X"; } else { form.b1.value = "0"; } } hod++; function event_b2 (form){ if (hod%2 == 0){ form.b2.value = "X"; } else { form.b2.value = "0"; } } hod++; function event_b3 (form){ if (hod%2 == 0){ form.b3.value = "X"; } else { form.b3.value = "0"; } } hod++; function event_b4 (form){ if (hod%2 == 0){ form.b4.value = "X"; } else { form.b4.value = "0"; } } hod++; function event_b5 (form){ if (hod%2 == 0){ form.b5.value = "X"; } else { form.b5.value = "0"; } } hod++; function event_b6 (form){ if (hod%2 == 0){ form.b6.value = "X"; } else { form.b6.value = "0"; } } hod++; function event_b7 (form){ if (hod%2 == 0){ form.b7.value = "X"; } else { form.b7.value = "0"; } } hod++; function event_b8 (form){ if (hod%2 == 0){ form.b8.value = "X"; } else { form.b8.value = "0"; } } hod++; function event_b9 (form){ if (hod%2 == 0){ form.b9.value = "X"; } else { form.b9.value = "0"; } } </script> </body> </html> |
djekokma,
код бред какой-то ... Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [html] ... ваш код... [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
djekokma,
<!DOCTYPE> <html> <head> <title>Крестики-нолики</title> <meta charset="utf-8"> </head> <body> <form> <table height="" width="" border="0"> <tr> <td> <input type="button" name="b1" value="" onclick="event_b1(this)"> </td> <td> <input type="button" name="b2" value="" onclick="event_b1(this)"> </td> <td> <input type="button" name="b3"value="" onclick="event_b1(this)"> </td> </tr> <tr> <td><input type="button" name="b4"value="" onclick="event_b1(this)"></td> <td><input type="button" name="b5"value="" onclick="event_b1(this)"></td> <td><input type="button" name="b6"value="" onclick="event_b1(this)"></td> </tr> <tr> <td><input type="button" name="b7"value="" onclick="event_b1(this)"></td> <td><input type="button" name="b8"value="" onclick="event_b1(this)"></td> <td><input type="button" name="b9"value="" onclick="event_b1(this)"></td> </tr> </table> </form> <script> var hod = 0; function event_b1 (button){ if(button.value) return; button.value = hod++ % 2 ? "0" : "X"; } </script> </body> </html> |
Спасибо, Рони. Но не работает. По клику ячейки остаются пустыми.
|
Извиняюсь. Все работает. Большущее спасибо за помощь.
|
<!DOCTYPE> <html> <head> <title>Крестики-нолики</title> <meta charset="utf-8"> <style> td { width:25px; height:25px; text-align:center; background-color:lightgray; } </style> </head> <body> <table border="1"> <tr> <td></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> </tr> </table> <script> var hod = 0; document.querySelector('table').onclick = function(e) { if(e.target.nodeName == 'TD') { if (hod%2 == 0){ e.target.innerText = "X"; } else { e.target.innerText = "0"; } hod++; } } </script> </body> </html> |
Спасибо
|
Написание функции по определению выигравшего
Добрый день. Не могу придумать функцию по определению выигравшего Х или 0. Прошу помощи.
<!DOCTYPE> <html> <head> <title>Крестики-нолики</title> <meta charset="utf-8"> </head> <body> <form> <table height="" width="" border="0"> <tr> <td> <input type="button" name="b1" value="" onclick="event_b1(this)"> </td> <td> <input type="button" name="b2" value="" onclick="event_b1(this)"> </td> <td> <input type="button" name="b3"value="" onclick="event_b1(this)"> </td> </tr> <tr> <td><input type="button" name="b4"value="" onclick="event_b1(this)"></td> <td><input type="button" name="b5"value="" onclick="event_b1(this)"></td> <td><input type="button" name="b6"value="" onclick="event_b1(this)"></td> </tr> <tr> <td><input type="button" name="b7"value="" onclick="event_b1(this)"></td> <td><input type="button" name="b8"value="" onclick="event_b1(this)"></td> <td><input type="button" name="b9"value="" onclick="event_b1(this)"></td> </tr> </table> </form> <script> let hod = 0; function event_b1 (button){ if(button.value) return; button.value = hod++ % 2 ? "0" : "X"; } function winning(){ if (button.b1.value == "X" && button.b2.value == "X" && button.b3.value == "X"||button.b4.value == "X" && button.b5.value == "X" && button.b6.value == "X"||button.b7.value == "X" && button.b8.value == "X" && button.b9.value == "X"||button.b1.value == "X" && button.b5.value == "X" && button.b9.value == "X"||button.b2.value == "X" && button.b5.value == "X" && button.b8.value == "X"||button.b3.value == "X" && button.b6.value == "X" && button.b9.value == "X"||button.b3.value == "X" && button.b5.value == "X" && button.b7.value == "X") {alert("Выиграли X");} else {button.b1.value == "0" && button.b2.value == "0" && button.b3.value == "0"||button.b4.value == "0" && button.b5.value == "0" && button.b6.value == "0"||button.b7.value == "0" && button.b8.value == "0" && button.b9.value == "0"||button.b1.value == "0" && button.b5.value == "0" && button.b9.value == "0"||button.b2.value == "0" && button.b5.value == "0" && button.b8.value == "0"||button.b3.value == "0" && button.b6.value == "0" && button.b9.value == "0"||button.b3.value == "0" && button.b5.value == "0" && button.b7.value == "0" } {alert("Выиграли 0");} </script> </body> </html> |
djekokma,
чтобы так писать путь к элементу button.b1 должна быть форма с именем button (строка 9) <!DOCTYPE> <html> <head> <title>Крестики-нолики</title> <meta charset="utf-8"> </head> <body> <form name="button"> <table height="" width="" border="0"> <tr> <td> <input type="button" name="b1" value="" onclick="event_b1(this)"> </td> <td> <input type="button" name="b2" value="" onclick="event_b1(this)"> </td> <td> <input type="button" name="b3"value="" onclick="event_b1(this)"> </td> </tr> <tr> <td><input type="button" name="b4"value="" onclick="event_b1(this)"></td> <td><input type="button" name="b5"value="" onclick="event_b1(this)"></td> <td><input type="button" name="b6"value="" onclick="event_b1(this)"></td> </tr> <tr> <td><input type="button" name="b7"value="" onclick="event_b1(this)"></td> <td><input type="button" name="b8"value="" onclick="event_b1(this)"></td> <td><input type="button" name="b9"value="" onclick="event_b1(this)"></td> </tr> </table> </form> <script> var hod = 0; function event_b1(button) { if (button.value) return; button.value = hod++ % 2 ? "0" : "X"; winning() } function winning() { if (button.b1.value == "X" && button.b2.value == "X" && button.b3.value == "X" || button.b4.value == "X" && button.b5.value == "X" && button.b6.value == "X" || button.b7.value == "X" && button.b8.value == "X" && button.b9.value == "X" || button.b1.value == "X" && button.b5.value == "X" && button.b9.value == "X" || button.b2.value == "X" && button.b5.value == "X" && button.b8.value == "X" || button.b3.value == "X" && button.b6.value == "X" && button.b9.value == "X" || button.b3.value == "X" && button.b5.value == "X" && button.b7.value == "X") alert("Выиграли X"); else if (button.b1.value == "0" && button.b2.value == "0" && button.b3.value == "0" || button.b4.value == "0" && button.b5.value == "0" && button.b6.value == "0" || button.b7.value == "0" && button.b8.value == "0" && button.b9.value == "0" || button.b1.value == "0" && button.b5.value == "0" && button.b9.value == "0" || button.b2.value == "0" && button.b5.value == "0" && button.b8.value == "0" || button.b3.value == "0" && button.b6.value == "0" && button.b9.value == "0" || button.b3.value == "0" && button.b5.value == "0" && button.b7.value == "0") alert("Выиграли 0") }; </script> </body> </html> |
<!DOCTYPE> <html> <head> <title>Крестики-нолики</title> <meta charset="utf-8"> </head> <body> <form> <table height="" width="" border="0"> <tr> <td> <input type="button" name="b1"> </td> <td> <input type="button" name="b2"> </td> <td> <input type="button" name="b3"> </td> </tr> <tr> <td><input type="button" name="b4"></td> <td><input type="button" name="b5"></td> <td><input type="button" name="b6"></td> </tr> <tr> <td><input type="button" name="b7"></td> <td><input type="button" name="b8"></td> <td><input type="button" name="b9"></td> </tr> </table> </form> <script> let hod = 0, pol = document.querySelectorAll('input[type="button"]'), arrX=[], arrO=[], win=(a)=>[[0,1,2],[3,4,5],[6,7,8],[0,3,6],[1,4,7],[2,5,8],[0,4,8],[2,4,6]].find(el=>el.every((el)=>a.includes(el))); pol.forEach((el,n)=> el.onclick = e =>{ el.value = hod++ % 2 ? "0" : "X"; el.value !== ''&& (el.value == 'X'?arrX.push(n):arrO.push(n)); if(win(arrO)) alert('Выиграли: O'); else if(win(arrX)) alert('Выиграли: X'); }); </script> </body> </html> |
Часовой пояс GMT +3, время: 07:15. |