Previous topic | Next topic | Ada Home Page | Index

Game play

A problem that arises in playing many games is choosing the best move from several possibilities.

This involves being able to evaluate any given position.

It also involves look-ahead.

You can look ahead for several moves. The more you look ahead, the better the decision you can make - but the number of possibilities gets enormous very quickly!

Algorithm: (not Ada code)

	function findgoodmove (board, side, bestmove, depth) return integer is
       	begin
		if (depth=0) return evaluateboard(board)
		newside := black
		if (side=black) then newside=white
		moves() := best moves
		for i in 1 .. (number of best moves) loop
		   newboard := changeboard(board, moves(i))
		   score(i) := findgoodmove (newboard, newside, dummy, depth-1)
		end loop
		tomove := the move with the highest score
		bestmove := move(tomove)
		return score(i)					
	end findgoodmove;

	begin	-- main program
		findgoodmove(board, black, themove, 6)
		put("Black moves at");
		put(themove);
	end main;	 


Previous topic | Next topic | Ada Home Page | Index
c-lokan@adfa.oz.au / 23 Feb 96