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

Define nondeterministic tm, Define nondeterministic TM?  Arbitraril...

Define nondeterministic TM?  Arbitrarily chooses move when more than one possibility exists Accepts if there is at least one computation that terminates in an acceptin

Define macros, Define macros.   A macro is a pre-processor directive wh...

Define macros.   A macro is a pre-processor directive which is a program that processes the source code before it passes by the compiler. These are placed in the source program

What are the difference between heap and stack, What are the difference bet...

What are the difference between heap and stack? The Stack is more or less responsible for maintaining track of what's executing into our code or what's been "called". The Heap

Write a c++ program to explain three specific classes, Make a base class ca...

Make a base class called figure that store the dimensions of several geometrical objects and compute their areas. Explain a function set_dim( ),a standard member  function and show

Potential of parallelism-parallel computing, Potential of Parallelism P...

Potential of Parallelism Problems in the actual world differ in respect of the degree of natural parallelism inherent in the personal problem domain. Some problems may be simpl

What are the disadvantages of a smart card, What are the disadvantages of a...

What are the disadvantages of a Smart Card? Disadvantages of Smart Cards are as follows: a. The value of money can be depleted and recharged. b. Customers should keep

Explain the term granularity, Granularity Granularity refers to the qua...

Granularity Granularity refers to the quantity of computation done in concurrent relative to the size of whole program. In concurrent computing, granularity is a qualitative me

Multi-operating systems, The assignment enhances the acquisition of new kno...

The assignment enhances the acquisition of new knowledge through reading, research and practical work in class and at home. It requires critical thinking applied to real life tasks

Explain the working of thousand line exchanges, E xplain the working of th...

E xplain the working of thousand line exchanges by u sing a combination of uniselectors and two motion selectors. The schematic diagram for such an exchange is demonstrated i

The long and short date option , In MS Access, the long and short date opti...

In MS Access, the long and short date option does not show 4 digit years. How do I achieve the mm/dd/yyyy format? Ans) In the date field properties of the table, form, or prop

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