adoria298 / heis Goto Github PK
View Code? Open in Web Editor NEWImplementation of Mattel's Uno with Python and GRPC
License: GNU General Public License v3.0
Implementation of Mattel's Uno with Python and GRPC
License: GNU General Public License v3.0
If a player declares UNO, the server does not check this on subsequent turns, i.e. a player may declare UNO then gain cards.
Excerpt of singleplayer game:
Your turn!
The Last Card Played:
7
Your Hand:
+2 ??+4
> play 1
You Declared Uno!
Samuel declared UNO!
Your turn!
The Last Card Played:
??+4
Your Hand:
+2
You draw four cards because Samuel played a Wild +4 card.
Samuel declared UNO!
Your turn!
The Last Card Played:
??+4
Your Hand:
+2 8 9 !X! 7
> play 3
Samuel declared UNO!
Your turn!
The Last Card Played:
!X!
Your Hand:
+2 8 9 7
> play 3
You can't play that card.
Please try again.
Samuel declared UNO!
Your turn!
The Last Card Played:
!X!
Your Hand:
+2 8 9 7
> play 2
Samuel declared UNO!
Your turn!
The Last Card Played:
9
Your Hand:
+2 8 7
> draw 1
Samuel declared UNO!
Your turn!
The Last Card Played:
9
Your Hand:
+2 8 7 9
> play -1
Samuel declared UNO!
Your turn!
The Last Card Played:
9
Your Hand:
+2 8 7
> play 0
Samuel declared UNO!
Your turn!
The Last Card Played:
+2
Your Hand:
8 7
You draw two cards because Samuel played a +2 card.
Samuel declared UNO!
Your turn!
The Last Card Played:
+2
Your Hand:
8 7 <-> 1
> draw 1
Samuel declared UNO!
Your turn!
The Last Card Played:
+2
Your Hand:
8 7 <-> 1 2
> draw 1
Samuel declared UNO!
Your turn!
The Last Card Played:
+2
Your Hand:
8 7 <-> 1 2 1
> play -1
Samuel declared UNO!
Your turn!
The Last Card Played:
1
Your Hand:
8 7 <-> 1 2
> play -2
Samuel declared UNO!
Your turn!
The Last Card Played:
1
Your Hand:
8 7 <-> 2
> draw 1
Samuel declared UNO!
Your turn!
The Last Card Played:
1
Your Hand:
8 7 <-> 2 2
> draw 1
Samuel declared UNO!
Your turn!
The Last Card Played:
1
Your Hand:
8 7 <-> 2 2 <->
> play -1
Samuel declared UNO!
Your turn!
The Last Card Played:
<->
Your Hand:
8 7 <-> 2 2
> play 2
Samuel declared UNO!
Your turn!
The Last Card Played:
<->
Your Hand:
8 7 2 2
> play 0
Samuel declared UNO!
Your turn!
The Last Card Played:
8
Your Hand:
7 2 2
> draw 1
Samuel declared UNO!
Your turn!
The Last Card Played:
8
Your Hand:
7 2 2 0
> draw 1
Samuel declared UNO!
Your turn!
The Last Card Played:
8
Your Hand:
7 2 2 0 8
> play -1
Samuel declared UNO!
Your turn!
The Last Card Played:
8
Your Hand:
7 2 2 0
> play -1
Samuel declared UNO!
Your turn!
The Last Card Played:
0
Your Hand:
7 2 2
> play -1
Samuel declared UNO!
Your turn!
The Last Card Played:
2
Your Hand:
7 2
> play -1
You Declared Uno!
Samuel declared UNO!
Your turn!
The Last Card Played:
2
Your Hand:
7
> play -1
You won!
Terminating.
Press enter to exit.
Notice how UNO had been declared, and is never undeclared.
Features of the Web Version (aiming for v1.0):
This issue is for discussion (๐) of how to implement it and the making of plans. A separate tracking issue will be required when it is being implemented.
The command line is alright, but a GUI would make HEIS accessible to those uncomfortable with it. This is a general tracking issue for working towards said GUI - any commits involving the GUI should mention this issue in the first line.
According to UNO rules, if you draw a card by choice or by lack of other cards, you can play that card if you want. This is a bug in HEIS.
The server logs currently omit much information, such as when UNO is declared/undeclared. They can also be inaccurate, stating that a player has won when said player hasn't. They could also make use of the utility.print_card function.
This would make them more readable and more useful.
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.