首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
EECS 22L代做、代写c++程序语言
项目预算:
开发周期:
发布时间:
要求地区:
EECS 22L Project 2: Online Poker
May 7, 2024
1 Online Poker Application
This is the second team programming project of EECS 22L, ”Software Engineering Project in C language”.
The goal of this programming exercise is to design and develop a poker application in which a user can play with
other players across the Internet. To play the game, users need to connect to the host server, enter their name, and
choose a seat. Human users will also connect to Zoom in parallel, so that players can chat and have fun together. This
version of poker will be a game among friends, with no gambling involved.
After the dealer has dealt the cards, each player will have a turn to take. The poker application should be able to deal
cards to players and maintain the game automatically. The mandatory (default) poker variant is Texas Hold’em for
this project, but different variants can be provided optionally.
This project is designed to be an interesting exercise where you can practice essential elements of software engineering
and work in teams. In particular, you will practice specifying and documenting the software program, designing
data structures and algorithms, designing software modules, writing original source code, testing and debugging the
software program, and collaborating and communicating effectively in a team.
1.1 The rules of Poker
Poker is a relatively simple game to learn. In Texas Hold’em Poker, the dealer hands two cards to each player. Then
a round of betting takes place in a clockwise manner from the dealer. The ffrst player declares a starting bet which
the next player can either match (’call’), ’raise’, or drop (’fold’). If they cannot match the bet and choose to drop, the
game continues without them. After each player has bet, the ffrst round of the game is completed. The dealer then
places three community cards facing up in the middle of the table. Each consecutive round an additional community
card is placed, for a maximum of ffve. Once all ffve community cards are placed, the ’showdown’ begins, where
each player compares their two cards with the cards on the table. Then the winner is the player who has the best ’hand’.
Figure 1 shows the possible poker ’hands’ available, in decreasing order of value. Further rules and documentation
can be found online.
2 Program Speciffcation
In this project, we want to design an online poker game consisting of a central server which can host a Texas Hold’em
variant of poker. Then guest users should be able to connect and play poker with the central host.
There are several features that we expect the poker program to have. We distinguish between the minimum requirements
for this project, and more advanced options that are goals and optional features (bonus points).
1Figure 1: Different possible poker hands. Source- upswingpoker.com/poker-hands-rankings/
2.1 Basic functions that are required:
1. Each player should be able to connect with the online poker program and choose their seat, and their name
should be shown when playing the game.
2. The server keeps track of the points for each player. We do not want a gambling application, but a card game
among friends!
3. The server deals the cards to the various players, and also randomly shufffes them.
4. The server needs to properly end a game during the ffnal round and award the winner with points.
5. For this project, a graphical user interface is mandatory at the client (user) side. It is highly recommended to use
GTK 2.0.
6. Program should have at least one basic Bot Player.
7. Git version control is mandatory for this project.
8. To communicate between the server and users, TCP/IP communication should occur via sockets.
9. Unit test for all major modules in the project.
10. Well structured user/software deliverable and detailed documentation which meets the requirements speciffed in
the grading criteria.
22.2 Advanced options that are desirable (but optional): (Bonus)
1. A simple timer which lets others know how long the round is. This could be useful if users are not playing via
Zoom.
2. A scoreboard in the end showing player rankings and what poker hands that they received.
3. The ability to switch to other variations of poker such as Omaha Hi-Lo, 7-Card Stud etc..
4. Any other features that make Poker more fun.
3 Software Engineering Approach
In the design and implementation of this project, we will follow basic principles of software engineering in a close-toreal-world
setting. You will practice the major tasks in software engineering to build your own software product. We
will not provide detailed instructions on how to design the program as we did for the assignments in EECS22. Instead,
your team needs to come up with your own choices and practice designing the software architecture of a medium-size
program and document it.
3.1 Team work
The software design programming in this course will be performed by student teams. Teams of 4-6 students will be
formed at the beginning of this project. Team work is an essential aspect of this class and every student needs to
contribute to the team effort. While tasks may be assigned in a team to individual members, all members eventually
share the responsibility for the project deliverables.
The overall tasks of software design, implementation and documentation should be partitioned among the team members,
for example, to be performed by individuals or pairs (pair programming). A possible separation into tasks or
program modules may include:
• Poker rules
• Poker server program
• Poker client program
• Graphical user interface for Poker players
• Communication protocol (data structures for sockets)
• Smart Poker bot
• Documentation
• Testing
When planning the team partitioning, keep in mind that certain tasks depend on others and that some tasks are best
handled by everyone together.
A team account will be provided on the servers (bondi, laguna, crystalcove and zuma) for each team to
share source codes, data and document ffles among the team members. Sharing of ffles across teams is not permitted.
Every student is expected to show up and participate in team meetings. Attendance of the weekly discussion and
lab sections is mandatory for the sake of successful team work.
33.2 Major project tasks
We list several steps here to approach the medium-sized programming project.
• Design the software application speciffcation: work as a team to decide the functionalities of the program, the
input and output of the program, and other things that describe the features of the program for the users.
• Design the software architecture speciffcation: work as a team to design the data structure, program modules,
application programming interface (API) and functions between modules.
• Build the software package: write the source code and implement the program. Each team member may be in
charge of their own modules and ideally work in parallel on implementation and module testing. Use Makeffle
for rule-based compilation to integrate the modules from different owners.
• Version control and collaboration: use a version control application, i.e. Git (introduced in Lecture 3) to maintain
the team project documentation and source code ffles. Team members can synchronize their own work with
the others through the team repository located in the team account.
• Test and debug the software: work as a team to decide the testing strategies, write automated test programs or
scripts, and debug the program when some of the test cases fail.
• Software release: release the software package with the executable program and documentation, e.g. the
README ffle, user manual, etc. Release also the source code as a package for the further developers or
maintainers. In contrast to Project 1, Project 2 has 3 software releases, alpha, beta, and ffnal release.
3.3 Deliverables
Each team needs to work together and submit one set of deliverables each week. Here is the checklist of the ffles the
team needs to submit and the due dates (hard deadlines).
Table 1: The Online Poker Project Deliverables
Week File Name File Description Due Date
1 Poker UserManual.pdf The application speciffcation 05/13/24 at 10:00am
2 Poker SoftwareSpec.pdf The software architecture speciffcation 05/20/24 at 10:00am
3 Poker Alpha.tar.gz The alpha version of the poker program, 05/27/24 at 10:00am
Poker Alpha src.tar.gz including the program source code and documentation
4 Poker Beta.tar.gz The beta version of the poker program, 06/03/24 at 10:00am
Poker Beta src.tar.gz including the program source code and documentation
5 Poker V1.0.tar.gz The released software package for the poker program 06/10/24 at 10:00am
Poker V1.0 src.tar.gz and the program source code and documentation
Note that we do require these exact ffle names. If you use different ffle names, we will not see your ffles for grading.
We will separately provide detailed templates (document skeleton, table of expected contents) for the textual documents
and a detailed list of contents (directory structure and expected ffles) for the ffle archives. These grading
criteria will be provided at the Projects tab of the course webpage.
3.4 Submission for grading
To submit your team’s work, you have to be logged in the server zuma or crystalcove by using your team’s
account. Also, you need to create a directory named poker in your team account, and put all the deliverables in
that directory. Next, change the current directory to the directory containing the poker directory. Then type the
command:
% ∼eecs22/bin/turnin.sh
which will guide you through the submission process.
4For each deliverable, You will be asked if you want to submit the script ffle. Type yes or no. If you type “n” or
“y” or just plain return, they will be ignored and be taken as a no. You can use the same command to update your
submitted ffles until the submission deadline.
Below is an example of how you would submit your team work:
zuma% ls # This step is just to make sure that you are in the correct directory that contains poker/
poker/
zuma% ∼eecs22/bin/turnin.sh
==============================================================
EECSL 22L Spring 2024:
Project "poker" submission for team0
Due date: Mon May 13 10:00:00AM 2024
* Looking for files:
* Poker UserManual.pdf
==============================================================
Please confirm the following: *
"I have read the Section on Academic Honesty in the *
UCI Catalogue of Classes (available online at *
http://www.editor.uci.edu/catalogue/appx/appx.2.htm#gen0) *
and submit original work accordingly." *
Please type YES to confirm. yes
==============================================================
Submit Poker UserManual.pdf [yes, no]? yes
File Poker UserManual.pdf has been submitted
==============================================================
Summary:
==============================================================
Submitted on Sun May 5 00:05:31 2024
You just submitted file(s):
Poker UserManual.pdf
zuma% _
For a binary package, we expect the user to read the documentation and run the executable program as follows:
% gtar xvzf BinaryArchive.tar.gz
% evince poker/doc/poker.pdf
% poker/bin/poker
For a source code package, we expect the developer to read the documentation and build the software as follows:
% gtar xvzf SourceArchive.tar.gz
% more README
% more INSTALL
% cd poker
% make
% make test
% make clean
Again, please ensure that these commands execute cleanly on your submitted packages.
5
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
代做ceng0013 design of a pro...
2024-11-13
代做mech4880 refrigeration a...
2024-11-13
代做mcd1350: media studies a...
2024-11-13
代写fint b338f (autumn 2024)...
2024-11-13
代做engd3000 design of tunab...
2024-11-13
代做n1611 financial economet...
2024-11-13
代做econ 2331: economic and ...
2024-11-13
代做cs770/870 assignment 8代...
2024-11-13
代写amath 481/581 autumn qua...
2024-11-13
代做ccc8013 the process of s...
2024-11-13
代写csit040 – modern comput...
2024-11-13
代写econ 2070: introduc2on t...
2024-11-13
代写cct260, project 2 person...
2024-11-13
热点标签
mktg2509
csci 2600
38170
lng302
csse3010
phas3226
77938
arch1162
engn4536/engn6536
acx5903
comp151101
phl245
cse12
comp9312
stat3016/6016
phas0038
comp2140
6qqmb312
xjco3011
rest0005
ematm0051
5qqmn219
lubs5062m
eee8155
cege0100
eap033
artd1109
mat246
etc3430
ecmm462
mis102
inft6800
ddes9903
comp6521
comp9517
comp3331/9331
comp4337
comp6008
comp9414
bu.231.790.81
man00150m
csb352h
math1041
eengm4100
isys1002
08
6057cem
mktg3504
mthm036
mtrx1701
mth3241
eeee3086
cmp-7038b
cmp-7000a
ints4010
econ2151
infs5710
fins5516
fin3309
fins5510
gsoe9340
math2007
math2036
soee5010
mark3088
infs3605
elec9714
comp2271
ma214
comp2211
infs3604
600426
sit254
acct3091
bbt405
msin0116
com107/com113
mark5826
sit120
comp9021
eco2101
eeen40700
cs253
ece3114
ecmm447
chns3000
math377
itd102
comp9444
comp(2041|9044)
econ0060
econ7230
mgt001371
ecs-323
cs6250
mgdi60012
mdia2012
comm221001
comm5000
ma1008
engl642
econ241
com333
math367
mis201
nbs-7041x
meek16104
econ2003
comm1190
mbas902
comp-1027
dpst1091
comp7315
eppd1033
m06
ee3025
msci231
bb113/bbs1063
fc709
comp3425
comp9417
econ42915
cb9101
math1102e
chme0017
fc307
mkt60104
5522usst
litr1-uc6201.200
ee1102
cosc2803
math39512
omp9727
int2067/int5051
bsb151
mgt253
fc021
babs2202
mis2002s
phya21
18-213
cege0012
mdia1002
math38032
mech5125
07
cisc102
mgx3110
cs240
11175
fin3020s
eco3420
ictten622
comp9727
cpt111
de114102d
mgm320h5s
bafi1019
math21112
efim20036
mn-3503
fins5568
110.807
bcpm000028
info6030
bma0092
bcpm0054
math20212
ce335
cs365
cenv6141
ftec5580
math2010
ec3450
comm1170
ecmt1010
csci-ua.0480-003
econ12-200
ib3960
ectb60h3f
cs247—assignment
tk3163
ics3u
ib3j80
comp20008
comp9334
eppd1063
acct2343
cct109
isys1055/3412
math350-real
math2014
eec180
stat141b
econ2101
msinm014/msing014/msing014b
fit2004
comp643
bu1002
cm2030
联系我们
- QQ: 9951568
© 2021
www.rj363.com
软件定制开发网!