Pominę, że mogłeś to zrobić obiektowo to:
Mogłeś krócej zapisać wybieranie pola np.
// HTML
<ul id="fields">
<li data-field-number="0"></li>
<li data-field-number="1"></li>
<li data-field-number="2"></li>
<li data-field-number="3"></li>
<li data-field-number="4"></li>
<li data-field-number="5"></li>
<li data-field-number="6"></li>
<li data-field-number="7"></li>
<li data-field-number="8"></li>
</ul>
// JS
var current_player = x; // Aktualny gracz x lub o
// null - puste | x - X | o - O
var fields = [
null, null, x,
null, null, null,
x, null, null
];
$("#fields li").click(function(){
field-number = $(this).attr('data-field-number'); // Pobranie, które pole zostało kliknięte
// Sprawdzanie czy jest już coś położone
// Jezeli nie zmień i zrób sobie co chcesz :)
if(fields[field-number] == null){
fields[field-number] = current_player;
current_player = "x" ? "o" : "x"; // Zmiana gracza [Nie wiem czy istnieje takie coś w JS]
}
});
To tylko przykład i mogą być w nim błędy [Kod niesprawdzany]