cis3296f24 / Section4-ProjectPresentation

cis3296f24-classroom-project-presentation-ProjectsFeedbackBoard-template created by GitHub Classroom
0 stars 0 forks source link

CasinoPy #1

Open kvijay04 opened 6 days ago

kvijay04 commented 6 days ago

Project Abstract: This document proposes a game suite of several popular casino games, such as Blackjack, Poker, Baccarat, Craps, and more. The user will be able to choose difficulty levels for the CPU, as well as chose between two modes: Open, and Vegas. Open mode gives the player an infinite amount of money, so they can play indefinitely, while Vegas mode will start the player with a finite amount of money up to $1,000.00, from which the player will have to attempt to grow their principal amount of money, or at least stay above $0. Additionally, the CPU will use a simple learning model to attempt to predict the users’ actions based on their previous actions in the game.

Conceptual Design: The games and the back-end will be programmed using python. At a minimum, the python libraries numpy and scikit-learn will be used to facilitate the game logic, as well as develop the learning models the game CPU will use. Depending on the personal preference of the programmers, Python may also be used to develop the front-end user interface, using a library such as Kivy. While more libraries may be utilized at later points, these specific libraries would be used for solutions to situations that have not yet been encountered. As such, it is not possible at this time to determine what these libraries will be, or if any additional libraries will be needed at all. The app will be designed to run on any operating system, which the use of Python would ensure, due to both languages being easily available to run on all major operating systems.

Proof of Concept: Github repository of proof of concept is here: https://github.com/kvijay04/Proof-of-Concept Instructions on dependencies, system requirements, and compilation details are in the repository’s Readme file.

Background: The program will always begin with a menu showing 4 options: The game the user wishes to play, the difficulty level, the mode (Open or Vegas), and a start button. There will be four difficulty modes: Easy, Medium, Hard, and Impossible. At Easy mode, the CPU will rarely play optimally, utilizing learning models minimally, while Impossible will heavily utilize learning models and play as optimally as possible. Medium and Hard modes will utilize learning models somewhat, but not to the same level as Impossible mode.

While there are several Casino game collection applications already available, this project will be differentiated by using fake money, and learning models to make the games more dynamic and challenging. A similar project was done for CIS3296 in previous years, however this project utilized Java and did not include the use of learning models, an Impossible mode, and featured different games from the games in this proposal (Pescaru et al. 1).

Required Resources: No hardware/physical resources will be necessary to develop this project besides the computer devices the project will be programmed on. The only required software resources are an IDE to program in, as well as the required libraries mentioned in the Conceptual Design section.

Sources: Pescaru, Calin, et al. “CIS3296S22/Casinosimulator: Java Project Simulating Common Casino Games.” GitHub, github.com/cis3296s22/CasinoSimulator. Accessed 5 Oct. 2024.

Slide: https://docs.google.com/presentation/d/1tm3myNFyKpIJZcMRYA5aSF3yjx_So2KuwpWegiQHo7A/edit#slide=id.p