gbroques/cozmo-song-match

Allow user to choose how many players within game

rlwprog opened this issue · 3 comments

Right now the amount of players is designated during the invocation of main on the command line.

This makes it impossible for the user to choose how many players will play by clicking an icon and only can be done by starting the game from the command line.

This also prevents reevaluating how many players can play if songs are played back to back, necessitating a complete restart of the program.

Instead, the amount of players needs to be set with a song_match class method so that it can be instantiated before each song_match game is begun so that a new song can be played, potentially with a different amount of players.

I feel like this issue is part of a larger issue.

Namely, we don't have a great way to configure options for our game.

We could have a lot of configurable options:

  • The number of players
  • The song
  • The difficulty level
  • Different mini-games (or our class-mates' games)
  • Different instruments
  • Et cetera

I feel the real solution is to have a GUI where the player can select the various options we allow.

Unfortunately, we didn't have time to get to this.

I did have an issue for configuring the number of players. See #31

But I closed it when I made the number of players a command line argument.

I'll probably make the song a command line argument as well.

That way if the next class makes a GUI, then the GUI options can map directly to command line arguments.

What are your thoughts?

I agree that it would have been nice to get the full GUI set up and it is unfortunate that we didn't get around to it. I did write that method for choosing how many players within the game. I feel like it would be easier to use for a layman teaching aid to not have to plug in command line arguments. However, whether or not you deem it usable or worth it I will leave up to you since you're doing final revisions

Agreed. Having Cozmo prompt for the number of players and the user tap a corresponding block is a lot more user friendly.

I just worry if we add this, then the next group adds a GUI or some other way to configure options, they'd end up having to rip all that code out.