Inlämningsuppgift 3 Spel

Uppgift 1

Modifiera det utökade spelprogrammet som gör en total sökning i spelträdet, så att det istället baserar sig på standardtekniken för sökning i spelträd, d.v.s. sökning till ett begränsat djup med användande av Minimax-principen.

Uppgift 2

Definiera de predikat som behövs för att ovanstående program skall kunna spela luffarschack (tic-tac-toe), d.v.s. deklarera predikaten terminal_won, terminal_lost, ask_move, moves, min_to_move, max_to_move samt static_val. Reglerna för detta spel är angivna nedan:

Luffarschack spelas på en kvadratisk spelplan om nio rutor. Ett drag görs genom att den aktuella spelaren markerar en av de omärkta rutorna med sitt märke (kryss respektive ring). Programmet vinner om det antingen lyckas markera tre rutor i rad (d.v.s. på samma rad, i samma kolumn eller i samma diagonal) eller om spelplanen blir full utan att motståndaren lyckats markera tre rutor i rad.

Uppgift 3

Modifiera ovanstående program, så att ett meddelande om att partiet är oavgjort skrivs ut, om spelplanen blir full utan att någon av spelarna lyckats markera tre rutor i rad.