FAQ3: Spel

  1. Fråga: Vad avses med "det utökade spelprogrammet"?

    Svar: Här är det (återfinns också på föreläsningsbild 9 och 10).

  2. Fråga: Jag sitter och klurar på inlämningsuppgift 3 och undrar (på uppgift 1) om man måste knåpa ihop funktionerna 'static_val(Pos,Val)' och 'moves(Pos,PosList)'. Eller räcker det att komma på vart i det utökade spelprogrammet man skall stoppa in minimax-anropet?

    Svar: Egentligen räcker det att komma på var någonstans minimax skall stoppas in. Men för att veta om allt fungerar som det skall så bör ju de två predikaten definieras, tillsammans med min_to_move, max_to_move, terminal_won och terminal_lost (du kan utgå från NIM eller så väntar du med att pröva tills du löst uppgift 2).

  3. Fråga:Vad ska moves egentligen göra?

    Svar: Om ni minns move(P1,P2) från föreläsningen så fungerade den så att givet en position P1 så returneras en ny position P2. moves(P1,L) skall fungera på liknande sätt, men istället för att returnera en position så skall en lista av positioner L returneras, dvs. alla positioner som kan nås från P1. Detta kan lösas genom att ni definierar move/2 som på föreläsningen och sedan i moves/2 anropar move/2 i t.ex. bagof/3.

  4. Fråga: Hur sofistikerad måste static_val vara?

    Svar: Endast grundläggande funktionalitet krävs, dvs. en position i vilken max har vunnit skall ge maximalt med poäng (t.ex. 1), en position i vilken max har förlorat skall ge minimalt med poäng (t.ex. 0), och övriga positioner skall ge ett värde däremellan (t.ex. 0.5).


Om din aktuella frågeställning inte finns med så kan hjälp erhållas från tony@dsv.su.se eller i FirstClass (underkonferensen AI Handledning i konferensen AI).