-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathproject_report.txt
101 lines (79 loc) · 4.41 KB
/
project_report.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
CSCB58 Project Report: Winter 2019
Team Member A
-------------
First Name: Joey
Last Name: Lakerdas-Gayle
Student Number: 1004029268
UofT E-mail Address: [email protected]
Team Member B
-------------
First Name: Evan
Last Name: Ng
Student Number: 1004166662
UofT E-mail Address: [email protected]
Team Member C (Optional)
-------------
First Name: Chanzo
Last Name: Bryan
Student Number: 1004015683
UofT E-mail Address: [email protected]
Team Member D (Optional)
-------------
First Name: Anson
Last Name: Tran
Student Number: 1004285098
UofT E-mail Address: [email protected]
Project Plan
--------
Project Title: Cards
Provide a one paragraph description of your project:
This is a set of different card games. The user can choose one of the card games from
a menu and play it. Multiplayer games are played against the computer. The computer keeps
track of points/bets for the duration of the game.
What is your plan for the first week?
Implement basic modules for a generic card game
- drawing/animation
- points/currency/betting
- dealing logic (keep track of who has which cards, which cards are left in the deck)
- user interaction:
- selecting cards
- clicking "buttons" (like "draw", "hit", "pass")
- implement "cursor" controlled by mouse or keyboard
- common modules for manipulating cards
- deal n cards to a player
- data manipulation
- how to represent players, and cards
- how to read/write player and card data
What is your plan for the second week?
- War
- implement logic modules for war
- complete war
What is your plan for the third week?
- Add menu to choose game
- Add more card games (should be pretty quick once we've got one game working since the
other games can reuse the same modules). Some of these require simple decision making
by the computer implemented with FSM's
- black jack
- go fish
- crazy eights
- solitaire
- more if we have extra time
What is your backup plan if things don?t work out as planned?
- Focus on completing at least war
Weekly Reports
--------------
<In this space, provide a report each week of what worked and what didn't, and what (if any) changes were made to your proposal)>
Week 1:
We added a way to print pixels to a specified position onto the monitor. In addition, we created FSM's in order to draw the card suits (clubs, spades, hearts, diamonds) and also draw a card. We also added a way to store cards in memory, and to create a player's "hand" with a linked list of cards, with the ability for a player to play (remove) a card from their hand, and to draw (add) a card. And we created a module that generates random values and a module that outputs a random value between two input values which will be used for dealing.
Week 2:
We created more FSM's in order to draw card numbers (2-10). The ram management was also cleaned up, it is now easiser to access cards. We also created a way to find unused blocks of memory. Combining this with the linked lists from last week, we can dynamically create a players hand without having to handpick memory address to store the cards. Outputting to VGA was also fixed, so now we can reliable output the images we want. We also updated the random number generator to be faster and easier to use.
Week 3:
We created a way to control ram operations and be able to manipulate and access data in memory with ease. We also created a way to store how to draw cards, and the FSM to draw the cards (with suit and number), so we can now display what a player is holding on the screen. We created all the nessessary files to generate all the suits and all ranks(A-9, J,Q,K) in both black and red. Also worked on logic of War.
Week 4:
We created the logic for the war game. Cards of a given value and suit are now able to be drawn on the VGA to a given x, and y value. We also created a way to draw cards in a sequence. A way to control all the ram operations has been added, a controller for the ram operations is able to take in operation arguments and a select input. Using the random number generator, we are able to draw cards of a random suit and random value. A way to compare cards has also been added, so we are able to determine the winner of a round of war. The game is now fully functional and we can play a proper game of war.
References
----------
https://en.wikipedia.org/wiki/Xorshift
Repo & Video
------------
https://github.com/CLAKE709/B58Cards