GithubHelp home page GithubHelp logo

dipzza / qtparchis Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 399 KB

Final project for User Interface Programming course in Faculty of Informatics of Brno University of Technology

License: GNU Affero General Public License v3.0

QMake 2.41% C++ 43.47% JavaScript 0.74% QML 53.37%

qtparchis's People

Contributors

dipzza avatar

Watchers

 avatar

qtparchis's Issues

Win Animation or Screen

When one player wins end the game and show a different screen, an animation or anything that indicate who won.

Then it could reset to main menu after some player input or maybe give the option to play again.

Implement move restrictions

Make on the token class a function to know to which cell can a token move with a dice roll, and another function to actually move the token.

It should check for:

  • If in token is still in nest (passed_cells == -1) it needs a 5 to go out
  • If there is bridge between where the token is and where it would go it can not move
  • If it moves the token pass the finish cell (passed_cells > 71) it can not move

Game settings screen

Before starting the game we need to know the number of players and optionally their names.

So we should make a screen (a different qml file) with buttons to select from 1 to 4 players, and with text boxes to write the names of the players (the number of text boxes depends on the number of players).

Board size and token positions messed up when resizing window horizontally

Normally scaling works fine, but when the window is resize horizontally too small the board get smaller and doesn't have the same height as the window as in all other cases. When this happens it appears the formulas to calculate the positions of the tokens are not correct.

Maybe we can force the window to at least have certain proportion so it doesn't have to make the board height smaller than the window size or fix the formulas.

UI: Dice roll

Visual feedback to know what was the last roll of the dice, ideally with some animation of the dice spinning

Some dynamic memory tokens are not freed

The tokens that are not used by any player (cos there is less than 4 player on the game) are declared dynamically in main, and are not freed when game ends because main return app.exec() to start the GUI.

They could be encapsulated in some class (maybe maing a list of all token pointers used or not in the board class) that deletes on their destructor, but maybe there is an easier solution.

Eating tokens

Implement eating tokens, after eating it should try to give another turn to the current player with a false value of the dice to 20.

Cells should also have a new attribute that indicates if they are safe (can not eat in this cell) or not.

Main Screen

This is not mandatory for the game to work, but is easy to do and gives some easy interaction.

The main screen of the game maybe with some logo or cool letters that says "Super Parchís Ultimate" or something like that xD

And the buttons to start a game or quit the game

Folder Structure

Right now i think QtCreator expect all files to be in the root folder, but is quite a mess with so many files.

We should change the configuration / move the files so they are more organized but QtCreator still detects them and build the app correctly.

I propose something like this:

root - Project configuration files
src/ - C++ application headers and source files
qml/ - UI related, .qml and .js files
images/ - Image resources
translations/ - Placeholder for translation files if we end up translating the menu from english to our native languages

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.