Application of connect-4 game, Computer Engineering

Assignment Help:

The game Connect-4 is played on a board that has seven columns. There are six spaces on each column. The board is initially empty. Two players take turns dropping one piece (black or grey in the diagram below, but "X" or O" in our game) in a column. The piece falls into the lowest unoccupied row. A player cannot move in a column if the top-most row of that column already has a piece in it. The first player to get four of their counters in a line (horizontally, vertically, or diagonally) is the winner. 

You have been provided with two files for this problem: minimax.lisp, which contains lisp code for the minimax algorithm, and  connect-4.lisp, which contains a working Lisp implementation of the Connect-4 game. 

As the Connect-4 implementation currently stands, you should  have absolutely no problem beating the program. Try it:  

[1]> (load 'minimax)

;; Loading file C:\CSE2AIF\minimax.lisp ...

;; Loaded file C:\CSE2AIF\minimax.lisp

T

[3]> (load connect-4)

;; Loading file C:\CSE2AIF\connect-4.lisp ...

;; Loaded file C:\CSE2AIF\connect-4.lisp

T

[3]> (play)  

The program plays poorly because it has a poor-quality heuristic. The function static, which evaluates a position from the point of view of a particular player, is currently defined as follows: (defun static (board player) 0)

This means that each board configuration receives exactly the same evaluation; i.e., 0.  Your task for this question is to develop and implement a good heuristic for the Connect-4 game.  The only LISP code that you are required to write is a LISP function static, which accepts a board and player as input arguments, and returns an evaluation of the board state from the point of view of player. You can, of course, write as many helper functions as you like.  

To assist you, the code you have been supplied with contains a parameter *all-c4-lines* which is a list of all of the 69 possible ways to win in Connect-4. Each element of this list is a list of length four, such as

 ((3 5) (4 5) (5 5) (6 5))

Each element of this is the column and row. For example, the above list indicates that there is a line of length four that includes a piece at the 4th column of the 6th row, the 5th  column of the 6th row, the 6th column of the 6th row, and the 7th column of the 6th row.

 Note that rows and column indexing starts at 0.

The Lisp built-in function  aref can be used to find what piece, if any, is at a specified location. For example, to find what piece, if any, occupies column col and row row of the current board state, evaluate the following code 

   (aref board col row)

This will return either nil, x or o.


Related Discussions:- Application of connect-4 game

What is content addressable memory, What is content addressable memory? ...

What is content addressable memory? The memory unit accessed by the content is known as an associative memory or content addressable memory. This type of memory is accessed con

Weka uses a gaussian - radial basis function, A data set with 1000 rows is ...

A data set with 1000 rows is input to a neural network in Weka. The test option is set to 10-fold cross validation and the neural network option validationSetSize = 20%. How many r

Describe one graphics and image editing tool, Question : Multimedia inv...

Question : Multimedia involves multiple modalities of text, audio, images, drawings, animation, and video (a) Describe three popular file formats for images (b) Most imag

Purpose of pointer phrase in string command, The Purpose of POINTER phrase ...

The Purpose of POINTER phrase is to verify the leftmost position within receiving field where the first transferred character will be kept

What will occur when contents of register are shifter left, What will occur...

What will occur when contents of register are shifter left, right? This is well known that into left shift all bits will be shifted left and LSB will be appended along with 0 a

Differentiate between static and dynamic memory, Differentiate between stat...

Differentiate between static and dynamic memory? The static RAM is simpler to use and has shorter read and write cycles. One of the main applications of static RAM is in execut

Explain their characteristics and limitations of grammar, Identify the diff...

Identify the different classes of grammar. Explain their characteristics and limitations. As proposed through Noam Chomsky that Chomsky hierarchy contains the subsequent level

What is read only memory, Read only memory (ROM) ROM holds the instruct...

Read only memory (ROM) ROM holds the instructions for starting up the computer. This sort of memory can only be read and can't be altered (that implies deleted or written to) a

Define smtp, SMTP Simple Mail Transfer Protocol, a protocol for sending...

SMTP Simple Mail Transfer Protocol, a protocol for sending e-mail messages among servers. Most e-mail systems that send mail over the Internet use SMTP to send messages from si

Show matrix multiplication problem, Q. Show Matrix Multiplication Problem? ...

Q. Show Matrix Multiplication Problem? Let there be 2 matrices M1 and M2 of sizes a x b and b x c correspondingly. If we multiply M1 and M2 product matrix O will be of size a x

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd