Liar's dice - Strypes edition
Reimagining a pirates' classic through Python
What is Liar's dice - Strypes edition?
Programming is a skill many have these days. Turning it into something fun and entertaining is another thing. We would like to reimagine the classic pirate dice game through YOUR programming skills and give you an opportunity to show us what you’ve got, earn an award and get a chance to join our team!
We will check out YOUR submission, give you some feedback and, if done successfully, reach out to YOU. Some participants will get exciting awards and the best ones will be invited to a job interview to join our AWESOME team!
The technical definition of the challenge is simple:
Using Python, create the game to be played by a human against one or more computer bots.
There are no requirements on the approach apart from:
- using Python;
- implementation of all rules (that includes the ability of choosing the number of players and activating the “wild ones” mode).
- The decision-making algorithm of the bot is up to the developer’s preference.
- The game can be text-based or it can have a graphical user interface – the choice is yours!
Rules of the game
The game is played by two or more players. Five dice are used per player with dice cups used for concealment. The game is round-based.
Each round, each player rolls a “hand” of dice under their cup and looks at their hand while keeping it concealed from the other players. The first player begins his turn by bidding. A bid consists of announcing any face value and a number of dice. This bid is the player’s claim as to how many dice with that particular value there are on the whole table. Turns rotate among the players in a clockwise order.
Each player has two choices during their turn:
- to make a higher bid;
- to challenge the previous bid, by calling the last bidder “liar”.
Raising the bid means that the player may bid a higher quantity of the same face, or any particular quantity of a higher face. If the current player challenges the previous bid, all dice are revealed. If the bid is valid (there are at least as many of the face value as were bid), the bidder wins. Otherwise, the challenger wins. The player who loses a round loses one of their dice. The last player to still retain a die is the winner. The loser of the last round starts the bidding on the next round. If the loser of the last round was eliminated, the next player starts the new round.
Additional rule for advanced players:
The “ones” face of the dice is considered wild – it always counts as the face of the current bid.
Who is this game for?
Programming enthusiasts, Software developers, wanna-be pirates
We don’t judge if you have experience with programming. We don’t pay attention to your current job. We don’t mind if you wave the Jolly Rodger flag on your ship.
Anyone is free to take up this challenge! Try it out!
What you should provide
Host your code in an online code repository (e.g. GitHub) and share it with us through the form below! If your code requires anything different than the standard Python library, create a pip requirements.txt file in the root of your repository.
What's in it for you
- We will invite the best among you for a job interview!
- We will award prizes every month to random participants who complete the challenge successfully!
- You can present your solution to us during one of our events (hosted or sponsored)!
- You have the option to be featured in our Social Media channels!
Associate Professor Boyko Bantchev, Ph.D.
Mr. Bantchev is a graduate from Sofia University and has been teaching there for many years. He is affiliated with the Institute of Mathematics and Informatics at the Bulgarian Academy of Sciences. His professional focus is on research, experimentation, computer programming, and teaching in the fields of programming languages, geometric computing, vector computer graphics, and programming. Mr. Bantchev’s teaching experience includes lecturing in English and Russian.
Trayan Iliev develops end-to-end reactive full-stack applications and services using ES, TypeScript, React, Angular, and Vue.js clients, and Flask (Python), Ktor (Kotlin), Express (TypeScript), Spring, Java EE, Reactor, Kafka, and Golang back-ends. He has 18+ years of software development experience and 15+ years experience as an enterprise IT trainer. Trayan’s expertise covers novelties in front-end and REST/gRPC/GraphQL backend development – reactive UI, end-to-end reactive programming, distributed event stream processing, distributed machine learning, and real-time micro-service architectures. He is а real robotics / smart-things/ IoT enthusiast.
Are you ready to take up the challenge?
Share with us your information and let’s get started!