1. Homepage
  2. Programming
  3. COMP3411 Artificial Intelligence Assignment 3 - Nine-Board Tic-Tac-Toe

COMP3411 Artificial Intelligence Assignment 3 - Nine-Board Tic-Tac-Toe

Engage in a Conversation
UNSWCOMP3411Artificial IntelligenceNine-Board Tic-Tac-ToePython

Introduction
CourseNana.COM

COMP3411 Artificial Intelligence CourseNana.COM

Term 1, 2024 Assignment 3 – Nine-Board Tic-Tac-Toe CourseNana.COM

Due: Friday 19 April, 10 pm Marks: 16% of final assessment CourseNana.COM

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.) CourseNana.COM

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. CourseNana.COM

Getting Started CourseNana.COM

Copy the archive into your own filespace and unzip it. Then type CourseNana.COM

You should then see something like this: CourseNana.COM

src.zip CourseNana.COM

cd src
make all

./servt -x -o CourseNana.COM

...|...|... ...|...|... ...|...|... ------+-------+------ ...|...|... ...|...|... ...|..x|... CourseNana.COM

------+-------+------ ...|...|... ...|...|... ...|...|... CourseNana.COM

next move for O ? CourseNana.COM

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: CourseNana.COM

+-----+
|1 2 3|
|4 5 6|
|7 8 9|
+-----+

To play against a computer player, you need to open another terminal window (and cd to the src directory). CourseNana.COM

Type this into the first window: CourseNana.COM

This tells the server to use port 12345 for communication, and that the moves for X will be chosen by you, the human, typing at the keyboard. (If port 12345 is busy, choose another 5-digit number.) CourseNana.COM

You should then type this into the second window (using the same port number): CourseNana.COM

The program randt simply chooses each move randomly among the available legal moves. The Python program agent.py behaves in exactly the same way. You can play against it by typing this into the second window: CourseNana.COM

You can play against a somewhat more sophisticated player by typing this into the second window: CourseNana.COM

./servt -p 12345 -x CourseNana.COM

./randt -p 12345 CourseNana.COM

python3 agent.py -p 12345 CourseNana.COM

./lookt -p 12345 CourseNana.COM

(If you are using a Mac, type ./lookt.mac instead of ./lookt )
CourseNana.COM

Writing a Player CourseNana.COM

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 (init, start(), second_move(), third_move(), last_move(), win(), loss(), draw(), end()) and must send back a single digit specifying the chosen move. CourseNana.COM

(the parameters for these commands are explained in the comments of agent.py) Communication between the server and the player(s) is illustrated in this brief CourseNana.COM

example: CourseNana.COM

Language Options CourseNana.COM

CourseNana.COM

→ → ← CourseNana.COM

→ ← CourseNana.COM

→ → → CourseNana.COM

You are free to write your player in any language you wish. CourseNana.COM

1. If you write in Python, you should submit your .py files (including your program will be invoked by: CourseNana.COM

agent.py); CourseNana.COM

python3 agent.py -p (port) CourseNana.COM

  1. 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: CourseNana.COM

  2. 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: CourseNana.COM

If you wish to write in some other language, let us know. CourseNana.COM

Starter Code CourseNana.COM

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 (agent.py, Agent.java, agent.c). 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 (ttt.py, ttt.java, ttt.c). CourseNana.COM

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. CourseNana.COM

Testing Your Code CourseNana.COM

To play two computer programs against each other, you may need to open three windows. For example, to play agent against lookt using port 54321, type as follows: CourseNana.COM

(Whichever program connects first will play X; the other program will play O.)
You can alternatively use the shell script
playt.sh, and provide the executables and port number as command-line arguments. Here are some examples: CourseNana.COM

Agent.java; CourseNana.COM

java Agent -p (port) CourseNana.COM

./agent -p (port) CourseNana.COM

window 1: ./servt -p 54321 window 2: ./agent -p 54321 window 3: ./lookt -p 54321 CourseNana.COM

./playt.sh ./agent ./lookt 12345 ./playt.sh "java Agent" ./lookt 12346 CourseNana.COM

./playt.sh "python3 agent.py" ./lookt 12347 CourseNana.COM

The strength of lookt can be adjusted by specifying a maximum search depth (default value is 9; reasonable range is 1 to 18), e.g. CourseNana.COM

Question CourseNana.COM

At the top of your code, in a block of comments, you must provide a brief answer (one or two paragraphs) to this Question: CourseNana.COM

Groups CourseNana.COM

This assignment may be done individually, or in groups of two students. Groups are determined by an SMS field called pair3 . Every student has initially been assigned a unique pair3 which is "h" followed by their student ID number, e.g. h1234567 . CourseNana.COM

  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). CourseNana.COM

  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 "g" followed by six digits (e.g. g012345 ). We will periodically run a script to load these values into SMS. CourseNana.COM

Get in Touch with Our Experts

WeChat (微信) WeChat (微信)
Whatsapp WhatsApp
UNSW代写,COMP3411代写,Artificial Intelligence代写,Nine-Board Tic-Tac-Toe代写,Python代写,UNSW代编,COMP3411代编,Artificial Intelligence代编,Nine-Board Tic-Tac-Toe代编,Python代编,UNSW代考,COMP3411代考,Artificial Intelligence代考,Nine-Board Tic-Tac-Toe代考,Python代考,UNSWhelp,COMP3411help,Artificial Intelligencehelp,Nine-Board Tic-Tac-Toehelp,Pythonhelp,UNSW作业代写,COMP3411作业代写,Artificial Intelligence作业代写,Nine-Board Tic-Tac-Toe作业代写,Python作业代写,UNSW编程代写,COMP3411编程代写,Artificial Intelligence编程代写,Nine-Board Tic-Tac-Toe编程代写,Python编程代写,UNSWprogramming help,COMP3411programming help,Artificial Intelligenceprogramming help,Nine-Board Tic-Tac-Toeprogramming help,Pythonprogramming help,UNSWassignment help,COMP3411assignment help,Artificial Intelligenceassignment help,Nine-Board Tic-Tac-Toeassignment help,Pythonassignment help,UNSWsolution,COMP3411solution,Artificial Intelligencesolution,Nine-Board Tic-Tac-Toesolution,Pythonsolution,