Difference between revisions of "Talk:King Bot"

From WikiManual
Jump to: navigation, search
m (clues? hints? anything?)
 
m
Line 4: Line 4:
 
''how might one use other factors, weighted or whatever, to contribute<br>
 
''how might one use other factors, weighted or whatever, to contribute<br>
 
''to the score?<br>
 
''to the score?<br>
 +
 +
what is '''InvestedEnergy(t)'''?
 +
 
how about a breakdown of the code or some hints using the [[Talk:King_Bot|discussion]] tab above?<br>
 
how about a breakdown of the code or some hints using the [[Talk:King_Bot|discussion]] tab above?<br>
 
a clue, a hint ... anything!  tnx {{User:Griz/sig}} 16:37, 25 Feb 2006 (MST)
 
a clue, a hint ... anything!  tnx {{User:Griz/sig}} 16:37, 25 Feb 2006 (MST)

Revision as of 18:39, 25 February 2006

would someone please explain how it does so?
exactly where in this code is the number of offspring entered?
what does s(t,1,2,0) mean? how might one use other factors, weighted or whatever, to contribute
to the score?

what is InvestedEnergy(t)?

how about a breakdown of the code or some hints using the discussion tab above?
a clue, a hint ... anything! tnx Griztalk 16:37, 25 Feb 2006 (MST)

' returns the fittest robot (selected through the score function)
' altered from the bot with the most generations
' to the bot with the most invested energy in itself and children
Function fittest() As Integer
  Dim t As Integer
  Dim s As Double
  Dim Mx As Double
  Mx = 0
  For t = 1 To MaxRobs
    If rob(t).Exist And Not rob(t).Veg Then
      s = score(t, 1, 2, 0)
      If s >= Mx Then
        Mx = s
        fittest = t
      End If
    End If
  Next t
End Function
' does various things: with
' tipo=0 returns the number of descendants for maxrec generations
' tipo=1 highlights the descendants
' tipo=2 searches up the tree for eldest ancestor, then down again
' tipo=3 draws the lines showing kinship relations
Function score(ByVal r As Integer, ByVal reclev As Integer, maxrec As Integer, 

tipo As Integer) As Double
  Dim al As Integer
  Dim dx As Single
  Dim dy As Single
  Dim cr As Long
  Dim ct As Long
  Dim t As Integer
  If tipo = 2 Then plines (r)
  score = 0
  For t = 1 To MaxRobs
    If rob(t).Exist Then
      If rob(t).parent = rob(r).AbsNum Then
        If reclev < maxrec Then score = score + score(t, reclev + 1, maxrec, tipo)
        score = score + InvestedEnergy(t)
        If tipo = 1 Then rob(t).highlight = True
        If tipo = 3 Then
          dx = (rob(r).pos.x - rob(t).pos.x) / 2
          dy = (rob(r).pos.y - rob(t).pos.y) / 2
          cr = RGB(128, 128, 128)
          ct = vbWhite
          If rob(r).AbsNum > rob(t).AbsNum Then
            cr = vbWhite
            ct = RGB(128, 128, 128)
          End If
          Line (rob(t).pos.x, rob(t).pos.y)-Step(dx, dy), ct
          Line -(rob(r).pos.x, rob(r).pos.y), cr
        End If
      End If
    End If
  Next t
  If tipo = 1 Then
    Form1.Cls
    DrawAllRobs
  End If
End Function