Kahdestaan pelattava Ultimate Tic-tac-toe. Ultimate Tic-tac-toe on versio ristinollasta, jossa pelilauta on 9x9 ja edellisen pelaajan siirto määrää seuraavan siirron sallitut ruudut.
Sovelluksessa olevat ominaisuudet:
- Etusivu kertoo pelin säännöt ja sisältää kaikki olennaiset linkit sovelluksen eri sivuille.
- Etusivu sisältää dataa tämänhetkisestä pelaajamäärästä tai aktiivisten pelien määrästä tms.
- Käyttäjä voi kirjautua sisään ja ulos sekä luoda uuden tunnuksen.
- Käyttäjä voi lisätä muita käyttäjiä kaverikseen.
- Käyttäjä voi luoda uuden julkisen tai listalta piilotetun peliaulan.
- Käyttäjä voi liittyä muiden luomiin peleihin.
- Aulan luoja voi poistaa käyttäjän aulasta.
- Aulan omistaja voi luoda peliin liittymistä varten linkin.
- Aulassa pelaajat voivat lähettää viestejä.
- Pelatessa pelaajalle näytetään kyseisen vuoron sallitut ruudut
- Pelaaja voi sijoittaa ristin/nollan mihin tahansa sallituista ruuduista.
- Pelilauta päivittyy, kun vastustaja sijoittaa oman ristin/nollan.
- Pelaajalle ilmoitetaan voitosta tai häviöstä.
- Käyttäjä voi katsoa omasta pelihistoriasta, kuinka paljon pelejä on voittanut ja hävinnyt.
- Käyttäjä voi vaihtaa oman salasanan.
- Käyttäjä voi asettaa oman profiilin näkyvyyden muille käyttäjille.
Sovellus on testattavissa Herokussa (toimii huonosti) ja Omalla palvelimella (toimii hyvin, mutta saattaa hidastella, koska tietokanta on SD kortilla). En jaksanut laittaa omalle palvelimelle SSL certtejä Let's Encryptiltä, joten oman palvelimen versio toimii vain http:n yli.
Sovelluksen tila 8.10.2022 (9.10.2022): Siirsin sovelluksen Heroku palvelimen Eurooppaan ja samalla urlia oli pakko muuttaa. Sovelluksessa on kaikki yllä mainituista ominaisuuksista, mutta käytännössä 14 on hyödytön, koska muiden profiileja ei ole vielä mahdollista katsoa. Sovelluksen koodin laatu ei ole erityisen hyvä (lähinnä pidän sovellusta turhan isona, ja siinä on päällekkäistä koodia). Pahimmat tietoturvaongelmat pitäisi olla korjattu. Sovelluksessa voi monissa paikoissa lähettää käsin pyyntöjä, joita käyttöliittymän lomakkeet tarkoituksella eivät salli. Näin olisi ehkä mahdollista esim. poistaa aula, jota ei omista. Kaverilista olisi hyvä olla automaattisesti päivittyvä, mutta en vielä ehtinyt lisäämään sitä. Sovelluksen automaattisesti päivittyvät sivut (lista peliauloista, peliaulan asetukset, itse peli) on tehty käyttäen server-sent eventtejä flask-sse kirjastolla. Alunperin sovelluksen pelinäkymän oli tarkoitus olla graafinen käyttöliittymä, jossa pelimerkkejä sijoitetaan painamalla haluttua ruutua. Siihen ei kuitenkaan jäänyt tarpeeksi aikaa. Huomasin 9.10. että Herokussa on kummallisia ongelmia, joita ei millään pysty toistamaan omalla koneella, joten päätin tehdä Raspberry Pi:lle toisen testipalvelimen. Saatan uudelleenkäynnistää sen vielä tänään, koska toistaiseksi se on vain käynnistettynä SSH:n yli eikä mitenkään järkevästi.
Suunnitellut ominaisuudet:
- Käyttäjä voi katsella toisen käyttäjän profiilia, jos sen näkyvyys on julkinen.
- Aulan voi asettaa näkyväksi vain kavereille (on jo sovelluksessa, mutta filtteröinti ei ole toteutettu).
- Kaverin voi kutsua peliin kaverilistalta, ja kaveri saa kutsusta ilmoituksen.
- Lisää tilastoja.
- Paremman näköinen käyttöliittymä.
- Automaattisesti päivittyvä kaverilista.