首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
COMP2396代做、代写Java设计编程
项目预算:
开发周期:
发布时间:
要求地区:
This assignment tests your understanding on GUI, Java Socket Programming and the
COMP2396 Object-oriented programming and Java
Assignment 4: A two-player Tic-Tac-Toe Game
Due Date: 7th December 2023 23:59
application of multi-threading.
In this assignment, you are going to implement a two-player Tic-Tac-Toe Game. The
game would only start when the Tic-Tac-Toe Server runs and two players are connected
to the server. When the game starts, players need to input their player’s name first (i.e.,
the player cannot make any move if he/she does not enter his/her player’s name) (Fig.
1). Players are not allowed to re-input their names again once they have submitted their
names (i.e., the textboxes and the submit buttons should be disabled). In addition, their
names should be displayed in the frame’s title (i.e., change from Tic Tac Toe to Tic Tac
Toe-Player: (player’s name)) and the message title (located below the menu bar) should
change from “Enter your player name…” to “WELCOME (player’s name)” (Fig. 2).
Initial setting:
Fig. 1
After player enters his/her name:
Fig. 2
After entering the player’s name, the game would always be started by player 1 (the
player’s mark with a “x”)’s first move (i.e., player 2 (the player’s mark with a “o”)
cannot make his/her first move until player 1 makes his/her first move). If player 1’s
move is valid, his/her move would be marked as a “x” on the 3 x 3 board (The mark “x”
on the 3 x 3 board should be displayed on both player 1’s and player 2’s board). The
message title in the player 1’s board would be changed to “Valid move, wait for your
opponent.” while the message title in the player 2’s board would be changed to “Your
opponent has moved, now is your turn.”. Besides, player 1 is not allowed to make the
next move until his/her opponent moves (i.e., if player 1 makes the next move before
his/her opponent moves, it would be considered as an invalid move and nothing would
be displayed on the board). The turn would be switched to the opponent (this time player
2) and if player 2’s move is valid, it would be mark as a “o” on the 3 x 3 board on both
players. The message displayed in the message title of the player 2’s board would be
changed to “Valid move, wait for your opponent.” while the message title of the player
1’s board would be changed to “Your opponent has moved, now is your turn.” Similarly,
the turn would be switched to player 1 again and player 2 cannot make his/her next
move until player 1 makes the move (Fig. 3 & 4).
Fig. 3
Fig. 4
Criteria for a valid move:
- The move is not occupied by any mark.
- The move is made in the player’s turn.
- The move is made within the 3 x 3 board.
- Player 1 wins.
- Player 2 wins.
The game would continue and switch among the opposite player until it reaches either
one of the following conditions:
- Draw.
The winning condition is that when there is any row, column or diagonal that is filled
with the same mark (e.g., player 1 would win if there is any row, column or diagonal
that is filled with “x”, player 2 would win if there is any row, column or diagonal that
is filled with “o”). The game will draw if no players satisfy the winning condition after
all the board location is filled with mark. Once it reaches either one of the above
conditions, Message Dialog would be displayed on both players (the content of the
Message Dialog would be different, based on the condition reached, but all would
ask whether to restart the game.), both players cannot make further move, and
can select “Yes” to restart the game, or select “No” to exit the game. The
following screen captures show the Message Dialog displayed on the two players
when either one of the player wins (Fig. 5 & 6) or the game is draw (Fig. 7).
Fig. 5
Fig. 6
Fig. 7
In addition to the above, you also need to handle the case when one of the players left
during the game process. In this case, the game would terminate immediately (i.e., the
remaining player cannot make further move), a Message Dialog “Game Ends. One of
the players left.” would be displayed on the remaining player, as shown below in Fig.
8.
Fig. 8
Besides, as you can see in the screen captures, there is a JMenuBar which consists of 2
JMenu, named Control and Help (located above the message title). In the JMenu of
Control, it consists of a JMenuItem, named Exit while in the JMenu of Help, it consists
of a JMenuItem, named Instruction (Fig. 9 & 10). When the player clicks “Exit”, he/she
would exit from the game and the game would be terminated immediately. When the
player clicks “Instruction”, a Dialog Frame consists of some game information would
be displayed (Fig. 11).
Fig. 9 Fig. 10
Fig. 11
Important notes for the assignment:
1. In this assignment, you can assume both the server program and the client
programs run on local host (i.e., with IP address 127.0.0.1).
2. You can have your own design, but you must include the GUI components as
shown in the above screen captures and all the functionalities described in this
document should be implemented. To ensure your program has implemented all
necessary functions, please refer to the marking scheme below as for your
references.
3. This assignment will be marked by features (Your code would not be
investigated). You are required to write JavaDoc for all non-private classes and
non-private class member functions. Programs without JavaDoc will lead to
mark deduction. However, you don’t need to generate JavaDoc htmls. Just write
comment blocks in your source program.
4. You need to record a demo video of the program. The video should start before
you run the program and include all the features your program.
5. After completing the assignment, please submit all files (including demo videos
and java files) in a single compressed file (in .zip) to Moodle. Late submission
is NOT allowed. Do NOT submit .class files.
6. You will get 0 mark if:
You submit .class files instead of .java source files, or
You submit java source files that are downloaded from the Internet, or
You submit java source files from your classmates, or
You submit java source files from friends taken this course last year.
Marking Scheme:
Correct implementation of GUI
components:
-
-
-
-
-
1 JMenuBar which consists of 2
JMenu which each JMenu consists
of its corresponding JMenuItem
(6 marks)
1 message title (2 marks)
1 3 x 3 tic-tac-toe board (5 marks)
1 textbox for player’s entering
his/her name (2 marks)
1 submit button for submitting the
player’s name (2 marks)
Total 17 marks
Correct functionality of the game:
- Implementation of restricting players
to make their move before they
submit their names (5 marks)
- Implementation of restricting players
to enter and submit their names
more than ONCE (5 marks)
- Implementation of updating the
frame title after players submit their
names (5 marks)
- Implementation of correct message
title after players submit their names
and make a valid move (5 marks
each, total 10 marks)
Total 73 marks
-
-
-
-
-
-
-
-
Implementation of correct switching
between players after a player makes
a valid move (5 marks)
Implementation of the game is
started by Player 1’s move (5 marks)
Implementation of display player’s
mark on the board (for both players)
when one of the players makes a
valid move (5 marks)
Implementation of NOT display
player’s mark on the board (for both
players) if the player makes an
invalid move (5 marks)
Implementation of the 3 conditions:
Player 1 wins, Player 2 wins and
Draw (4 marks each, total 12 marks)
Implementation of the case when
one of the players left during the
game process (4 marks)
Implementation of the functionality
of Help (4 marks)
Implementation of the functionality
of Restart (4 marks)
Implementation of the functionality
of Exit (4 marks)
JavaDoc Total 10 marks
-
软件开发、广告设计客服
QQ:99515681
邮箱:99515681@qq.com
工作时间:8:00-23:00
微信:codinghelp
热点项目
更多
urba6006代写、java/c++编程语...
2024-12-26
代做program、代写python编程语...
2024-12-26
代写dts207tc、sql编程语言代做
2024-12-25
cs209a代做、java程序设计代写
2024-12-25
cs305程序代做、代写python程序...
2024-12-25
代写csc1001、代做python设计程...
2024-12-24
代写practice test preparatio...
2024-12-24
代写bre2031 – environmental...
2024-12-24
代写ece5550: applied kalman ...
2024-12-24
代做conmgnt 7049 – measurem...
2024-12-24
代写ece3700j introduction to...
2024-12-24
代做adad9311 designing the e...
2024-12-24
代做comp5618 - applied cyber...
2024-12-24
热点标签
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
软件定制开发网!