A repo for an interest group at Gdańsk University of Technology.
jaskij / game-algos Goto Github PK
View Code? Open in Web Editor NEWA repo for an interest group at Gdańsk University of Technology.
A repo for an interest group at Gdańsk University of Technology.
net::GameState uses boost::multi_array internally, but because of header inclusions boost::multi_array is also included in compilation units of all engines, which can have negative effect on their critical compilation time. After whole system, including engine compilation on the fly, is up and running boosts impact needs to be measured and issue fixed, if it's significant. Possible fixes: use pimpl idiom in net::GameState, change internal board representation, forward declare boost::multi_map(some function definitions may need to be moved from header file).
Konieczne flagi to -Wall -std=c++0x, ale na pewno wiele więcej. Trzeba poczytać. Randomowy link ze stacka: http://stackoverflow.com/questions/154630/recommended-gcc-warning-options-for-c
Przepisać engine ataxxa, wyczyścić, przełożyć pomysły, które pojawiły się w trakcie kodzenia na cały kod.
Większość z tych pomysłów jest zanotowana gdzieś w kodzie jako TODO
Information about last move should be presented to players to make tracking state of the board easier. Info should contain which player moved, move origin and destination and any additional details(i.e. capturing pieces, promotions, checks). To prevent case bloat these details should be generalized as : a list of fields to highlight, a list of lines between fields and string containing exact info. There should be only a few predetermined highlight/line styles. Collections of such class could be used to save game course.
Ok, skoro wszystko już chyba stoi, jakiś podział zadań chyba należałoby teraz zrobić. Co do formatu plansz, to zostajemy przy samej tablicy unsigned char rozumiem?
Klasa odpowiedzialna za przedstawienie aktualnego stanu rozgrywki w sposób jednolity dla każdej gry i łatwy do odczytania przez GUI
Nie da się ukryć, bez nich jakiekolwiek zmiany w kodzie utrzymywanym przez tylu ludzi bardzo szybko zamienią się w koszmar. Pytanie czy mamy kogoś z doświadczeniem jeśli chodzi o ich tworzenie? Bo ja jestem w tej kwestii zielony
Considering all parameters, n,m,k,i,j and blocked fields
Czyli warstwa sieciowa naszej aplikacji, musi wspierać przesyłanie klas PublicState, GameOPtions oraz wszystkich koniecznych komunikatów.
Jako że GUI jest odpowiedzialne za wyświetlanie informacji przesłanych w formie PublicState oraz GameOptions konieczna jest współpraca z twórcami tych klas. Technologia wykonania do wyboru, ale należy mieć na uwadze przenośność oraz możliwość wykorzystania bibliotek dynamicznych ze względu na ww. podzespoły.
Trzbe zdecydować się na format danych, jak reprezentować planszę. Potrzebne są try: skompresowany, nieskompresowany i dla gier z nieskończoną planszą.
Nieskompresowany - tutaj można się szarpnąć z enumem, jak będzie dostęp do C++11 to damy strongly typed enums i typ unsigned char (mogę się mylić, ale chyba VS10 jakoś to już supportuje).
Skompresowany - tutaj są 2 bity na pole, więc coś w style tablicy unsigned char, o określonej długości.
Gry z planszą nieskończoną - to zostawiam grupie NKM.
Dodatkowo, każdy stan potrzebuje nagłówka - czyj jest ruch.
Wydaje się, że nie jest to jedyny problem w tej funkcji. Output chociażby dla początkowego stanu planszy wygląda dziwnie
Stosunkowo prosta aplikacja nasłuchująca połączeń od klientów, prezentująca im listę dostępnych gier oraz odpalająca wybraną.
Klasa odpowiedzialna za przekazanie GUI informacji o wszelkich opcjach dostępnych dla danej gry(wielkość planszy itp), ich opisach, wzajemnych zależnościach, ograniczeniach
Standard w formacie tekstowym będzie można podłączyć do repozytorium i w wygodny sposób przeglądać różnice między wersjami.
Zastąpić utrzymywanie osobnych plików .vcxproj i makefile meta build systemem, prawdopodobnie cmake.
Zastąpić PublicState - konieczna chociażby wersja robocza tej klasy
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.