首页
网站开发
桌面应用
管理软件
微信开发
App开发
嵌入式软件
工具软件
数据采集与分析
其他
首页
>
> 详细
COMP3411代做、python语言程序代写
项目预算:
开发周期:
发布时间:
要求地区:
COMP3411/9814 Assignment 3
1/6
COMP3411 Artificial Intelligence
Term 1, 2024
Assignment 3 – Nine-Board Tic-Tac-Toe
Due: Friday 19 April, 10 pm
Marks: 16% of final assessment
Introduction
In this assignment you will be writing an agent to play the game of Nine-Board Tic?Tac-Toe. This game is played on a 3 x 3 array of 3 x 3 Tic-Tac-Toe boards. The first
move is made by placing an X in a randomly chosen cell of a randomly chosen board.
After that, the two players take turns placing an O or X alternately into an empty cell
of the board corresponding to the cell of the previous move. (For example, if the
previous move was into the upper right corner of a board, the next move must be
made into the upper right board.)
The game is won by getting three-in-a row either horizontally, vertically or diagonally
in one of the nine boards. If a player is unable to make their move (because the
relevant board is already full) the game ends in a draw.
Getting Started
Copy the archive src.zip into your own filespace and unzip it. Then type You
should then see something like this: You can now play Nine-Board Tic-Tac-Toe
against yourself, by typing a number for each move. The cells in each board are
numbered 1, 2, 3, 4, 5, 6, 7, 8, 9 as follows:
cd src
make all
./servt -x -o
. . . | . . . | . . .
. . . | . . . | . . .
. . . | . . . | . . .
------+-------+------
. . . | . . . | . . .
COMP3411/9814 Assignment 3
2/6
. . . | . . . | . . .
. . . | . . x | . . .
------+-------+------
. . . | . . . | . . .
. . . | . . . | . . .
. . . | . . . | . . .
next move for O ?
+-----+
|1 2 3|
|4 5 6|
|7 8 9|
+-----+
To play against a computer player, you need to open another terminal window (and to
the directory). cd src
Type this into the first window:
./servt -p 12345 -x
This tells the server to use port for communication, and that the moves for will be
chosen by you, the human, typing at the keyboard. (If port is busy, choose another 5-
digit number.) 12345 X 12345
You should then type this into the second window (using the same port number):
./randt -p 12345
The program simply chooses each move randomly among the available legal moves.
The Python program behaves in exactly the same way. You can play against it by
typing this into the second window: You can play against a somewhat more
sophisticated player by typing this into the second window: (If you are using a Mac,
type instead of randt agent.py
python3 agent.py -p 12345
./lookt -p 12345
COMP3411/9814 Assignment 3
3/6
./lookt.mac ./lookt )
Writing a Player
Your task is to write a program to play the game of nine-board tic-tac-toe as well as
you can. Your program will receive commands from the server and must send back a
single digit specifying the chosen move.
(the parameters for these commands are explained in the comments of (init,
start(), second_move(), third_move(), last_move(), win(), loss(),
draw(), end()) agent.py)
Communication between the server and the player(s) is illustrated in this brief
example:
Player X Server Player O
← init
init →
← start(x)
start(o) →
second_move(6,1) →
← 6
← third_move(6,1,6)
9 →
next_move(9) →
← 6
← next_move(6)
5 →
last_move(5) →
← win(triple)
loss(triple) →
← end
end →
Language Options
You are free to write your player in any language you wish.
1. If you write in Python, you should submit your .py files (including your program
will be invoked by: agent.py);
python3 agent.py -p (port)
COMP3411/9814 Assignment 3
4/6
2. If you write in Java, you should submit your .java files (no .class files). The main
file must be called your program will be invoked by: Agent.java;
java Agent -p (port)
3. If you write in C or C++, You should submit your source files (no object files) as
well as a Makefile which, when invoked with the command "make", will produce
an executable called your program will be invoked by: agent;
./agent -p (port)
If you wish to write in some other language, let us know.
Starter Code
Two types of starter code are provided. The src directory contains a minimally
functioning agent in each language which connects to the socket and plays random
moves The directory code/ttt contains a standalone program in each language which
plays normal (single board) tic-tac-toe and chooses its moves via alpha-beta search
(agent.py, Agent.java, agent.c). (ttt.py, ttt.java, ttt.c).
Note: You are free to use some method other than alpha-beta search if you wish. The
starter code is simply meant to provide you with one viable option.
Testing Your Code
To play two computer programs against each other, you may need to open three
windows. For example, to play against using port type as follows: (Whichever
program connects first will play X; the other program will play O.)
You can alternatively use the shell script and provide the executables and port
number as command-line arguments. Here are some examples: The strength of can
be adjusted by specifying a maximum search depth (default value is 9; reasonable
range is 1 to 18), e.g. agent lookt 54321,
window 1: ./servt -p 54321
window 2: ./agent -p 54321
window 3: ./lookt -p 54321
playt.sh,
./playt.sh ./agent ./lookt 12345
./playt.sh "java Agent" ./lookt 12346
COMP3411/9814 Assignment 3
5/6
./playt.sh "python3 agent.py" ./lookt 12347
lookt
./playt.sh "python3 agent.py" "./lookt -d 6" 31415
Question
At the top of your code, in a block of comments, you must provide a brief answer
(one or two paragraphs) to this Question:
Briefly describe how your program works, including any algorithms and data
structures employed, and explain any design decisions you made along the way.
Groups
This assignment may be done individually, or in groups of two students. Groups are
determined by an SMS field called . Every student has initially been assigned a
unique which is followed by their student ID number, e.g. .
pair3 pair3 "h" h1234567
1. If you plan to complete the assignment individually, you don't need to do
anything (but, if you do create a group with only you as a member, that's ok too).
2. If you wish to form a pair, you should go to the WebCMS page and click on
"Groups" in the left hand column, then click "Create". Click on the menu for
"Group Type" and select "pair". After creating a group, click "Edit", search for
the other member, and click "Add". WebCMS assigns a unique group ID to each
group, in the form of followed by six digits (e.g. ). We will periodically run a script
to load these values into SMS. "g" g012345
Submission
You should submit by typing:
give cs3411 hw3 ...
Remember to include all necessary files in your submission (including the one with
the answer to the Question).
You can submit as many times as you like – later submissions will overwrite earlier
ones. You can check that your submission has been received by using the following
command:
3411 classrun -check
COMP3411/9814 Assignment 3
6/6
The submission deadline is Friday 19 April, 10 pm.
5% penalty will be applied to the mark for every 24 hours late after the deadline, up
to a maximum of 5 days (in accordance with UNSW policy).
Additional information may be found in the FAQ and will be considered as part of the
specification for the project.
Questions relating to the project can also be posted to the Forum on WebCMS.
If you have a question that has not already been answered on the FAQ or the Forum,
you can email it to cs3411@cse.unsw.edu.au
Marking scheme
10 marks for performance against a number of pre-defined opponents.
6 marks for Algorithms, Style, Comments and answer to the Question
You should always adhere to good coding practices and style. In general, a program
that attempts a substantial part of the job but does that part correctly will receive
more marks than one attempting to do the entire job but with many errors.
Plagiarism Policy
Your program must be entirely your own work. In addition, soliciting another person
(or an AI bot) to write code for you – either in person or through the Internet – is
never permitted. Generally, the copying of code already available on the Internet is
also forbidden. If you find some piece of "standard" code in a textbook, or on the
Internet, which you would like to adapt and incorporate into your own assignment,
you must email the lecturer in charge to ask if it is permissible to do so in the
particular circumstances – in which case the source would have to be acknowledged
in your submission, and you would need to demonstrate that you had done a
substantial amount of work for the assignment yourself. Plagiarism detection
software will be used to compare all submissions pairwise and serious penalties will
be applied, particularly in the case of repeat offences.
DO NOT COPY FROM OTHERS; DO NOT ALLOW ANYONE TO SEE YOUR CODE
Please refer to the UNSW Policy on Academic Integrity and Plagiarism if you require
further clarification on this matter.
Good luck!
软件开发、广告设计客服
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
软件定制开发网!