Simple Chess game written in Python using 'chess' library.
test
Chess Board
- Summary of idea.
The chess board from our previous lab, but more enhanced, where you have more than two queens, you can have your horses/castles etc.
- What problem or pain point does it solve?
To visually know when my rocks are under attack and be prompted.
- Minimum Viable Product (MVP) definition.
A chess board, holding two teams rocks, you move both rocks, the program prompts you when you are under attack.
Solo Mode
Multiplayer Mode
Available Moves
As a player, I want to see my available moves, so that I can move a piece of mine to attack directly a piece of other player pieces
Under Attack
Chess Pieces
The second method called is render, it is called by an object of the ChessBoard class, it will use matplotlib to draw the board and show it to the user.
The add_red and add_blue methods are responsible to assign the chess pieces to the location provided by the user as input, it colors the square on the board and then calls the method render to update the view to the user.
Aseel -> Good analytical skills and conceptual thinking.
Hamzh -> Good debugging skills.
Hisham -> Good planning skills and strategic thinking.
Reema -> Good organizational skills.
Yahya -> Good trouble shooting skills and positive energy.
Having team members with good planning, strategic thinking and organizational skills will empower our team to have an efficient project plan especially in the early stages. Also, having members with good analytical skills will help us define our problem domain and to visualize the parts of the solution beforehand, and to provide the best strategy to handle the problem. Finally, having members in our team with good debugging and trouble shooting skills will help us solve errors/bugs in a timely manner and contribute to better optimize the solution.
We have room to improve ourselves in time and task management also in decision making relating to choosing the most convenient algorithm and in our testing skills.
We plan on scheduling stand up meetings daily to divide the tasks and responsibilities for each team member, review previous work and also discuss any challenges we face.
Firstly after meeting in a zoom call were all team members are present we will look for the branch with the issue and compare the last commit with the current work and decide on which parts to keep and which to remove.
We will have an internal meeting to discuss the matter in a diplomatic way ensuring the any misunderstandings are resolved with minimal damage. If we failed to solved internally, we’ll probably ask the instructional team for advice.
Communication is key when it comes to team work, we agreed on a strategy that ensures all team members are on the same page, by adding clear docstrings to each function and explaining it to the team by the responsible person.
During our daily meetings, we will make sure to communicate with members not contributing enough, and discuss possible working solution, as to overcome the issue.
If the conflict was not solved internally, we will escalate the conflict by reaching out the instructional team for help, support and advice.
The agreed on time availability is between 9:00 am - 5:00 pm. Extra working hours will be determined upon discussion according to each member availability.
We will be holding our meetings one Zoom, and we’ll use Slack for quick updates and announcements.
Breaks will be taken upon agreements, without a fixed schedule.
We will have a team meeting, where will re-prioritize the tasks according to their impact on the final outcome, and cooperate to meet the deadline.
Working during weekends and after hours will be upon every team member’s approval.
Every decision the team will make, will be based on voting.
Every time a member has the right to share his thoughts, perspectives and ideas regarding any work done.
Based on the problem domain, time available, and strengths of each team member tasks will be identified and assigned. Progress and the task completion will be monitored using a project tool by the team leader, following the agreed on timeline.
We will be using GitHub projects for managing the project, the team leader will be responsible for making sure that each feature task is being delivered on time.
All project’s file will be on GitHub, including the README file, the python files, Jupyter Notebooks.
Each team member will be set as an owner of the repository. Such that branches will be created according to features.
Each feature will have it’s own branch, pull request will be created after work is done.
Pull Requests will be reviewed daily in a session, and the team leader will be responsible for merging the approved PRs at the end of that session.