mightiestmints / pacman Goto Github PK
View Code? Open in Web Editor NEWFinal Project for CS 440
Final Project for CS 440
Pass in an int to determine which maze pacman will use
Mimic X and Y coordinates logic in Pacman
Every 5 states, spawn a new ghost on the 'G' every 5 states while the # of Ghosts is not all on the board.
Write a section discussing the framework of the project (i.e. the origins of the Pacman object, the Ghost object, and Playgame)
Discuss inspirations and decision points. Import to project as a textfile titled Framework-Corey
Discuss decisions made with reinforcement and Q table implementation.
Import to project as ReinforcementLearning.txt
Ghosts should be created in main and passed into playGame to have a wider range of control with the experiment.
See if a board represented as a dictionary or array would decrease lookup time and operations
We already thought of a few areas to test our program and compare data between the AI algorithms, but need more. I am currently working on these, but if you guys have any ideas of stuff that we should include, please let me know!
Make Pac Man and all ghosts respawn after Pac Man touches a ghost
Discuss decisions and implementation of IDS for PacMans bloodhunter AI.
Import to project a txt titled PacManIDS-Justin.txt
When a ghost moves over a dot that dot is removed from the game, which leads to pac-man never being able to win
'P' and 'G' being on the board after starting the game play makes it slightly confusing to keep track of what is going on.
Could benefit from storing the locations of spawn points at the beginning of the game, to keep that information available, and then replacing 'P' and 'G' with spaces to make it easier to understand what's happening.
When PlayGame is first called, it should loop through the board, create a list of Dot objects, create an empty list of Ghost objects (to be filled later), and a Pacman object.
Discuss decision points for the GameBoard object, and why we wanted to move to an object oriented design.
Import to project as a textfile titled Gameboard-Braden.txt
Create the Dot class. This should have
Add an integer to the PlayGame function that determines how many Ghosts to spawn on the board.
Move all Dot object functionality to a new Board object.
Add intelligence int variable to the Ghost object, which will affect maxDepth in the Ghost's IDS
Implement preliminary AI for the Ghost to perform a Random Move
Decrement a Score integer every state of the game. Increment the Score integer by 10 when Pacman eats a dot, and Decrement it by 100 if Pacman dies.
The function runFromGhost() in PacMan.py doesn't know how to properly handle if ghost is on other side of a board and may be going through a teleport.
For example, pacman might run from ghost through the teleport then think it okay to move around the teleport but when ghost comes through it eats pacman.
I think that I have a basic implementation of IDS for PacMan looking for the closest dots, and have a way of checking to see if there is a ghost too close to the dot to warrant getting that dot, but I'm not sure what is the best way to implement PacMan running away from the ghost.
I was thinking a really simple solution would be to add a check in actions that will check to see if ghost is within a certain distance from the current location and if it is, remove that direction from possible actions all together. This way the next move PacMan makes will always be away from the ghost given a specific distance.
I believe that given this case PacMan will just run away from PacMan until he gets a clear shot to another dot, not in the way of ghosts. What are thoughts on this idea?
Implement a dynamic IDS AI
Update Pac Man and Ghost Action functions to be able to handle teleporting
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.