Giter Club home page Giter Club logo

russiancheckers's People

Contributors

pietrzykp avatar psrok1 avatar tnazarew avatar

Watchers

 avatar  avatar  avatar  avatar

russiancheckers's Issues

Niepoprawne wyszukiwanie bicia przez damki

Po przesunięciu pionka i zamiany w damkę - metoda Piece.move() zgłasza, że istnieje kolejne bicie zawsze, gdy obok znajdzie się pionek innego koloru. Zgłasza nawet wtedy, gdy bicie jest niemożliwe (np. za pionkiem znajduje się kolejny pion).
Metoda getPossibilities() zwraca wtedy poprawny (pusty) rezultat, co skutkuje zablokowaniem gry.

Problem prawdopodobnie leży w Piece.kingChange.
Wykonuje ona sprawdzenie jedynie przy pomocy findToJump, nie sprawdzając czy znaleziony pion można w ogóle przeskoczyć.

Lista obowiązkowych rzeczy do zrobienia

  • Krytyczny bug: wiele wariantów w wektorze ruchu
  • Wielokrotne bicia niezgodne z protokołem - zamiast [from, to...] jest [from,to,from,to,....]
  • Nie jest wykrywane, gdy przegrywamy/wygrywamy przez zablokowanie wszystkich pionów
  • Problem z TopScorers - koniec gry, kończy się błędem serwera
  • Crash klienta (trzeba poklikać w różnych miejscach, w różnych sytuacjach: może coś nieodpowiedniego przejmuje zdarzenie)
  • Znikanie pionka przy potrójnym biciu z przejściem na damkę
  • Problemy ze zliczaniem czasu w Server.py
  • Może warto wyrzucić POZDROWIENIA Z DUPY z kodu.
  • Przetestować przegraną (czy już jest zaimplementowana wersja end zgodna z protokołem)
  • Przegrana w wyniku blokady nie działa
  • Dokumentacja serwera
  • Ogólna dokumentacja końcowa

@tnazarew @pietrzykp

Konieczne poprawki w modelu

  1. Konstruktor klasy Model.King nie kopiuje tablicy positionCache z Model.Piece. Przez to pionek po zmianie na damkę zapomina o ruchach, które wykonał wcześniej.
  2. Ponadto przydałaby się metoda Model.Board informująca czy istnieją jakieś bicia na planszy ze strony danego gracza.
    Przeiterowałaby po wszystkich białych/czarnych pionkach z getPossibilities(true) i jak jakiś zwróci niepustą tablicę to true, a jak żaden to false
    Proponowana sygnatura:
public anyCaptures(pieceColor: PieceColor): boolean;

Możliwe ulepszenia w kliencie

Kosmetyka do zrobienia w razie zbyt dużej ilości wolnego czasu.

  • Synchronizacja timera z czasem otrzymanym od serwera
  • Tryb wyboru pionków auto można sprowadzić do losowania koloru pionka po stronie klienta. Po co serwer ma to losować?

Silnik C++ - problemy z biciem

Próbowałem pobawić się tekstowo warcabami i dziwnie zachowują się bicia.
Czasami AI wykonując bicie, magicznie likwiduje też pionek zbijający.

Przykładowe dane:
5 6 4 7
4 7 3 6
6 5 5 6

Po wprowadzeniu ostatniej danej można zauważyć jak znika zarówno biały pionek (zbijany) jak i czarny (zbijający).
Dodałem jeden printAll, by było widać ruch usera :)
image

Czasami znika nawet więcej:
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.