Git Product home page Git Product logo

cards-against-humanity's People

Contributors

mx795 avatar timtam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

cards-against-humanity's Issues

notify server about wrong cards

The user should be able to notify the server about wrong cards, means cards which contain grammar or ortography mistakes or too few placeholders and such stuff. Maybe by using the right mouse click?

card counter

Users should be able to determine the current amount of cards in the database inside the editor.

low speed when processing high amount of cards

Profiling results in 0.06 seconds for each panel creation. Each card contains even 2 panels, which results in 0.12 seconds per card. With a small database including 60 cards we already got 7.2 seconds loading time on database loading or search. That's alot, considering the databases will be 10 times that large, which means waiting for over one minute until all cards are rendered.
Possible solutions:

  • replacing at least one panel, if not both with a much faster widget
  • introducing pages, displaying only a given number of cards per page and scrolling will load the next few ones. Won't reduce the loading time at all but will split it so that the user won't suffer from heavy workload.

button text needs to be changeable on runtime

Currently the button calculates his position and size by the text length once on creation time. We need to be able to change the text on the go to support situations like follows:

  • button is called 'start game' when game is paused, but 'leave game' while game is running

Server message

The server should be able to specify a server message which will be displayed in the client when connecting to it. This can for example contain the list of servers this address provides or the limitations this server offers.

re-positioning new card button

When adding multiple cards in a row, it would be helpful to place the new card button right above the right window. This minimizes the mouse movement the user has to do in order to create new cards

no punctuation in white cards

We probably have black cards which end placeholders with either whitespaces (in the middle of a sentence) or punctuation (end of a sentence). white cards can now contain punctuation at the end, which are misplaced in any of the both previously mentioned cases. Thus punctuation should be forbidden in white cards.

menu accelerators not accepted in main window

When pressing keys like u or n inside the main window (even in text inputs), they won't be accepted. I guess that's because they are assigned to the menu items (& sign). It's interesting why they aren't just used inside the menu anyway.

disconnecting players manually on server shutdown

Currently the players will be disconnected after all games were saved. This may result in saving games which are yet open and not contain 3 or more players, which will result in errors because when they're loaded they are considered closed.
There are two possible attemps to fix this:

  • either only closed games will be saved on server shutdown
  • or all players need to be disconnected before games will be saved.
    Need to investigate which of those methods is the most efficient one.

filter displayed games to only display joinable games

client should only see the games who can actually join (if he knows the password), but not currently running games or paused games which aren't open anymore.
Those adaptions need to be done:

  • sending create game on every game creation and to every player (already the case yet)
  • sending delete game to all players except the ones playing when starting a game
  • sending create game to all players when opening the game again (leaving player)

packaging all utilities separately

All utilities (server, client, editor) should be packed into separate archives as separate applications, containing a valid version number each.

mysterious bug on search

when searching only the simple letters e, r, t, i, a, s, h, n and also the '.' (dot) and then deleting them (clear searchbar with backspace, not with the cancel button) only the first row of cards is displayed correctly. on the second row and below the texts have a size of only maybe 10x10 px and is positioned on very top left of the card too.
my guess is that these letters and the dot are the most used characters in the cards texts and this could be related to the whole problem. i think this could be fixed with a simple Layout()-call on the right spot

final round record

The game log should contain the black card which was chosen by the czar and won the round.

leaving game by mistake

When leaving a running game, the user should be asked if he really wants to leave the game, instead of leaving the game instantly.
new window layout needed (yes/no buttons and text display).

new minimum window sizes

Texts translated into different languages resample into different lengths, which causes trouble with our current minimum sizes which relate to the english language only.

changing language on login view

Translator support already exists, so we need to be able to switch the language on the login view and consider the choice for all other views too. This shouldn't be the problem in the client, we even don't need to restart the client manually.
Following things need to be done:

  • add controls to login view
  • apply functionality to controls

limiting black cards per game

Currently all black cards are used per game, which can result in really long games. It should be possible to

  • limit the amount of black cards used in this game by the creator, by transmitting the amount entered into an input field displayed on the overview view
  • limit the amount of black cards possible per game by a command-line switch given to the server. This given amount can't be raised by the clients, only lowered.
  • the amount of black cards can be displayed in the overview view too inside the scrolled panel.

prevent colliding keyboard and mouse navigation

When focusing one control with the keyboard and focusing another item with the mouse, you can create several conflicts, e.g. non-visual focusing (hover effect) or pressing two different buttons at the same time (one per keyboard and one per mouse).
Possible solution:

  • introducing getPosition() method for all controls
  • global setFocus() method for all views which will be called each time the user moves the mouse or uses the keyboard to select only the currently selected control and unfocus all other controls.

invalid amount of rounds when re-opening a game

When leaving a game which was previously running and dropping the user count to 3, the amount of rounds will be reset in server, but not in the client. It will stay the same amount of rounds it previously was before leaving the game.

keep-alive in server-client-communication

When interrupting the connection between server and client by force, the server probably won't notice until he shuts down or he has to wait quite a long time.
Solution:
the server and client should implement a keep-alive signal which forces the server to disconnect users if keep-alive response wasn't received properly in a certain amount of time.

cyrillic font

Writing cyrillic signs with the default font doesn't work. Following solution:

  • defining the font via the translation xml file
    Asked the localization team to provide a matching font

creator needs to be able to delete games

Game creator needs to be able to delete a game he created from overview view.
Includes the following:

  • adding a delete game button to overview view
  • server needs to send information if the user created the current game or not
  • server needs to implement deletion support (can be setup on top of the currently available events)

setting new creator on game leave

When the creator decides to leave the game, no creator will be left. Thats why the creator needs to be pushed to the next user so that the game will always stay with a creator.

games appearing twice

When leaving a game which is still available (people inside or open) it will apear in the client's list twice, due to wrongly sent event.

button rearrangement

Suspend function should be the second function of the start game button and the leave game button should be fixed to the button which currently inherits the suspend game functionality

port can be chosen freely

Currently the port is fixed to 11337. It should be possible to define the port in the server as well as in the client. This should make it possible to host multiple servers on one device.

line break function failure

line break function for scrolled panels always uses the last letter at the beginning of the next line again.

mouse cursor positioning in input field

Currently you can just click onto an input field to set focus into it, but you can't click onto a certain letter to move the cursor towards this letter, you need to do this with the arrow keys. This should be possible with mouse too.

python error when adding second card

Run-Log:

C:\Python\Python27\python.exe E:/GitHub/cards-against-humanity/editor.py
Traceback (most recent call last):
File "E:\GitHub\cards-against-humanity\editor\cardlist_toolbar.py", line 47, in newCard
panel = frame.left_window.card_grid.addCard(id=cursor.lastrowid, text='', card_type=CARD_WHITE)
File "E:\GitHub\cards-against-humanity\editor\cardlist.py", line 134, in addCard
self.grid.Add(card, 1, wx.EXPAND | wx.ALL,
File "C:\Python\Python27\lib\site-packages\wx-3.0-msw\wx_core.py", line 16711, in getattr
raise PyDeadObjectError(self.attrStr % self._name)
wx._core.PyDeadObjectError: The C++ part of the GridSizer object has been deleted, attribute access no longer allowed.

SearchCtrl translation

Currently, if no text is entered into the search box, the text "search" is displayed, no matter which language is currently selected. This text needs to be translated.

final point doesn't count

It seems that the final point (e.g. in a tie) doesn't count.
Example:
It's 3:3:2, the last player gains a point, but he's announced the loser, while both others win a tie.

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.