---
title: "Skapa AI till ett pong spel"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/42664-skapa-ai-till-ett-pong-spel"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "Alpha II"
published: "2002-04-28T17:24:17.000Z"
updated: "2002-05-01T17:42:28.000Z"
replies: 10
views: 355
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/42664-skapa-ai-till-ett-pong-spel"
---

# Skapa AI till ett pong spel

## #1 — Alpha II, 2002-04-28T17:24Z

Kanske inte kallas AI i så simpla spel. men men

Jag har lyckats göra två datorspelare, den ena är totalt omöjlig at vinna över och den andra är lika dålig som en 3 åring...

Hur ska man göra för att den ska tänka ungefär vart bollen kommer att vara när den är framme vid paddeln?

tacksam för svar

Permalänk: https://www.webforum.nu/p/42664

## #2 — Alpha II, 2002-04-30T13:05Z

Ingen som vet?! :(

Permalänk: https://www.webforum.nu/p/663270

## #3 — PeW, 2002-04-30T13:14Z

<http://www.ai.mit.edu/>   :)

Men denna kanske är mer i din smak -\> 
<http://www.gamedev.net/reference/list.asp?categoryid=18>

Hur du än gör behöver du ju bygga lite algoritmer och dessa kan du nog hitta i ovan länkar  ;)

Permalänk: https://www.webforum.nu/p/663279

## #4 — Alpha II, 2002-04-30T15:38Z

Fattar ändå inte hur jag ska göra... det här var ju krångligt...

Permalänk: https://www.webforum.nu/p/663375

## #5 — PeW, 2002-04-30T16:39Z

Om du vill kolla in AI är de länkarna ett gott uppslag att börja rota i. Det är ju trots allt bara algoritmer och du behöver knappast sätta igång med programspråket prolog för att göra en "AI"-funktionalitet i ditt pongspel.

Permalänk: https://www.webforum.nu/p/663411

## #6 — Alpha II, 2002-04-30T22:22Z

Har du lust att förklara vad en algoritm är ;)

Permalänk: https://www.webforum.nu/p/663492

## #7 — Alpha II, 2002-04-30T23:42Z

Lyckades göra en någorlunda bra motspelare nu :) \*yippie\*

Men om bollen studsar många gånger på väggarna (typ 2 eller mer... ) så missar den... den har alltså kass precision...

Hur får jag den bättre?

```
procedure TMain.FindPosition;
var
  moves: integer;
  i: integer;
  aiPosY: double;
  aiVelY: double;
begin
    if ( TBallSprite(Ball).velX > 0 ) then begin
      moves := ( ( clientWidth - 80 ) - ( round(TBallSprite(Ball).X) - 40 ) ) div round(TBallSprite(Ball).velX);
      aiPosY := TBallSprite(Ball).Y;
      aiVelY := TBallSprite(Ball).velY;
      for i := 0 to  moves do begin
        if ( aiPosY < 0 ) then aiVelY := ( aiVelY - ( aiVelY * 2 ) );
        if ( aiPosY > clientHeight - TBallSprite(Ball).Height ) then aiVelY := -aiVelY;
        aiPosY := aiPosY + aiVelY;
      end;
      TPaddleSprite(player_2).targetPos := round(aiPosY) - ( TPaddleSprite(player_2).Height div 2 );
    end;

end;
```

Permalänk: https://www.webforum.nu/p/663515

## #8 — PeW, 2002-05-01T08:38Z

> Har du lust att förklara vad en algoritm är

Din procedur här ovan är ju en sån  ;)

> Hur får jag den bättre?

Förmodligen blir det nåt avrundningsfel som växer. Prova att köra med större datatyper (extended?) eller ta fram en exaktare beräkning.  :)

Permalänk: https://www.webforum.nu/p/663550

## #9 — Alpha II, 2002-05-01T17:27Z

Varför fungerar inte det här?

```
      moves := round( ( clientWidth - 80 ) - ( TBallSprite(Ball).X - 40 ) div TBallSprite(Ball).velX);
```

Permalänk: https://www.webforum.nu/p/663763

## #10 — Alpha II, 2002-05-01T17:29Z

Kom på att div använbdes för integer och / för real

Permalänk: https://www.webforum.nu/p/663765

## #11 — Alpha II, 2002-05-01T17:42Z

Nu står det

```
      moves := round( ( ( clientWidth - 80 ) - ( TBallSprite(Ball).X - 40 ) ) / TBallSprite(Ball).velX);
```

Nu har jag lyckats... men den är ju helt omöjlig att vinna över! Körde ett tag och det slutade 20 - 0 till datorn :o

Permalänk: https://www.webforum.nu/p/663776

---

Tråden på webben: https://www.webforum.nu/amne/programmering/42664-skapa-ai-till-ett-pong-spel
