Ludii Forum
Miscellaneous bugs and misunderstandings of the grammar - Printable Version

+- Ludii Forum (https://ludii.games/forums)
+-- Forum: Problems (https://ludii.games/forums/forumdisplay.php?fid=5)
+--- Forum: Grammar Problems (https://ludii.games/forums/forumdisplay.php?fid=24)
+--- Thread: Miscellaneous bugs and misunderstandings of the grammar (/showthread.php?tid=142)



Miscellaneous bugs and misunderstandings of the grammar - dale walton - 08-19-2020

Over the hump of the learning curve, but getting a mix of misunderstanding / missing sintax / and program bugs.  Example from some testing I did...


(define "SitesNotOwn" (union (sites Empty) (sites Occupied by:Next)) )

      Unexpected syntax '(union (sites Empty) ...' in '(count Sites (union (sites Em...'.



(define "SitesNotOwn" (sites (difference (sites Board) (sites occupied by:Mover)) ))


      Unexpected syntax '(sites Board)' in '(difference (sites Board) (si...'.(>

=====================
as part of:

(define "TestWin2"
    (count Sites ("SitesNotOwn"))
    (count Sites (sites
                  Around
                  (sites Random "SitesNotOwn" 1 )
                  99
                  if:(not (is In (sites Mover)))
                  includeSelf:true
                )
    )
  )
)


...
(rules
    (play
      (move Add (to "SitesNotOwn"))
    )
    (end (if ("TestWin2") (result Mover Win)))
  )

...

===> Ok I found some of these (it seems the errors can be in places not very related, and that some things cause problems:
eg
Adding the missing "in:" solved some problems.
in the "(sites (difference .." removing the redundant "(sites" solved one problem  --- Why should this matter?
in (sites Random "SitesNotOwn" 1 ) removing the  "1" (which is the default) solved another problem  --- Why should this matter?
adding "distance:" solved another.

Also why the objection to  "NotOwn" in the below

(define "TestWin1"
  (<
    0
    (count Sites
      in:(difference
        "SitesNotOwn"
        (sites
          Around
          (sites Random ("SitesNotOwn") )
          distance:99
          NotOwn
          includeSelf:true
        )
      )
    )
  )
)



Unexpected syntax 'NotOwn' in '(sites Around (sites Random (...'.

What I am trying to do is count all the contiguous sites from a random site in my dynamic region to see it that includes all of the region or not...

---- Should <regionTypeDynamic> be part of the (<int>|<region>) option in the documentation, or does it have a separate purpose that I misunderstood?

For getting sites around another.
(sites Around [typeLoc:<siteType>] (<int> | <region>)
[<regionTypeDynamic>] [distance:<int>] [<absoluteDirection>]
[if:<boolean>] [includeSelf:<boolean>])
where:
• [typeLoc:<siteType>]: The graph element type [Cell (or Vertex if using intersec-
tions)].
• <int>: The location to check.
• <region>: The region to check.
• [<regionTypeDynamic>]: The type of the dynamic region.
• [distance:<int>]: The distance around which to check.
• [<absoluteDirection>]: The directions to use [Adjacent].
• [if:<boolean>]: The condition to satisfy around the site to be included in the result.
• [includeSelf:<boolean>]: True if the origin site/region is included in the result
[false].



Plus the logic is still not working.


RE: Miscellaneous bugs and misunderstandings of the grammar - Eric Piette - 09-06-2020

Hi,

(sites (difference (sites Board) (sites occupied by:Mover)) )

is incorrect. The correct syntax is just

(difference (sites Board) (sites Occupied by:Mover))

------------

(count Sites ("SitesNotOwn"))

is also incorrect and should be

(count Sites in:("SitesNotOwn"))

------------

After that I am not sure what is your question?

Regards,
Eric Piette