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 WX:codinghelp
- 威尔特(广州)流体设备有限公司企业文化分析
- Telegram营销软件采集器,手把手教你TG全自动群组采集
- 量子商务的超凡先知:通过zalo筛选器打造产品在海外市场的文化适应性
- 从零开始 WhatsApp拉群工具是外贸小白的亲身感官之旅
- 做完近视手术,爱尔英智眼科医院王文娟主任提醒您还需注意这3点
- 款款而至,耀启新春 | 同仁堂健康品质年货“龙”重登场
- WhatsApp营销软件/ws协议号/ws群发工具/ws自动注册
- Ins/Instagram精准引流软件,ins群发营销打粉新高度!
- instagram引流群控推广软件,ins粉丝精准引流群发助手
- Instagram批量养号 - ins自动登录/ig采集指定地区/ins群发软件
- Instagram引流软件,Ins一键自动增粉,打破爆粉秘籍!
- 科技之眼WhatsApp工具 科技魔法师使用的商业预知工具 解码市场趋势的未来密码
- 市场风向标WhatsApp工具成功博主推崇助你准确揭示市场趋势实现业务成功
- 中囤律商信用管理有限公司:引领企业信用修复与ISO体系认证的新篇章
- WhatsApp群发云控助您告别繁琐推送,一切尽在掌握
- 悬崖边的高合汽车:订单低迷,工厂减产只发底薪
- 益宝健康入选中国信通院《数字医疗产品及服务高质量发展全景图》
- 代做1CWK100、代写C/C++程序语言
- TT语音公司六次上榜中国互联网综合实力百强企业
- 解锁数字商海的全新纪元:2024年WhatsApp筛选器拉群人才引领行业巅峰
- 世贸通美国移民EB5投资移民:每年超100万人选择移民美国
- 聚焦新质生产力:从年报解读粤企“新”动向
- WhatsApp全球拉群,ws协议号一键注册/ws群发策略/ws养号技巧
- Telegram营销软件如何主宰群发筛选引流市场
- Instagram引流助手,Ins拉群软件,共同助你实现营销目标!
- CE-Channel: Paving the Way for Brand Expansion Abroad with Tailored International Solutions
- “数字卫生”:在“世界备份日”安心无忧地备份数据
- 超越期望 定制体验 WhatsApp拉群工具如何满足每位用户的个性诉求
- 引领环保新风向,上海国际环保展观众预登记全面开启!
- 专业人士提问 WhatsApp拉群营销工具在海外业务上到底有没有立竿见影的效果
推荐
- B站更新决策机构名单:共有 29 名掌权管理者,包括陈睿、徐逸、李旎、樊欣等人 1 月 15 日消息,据界面新闻,B站上周发布内部 科技
- 疫情期间 这个品牌实现了疯狂扩张 记得第一次喝瑞幸,还是2017年底去北京出差的 科技
- 全力打造中国“创业之都”名片,第十届中国创业者大会将在郑州召开 北京创业科创科技中心主办的第十届中国创业 科技
- 苹果罕见大降价,华为的压力给到了? 1、苹果官网罕见大降价冲上热搜。原因是苹 科技
- 升级的脉脉,正在以招聘业务铺开商业化版图 长久以来,求职信息流不对称、单向的信息传递 科技
- 老杨第一次再度抓握住一瓶水,他由此产生了新的憧憬 瘫痪十四年后,老杨第一次再度抓握住一瓶水,他 科技
- 智慧驱动 共创未来| 东芝硬盘创新数据存储技术 为期三天的第五届中国(昆明)南亚社会公共安 科技
- 丰田章男称未来依然需要内燃机 已经启动电动机新项目 尽管电动车在全球范围内持续崛起,但丰田章男 科技
- 创意驱动增长,Adobe护城河够深吗? Adobe通过其Creative Cloud订阅捆绑包具有 科技
- 如何经营一家好企业,需要具备什么要素特点 我们大多数人刚开始创办一家企业都遇到经营 科技