home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / o / ops5.zip / FBUG.OPS < prev    next >
Text File  |  1992-05-31  |  103KB  |  3,090 lines

  1.  
  2.  
  3. (literal wme-type = 1)
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  (literal
  12.      geometry             = 2
  13.      row                  = 3
  14.      column               = 4 )
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  (literal
  21.      length               = 3
  22.      delta                = 2
  23.      nb                   = 4
  24.      nb+d                 = 5
  25.      nb+2d                = 6
  26.      nb+3d                = 7
  27.      nb+4d                = 8
  28.      nb+5d                = 9
  29.      nb+6d                = 10 )
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  (literal
  36.      nb                   = 4
  37.      nb-incremented       = 2 )
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  (literal
  44.      value                = 3 )
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  (literal
  51.      name                 = 5
  52.      length               = 3
  53.      geometry             = 2
  54.      owner                = 4
  55.      position-1-state     = 6
  56.      position-2-state     = 7
  57.      position-3-state     = 8
  58.      position-4-state     = 9
  59.      position-5-state     = 10
  60.      position-6-state     = 11
  61.      position-7-state     = 12
  62.      position-1-counter-to-update  = 13
  63.      position-2-counter-to-update  = 14
  64.      position-3-counter-to-update  = 15
  65.      position-4-counter-to-update  = 16
  66.      position-5-counter-to-update  = 17
  67.      position-6-counter-to-update  = 18
  68.      position-7-counter-to-update  = 19 )
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  (literal
  75.      row                  = 3
  76.      column               = 4
  77.      point-of-view        = 2
  78.      name                 = 5 )
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  (literal
  85.      row                  = 3
  86.      column               = 4
  87.      point-of-view        = 2
  88.      nb-of-compulsory-answer-creations  = 5
  89.      nb-of-fragile-winners  = 6
  90.      nb-of-strong-winners  = 7 )
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  (literal
  97.      type                 = 2
  98.      is-better-than-type  = 3 )
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  (literal
  105.      type                 = 2
  106.      state                = 5
  107.      row                  = 3
  108.      column               = 4
  109.      score                = 6 )
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  (literal
  116.      name                 = 5
  117.      point-of-views&counters-to-add  = 6
  118.      comment              = 2 )
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  (literal
  125.      type                 = 2
  126.      value                = 3 )
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  (literal
  133.      beginning-row        = 2
  134.      beginning-column     = 3
  135.      ending-row           = 4
  136.      ending-column        = 5 )
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  (literal
  143.      state                = 5
  144.      row                  = 3
  145.      column               = 4 )
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  (literal
  152.      meaning              = 2
  153.      drawing-character    = 3 )
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  (literal
  160.      nb-of-columns        = 2
  161.      nb-of-rows           = 3
  162.      nb-of-columns-incr   = 4
  163.      nb-of-rows-incr      = 5
  164.      max-board-size       = 6
  165.      max-board-size-incr  = 7 )
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  (literal
  172.      board-row            = 3
  173.      board-column         = 4
  174.      type                 = 2
  175.      line-type            = 5
  176.      previous-board-position-row  = 6
  177.      previous-board-position-column  = 7
  178.      next-board-position-row  = 8
  179.      next-board-position-column  = 9
  180.      nw-board-position-row  = 10
  181.      nw-board-position-column  = 11
  182.      ne-board-position-row  = 12
  183.      ne-board-position-column  = 13
  184.      se-board-position-row  = 14
  185.      se-board-position-column  = 15
  186.      sw-board-position-row  = 16
  187.      sw-board-position-column  = 17 )
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  (literal
  194.      of                   = 2
  195.      is                   = 3 )
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  (literal
  202.      row                  = 3
  203.      column               = 4
  204.      state                = 5
  205.      vertical-state       = 2
  206.      horizontal-state     = 6
  207.      right-bent-state     = 7
  208.      left-bent-state      = 8 )
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  (literal
  215.      current-context      = 2
  216.      current-sub-context  = 3
  217.      current-player       = 4
  218.      human-score          = 5
  219.      computer-score       = 6 )
  220.  
  221.  
  222.  
  223. (p board-analyse::segment-updating-of-length-5
  224.     (incrementation-table ^length 5 ^delta <i> ^nb <nb1> ^nb+d <nb1+i>
  225.        ^nb+2d <nb1+2i> ^nb+3d <nb1+3i> ^nb+4d <nb1+4i>)
  226.     (incrementation-table ^length 5 ^delta <j> ^nb <nb2> ^nb+d <nb2+j>
  227.       ^nb+2d <nb2+2j> ^nb+3d <nb2+3j> ^nb+4d <nb2+4j>)
  228.     (direction ^geometry <geometry> ^row <i> ^column <j>)
  229.     (segment-type
  230.       ^length 5 ^geometry <geometry>
  231.       ^owner <owner>
  232.       ^position-1-state <position-1-state>
  233.       ^position-2-state <position-2-state>
  234.       ^position-3-state <position-3-state>
  235.       ^position-4-state <position-4-state>
  236.       ^position-5-state <position-5-state>
  237.       ^position-1-counter-to-update <position-1-counter-to-update>
  238.       ^position-2-counter-to-update <position-2-counter-to-update>
  239.       ^position-3-counter-to-update <position-3-counter-to-update>
  240.       ^position-4-counter-to-update <position-4-counter-to-update>
  241.       ^position-5-counter-to-update <position-5-counter-to-update>)
  242.     (position ^row <nb1> ^column <nb2> ^state <position-1-state>)
  243.     (position ^row <nb1+i> ^column <nb2+j> ^state <position-2-state>)
  244.     (position ^row <nb1+2i> ^column <nb2+2j> ^state <position-3-state>)
  245.     (position ^row <nb1+3i> ^column <nb2+3j> ^state <position-4-state>)
  246.     (position ^row <nb1+4i> ^column <nb2+4j> ^state <position-5-state>)
  247. -->
  248.     (make counter-to-update
  249.            ^point-of-view <owner>
  250.            ^row <nb1> ^column <nb2>
  251.            ^name <position-1-counter-to-update>)
  252.     (make counter-to-update
  253.            ^point-of-view <owner>
  254.            ^row <nb1+i> ^column <nb2+j>
  255.            ^name <position-2-counter-to-update>)
  256.     (make counter-to-update
  257.            ^point-of-view <owner>
  258.            ^row <nb1+2i> ^column <nb2+2j>
  259.            ^name <position-3-counter-to-update>)
  260.     (make counter-to-update
  261.            ^point-of-view <owner>
  262.            ^row <nb1+3i> ^column <nb2+3j>
  263.            ^name <position-4-counter-to-update>)
  264.     (make counter-to-update
  265.            ^point-of-view <owner>
  266.            ^row <nb1+4i> ^column <nb2+4j>
  267.            ^name <position-5-counter-to-update>))
  268.  
  269. (p board-analyse::segment-updating-of-length-6
  270.     (incrementation-table ^length 6 ^delta <i> ^nb <nb1> ^nb+d <nb1+i>
  271.        ^nb+2d <nb1+2i> ^nb+3d <nb1+3i> ^nb+4d <nb1+4i> ^nb+5d <nb1+5i>)
  272.     (incrementation-table ^length 6 ^delta <j> ^nb <nb2> ^nb+d <nb2+j>
  273.       ^nb+2d <nb2+2j> ^nb+3d <nb2+3j> ^nb+4d <nb2+4j> ^nb+5d <nb2+5j>)
  274.     (direction ^geometry <geometry> ^row <i> ^column <j>)
  275.     (segment-type
  276.       ^length 6 ^geometry <geometry>
  277.       ^owner <owner>
  278.       ^position-1-state <position-1-state>
  279.       ^position-2-state <position-2-state>
  280.       ^position-3-state <position-3-state>
  281.       ^position-4-state <position-4-state>
  282.       ^position-5-state <position-5-state>
  283.       ^position-6-state <position-6-state>
  284.       ^position-1-counter-to-update <position-1-counter-to-update>
  285.       ^position-2-counter-to-update <position-2-counter-to-update>
  286.       ^position-3-counter-to-update <position-3-counter-to-update>
  287.       ^position-4-counter-to-update <position-4-counter-to-update>
  288.       ^position-5-counter-to-update <position-5-counter-to-update>
  289.       ^position-6-counter-to-update <position-6-counter-to-update>)
  290.     (position ^row <nb1> ^column <nb2> ^state <position-1-state>)
  291.     (position ^row <nb1+i> ^column <nb2+j> ^state <position-2-state>)
  292.     (position ^row <nb1+2i> ^column <nb2+2j> ^state <position-3-state>)
  293.     (position ^row <nb1+3i> ^column <nb2+3j> ^state <position-4-state>)
  294.     (position ^row <nb1+4i> ^column <nb2+4j> ^state <position-5-state>)
  295.     (position ^row <nb1+5i> ^column <nb2+5j> ^state <position-6-state>)
  296. -->
  297.     (make counter-to-update
  298.            ^point-of-view <owner>
  299.            ^row <nb1> ^column <nb2>
  300.            ^name <position-1-counter-to-update>)
  301.     (make counter-to-update
  302.            ^point-of-view <owner>
  303.            ^row <nb1+i> ^column <nb2+j>
  304.            ^name <position-2-counter-to-update>)
  305.     (make counter-to-update
  306.            ^point-of-view <owner>
  307.            ^row <nb1+2i> ^column <nb2+2j>
  308.            ^name <position-3-counter-to-update>)
  309.     (make counter-to-update
  310.            ^point-of-view <owner>
  311.            ^row <nb1+3i> ^column <nb2+3j>
  312.            ^name <position-4-counter-to-update>)
  313.     (make counter-to-update
  314.            ^point-of-view <owner>
  315.            ^row <nb1+4i> ^column <nb2+4j>
  316.            ^name <position-5-counter-to-update>)
  317.     (make counter-to-update
  318.            ^point-of-view <owner>
  319.            ^row <nb1+5i> ^column <nb2+5j>
  320.            ^name <position-6-counter-to-update>))
  321.  
  322. (p board-analyse::segment-updating-of-length-7
  323.     (incrementation-table ^length 7 ^delta <i> ^nb <nb1> ^nb+d <nb1+i>
  324.        ^nb+2d <nb1+2i> ^nb+3d <nb1+3i> ^nb+4d <nb1+4i> ^nb+5d <nb1+5i> ^nb+6d <nb1+6i>)
  325.     (incrementation-table ^length 7 ^delta <j> ^nb <nb2> ^nb+d <nb2+j>
  326.       ^nb+2d <nb2+2j> ^nb+3d <nb2+3j> ^nb+4d <nb2+4j> ^nb+5d <nb2+5j> ^nb+6d <nb2+6j>)
  327.     (direction ^geometry <geometry> ^row <i> ^column <j>)
  328.     (segment-type
  329.       ^length 7 ^geometry <geometry>
  330.       ^owner <owner>
  331.       ^position-1-state <position-1-state>
  332.       ^position-2-state <position-2-state>
  333.       ^position-3-state <position-3-state>
  334.       ^position-4-state <position-4-state>
  335.       ^position-5-state <position-5-state>
  336.       ^position-6-state <position-6-state>
  337.       ^position-7-state <position-7-state>
  338.       ^position-1-counter-to-update <position-1-counter-to-update>
  339.       ^position-2-counter-to-update <position-2-counter-to-update>
  340.       ^position-3-counter-to-update <position-3-counter-to-update>
  341.       ^position-4-counter-to-update <position-4-counter-to-update>
  342.       ^position-5-counter-to-update <position-5-counter-to-update>
  343.       ^position-6-counter-to-update <position-6-counter-to-update>
  344.       ^position-7-counter-to-update <position-7-counter-to-update>)
  345.     (position ^row <nb1> ^column <nb2> ^state <position-1-state>)
  346.     (position ^row <nb1+i> ^column <nb2+j> ^state <position-2-state>)
  347.     (position ^row <nb1+2i> ^column <nb2+2j> ^state <position-3-state>)
  348.     (position ^row <nb1+3i> ^column <nb2+3j> ^state <position-4-state>)
  349.     (position ^row <nb1+4i> ^column <nb2+4j> ^state <position-5-state>)
  350.     (position ^row <nb1+5i> ^column <nb2+5j> ^state <position-6-state>)
  351.     (position ^row <nb1+6i> ^column <nb2+6j> ^state <position-7-state>)
  352. -->
  353.     (make counter-to-update
  354.            ^point-of-view <owner>
  355.            ^row <nb1> ^column <nb2>
  356.            ^name <position-1-counter-to-update>)
  357.     (make counter-to-update
  358.            ^point-of-view <owner>
  359.            ^row <nb1+i> ^column <nb2+j>
  360.            ^name <position-2-counter-to-update>)
  361.     (make counter-to-update
  362.            ^point-of-view <owner>
  363.            ^row <nb1+2i> ^column <nb2+2j>
  364.            ^name <position-3-counter-to-update>)
  365.     (make counter-to-update
  366.            ^point-of-view <owner>
  367.            ^row <nb1+3i> ^column <nb2+3j>
  368.            ^name <position-4-counter-to-update>)
  369.     (make counter-to-update
  370.            ^point-of-view <owner>
  371.            ^row <nb1+4i> ^column <nb2+4j>
  372.            ^name <position-5-counter-to-update>)
  373.     (make counter-to-update
  374.            ^point-of-view <owner>
  375.            ^row <nb1+5i> ^column <nb2+5j>
  376.            ^name <position-6-counter-to-update>)
  377.     (make counter-to-update
  378.            ^point-of-view <owner>
  379.            ^row <nb1+6i> ^column <nb2+6j>
  380.            ^name <position-7-counter-to-update>))
  381.  
  382. (p board-analyse::garbage-cleaning
  383.     (game-state
  384.       ^current-context board-analyse
  385.       ^current-sub-context garbage-cleaning)
  386.     (counter-to-update)
  387. -->
  388.     (remove 2))
  389.  
  390. (p board-analyse::garbage-cleaning-end
  391.     (game-state
  392.       ^current-context board-analyse
  393.       ^current-sub-context garbage-cleaning)
  394. -->
  395.     (modify 1 ^current-sub-context counters-decrementation))
  396.  
  397. (p board-analyse::initialisations-for-counters-decrementation
  398.     (game-state
  399.       ^current-context board-analyse
  400.       ^current-sub-context counters-decrementation)
  401.     (new-move ^row <row> ^column <column>)
  402.     (position ^row <row> ^column <column>)
  403.     (number-to-add-while-updating-counters ^value <> -1)
  404. -->
  405.     (modify 4 ^value -1)
  406.     (modify 3 ^row <row>))
  407.  
  408. (p board-analyse::counters-decrementation-end
  409.     (game-state
  410.       ^current-context board-analyse
  411.       ^current-sub-context counters-decrementation)
  412. -->
  413.     (modify 1 ^current-sub-context counters-incrementation))
  414.  
  415. (p board-analyse::initialisations-for-counters-incrementation
  416.     (game-state
  417.       ^current-context board-analyse
  418.       ^current-sub-context counters-incrementation)
  419.     (new-move ^row <row> ^column <column> ^state <state>)
  420.     (position ^row <row> ^column <column>)
  421.     (number-to-add-while-updating-counters ^value <> 1)
  422. -->
  423.     (remove 2)
  424.     (modify 4 ^value 1)
  425.     (modify 3 ^state <state>))
  426.  
  427. (p board-analyse::counters-incrementation-end
  428.     (game-state
  429.       ^current-context board-analyse
  430.       ^current-sub-context counters-incrementation)
  431.     (number-to-add-while-updating-counters)
  432. -->
  433.     (modify 2 ^value ignore-it)
  434.     (modify 1 ^current-context choice-of-a-move
  435.               ^current-sub-context choice-of-segments))
  436.  
  437.  
  438. (p board-analyse::counter-updating
  439.     (game-state ^current-context board-analyse)
  440.     (counter-to-update
  441.       ^name {<name> <> garbage}
  442.       ^row <row>
  443.       ^column <column>
  444.       ^point-of-view <point-of-view>)
  445.     (number-to-add-while-updating-counters
  446.       ^value {<increment-value> <> ignore-it})
  447.     (position-analyse
  448.       ^row <row>
  449.       ^column <column>
  450.       ^point-of-view <point-of-view>)
  451.     (position
  452.       ^row <row>
  453.       ^column <column>
  454.       ^state vacant)
  455. -->
  456.     (bind <counter-value> (substr 4 <name> <name>))
  457.     (modify 4 ^<name> (compute <increment-value> + <counter-value>))
  458.     (remove 2))
  459.  
  460. (p board-analyse::making-of-two-position-analyses
  461.     (game-state ^current-context board-analyse)
  462.     (counter-to-update
  463.       ^name {<name> <> garbage}
  464.       ^row <row>
  465.       ^column <column>)
  466.     (number-to-add-while-updating-counters
  467.       ^value <> ignore-it)
  468.    -(position-analyse
  469.       ^row <row>
  470.       ^column <column>)
  471.     (position
  472.       ^row <row>
  473.       ^column <column>
  474.       ^state vacant)
  475.  
  476. -->
  477.     (make position-analyse
  478.            ^row <row> ^column <column>
  479.            ^point-of-view human
  480.            ^nb-of-compulsory-answer-creations 0
  481.            ^nb-of-fragile-winners 0
  482.            ^nb-of-strong-winners 0)
  483.     (make position-analyse
  484.            ^row <row> ^column <column>
  485.            ^point-of-view computer
  486.            ^nb-of-compulsory-answer-creations 0
  487.            ^nb-of-fragile-winners 0
  488.            ^nb-of-strong-winners 0))
  489.  
  490. (p board-analyse::removal-of-a-pointless-position-analyse
  491.     (game-state ^current-context board-analyse)
  492.     (number-to-add-while-updating-counters
  493.       ^value {<increment-value> <> ignore-it})
  494.     (position-analyse
  495.       ^row <row>
  496.       ^column <column>)
  497.     (position
  498.       ^row <row>
  499.       ^column <column>
  500.       ^state <> vacant)
  501. -->
  502.     (remove 3))
  503.  
  504.  
  505. (p board-analyse::removal-of-a-pointless-counter-updating
  506.     (counter-to-update
  507.       ^name garbage)
  508. -->
  509.     (remove 1))
  510.  
  511.  
  512.  
  513.  
  514.  
  515. (p choice-of-a-move-by-the-computer::compulsory-answers-computation
  516.     (game-state
  517.       ^current-context choice-of-a-move
  518.       ^current-sub-context generation-of-the-best-possible-moves
  519.       ^current-player computer)
  520.     (position-analyse
  521.       ^point-of-view computer
  522.       ^row <row>
  523.       ^column <column>
  524.       ^nb-of-compulsory-answer-creations <nbcacc>)
  525.     (position-analyse
  526.       ^point-of-view human
  527.       ^row <row>
  528.       ^column <column>
  529.       ^nb-of-strong-winners <nbswh>)
  530. -->
  531.     (make possible-move
  532.            ^state non-validated-nb-of-compulsory-answer-creations
  533.            ^row <row>
  534.            ^column <column>
  535.        ^score (compute <nbcacc> + <nbswh>)))
  536.  
  537. (p choice-of-a-move-by-the-computer::compulsory-answers-validation
  538.     (game-state
  539.       ^current-context choice-of-a-move
  540.       ^current-sub-context generation-of-the-best-possible-moves
  541.       ^current-player computer)
  542.    {(possible-move
  543.      ^state non-validated-nb-of-compulsory-answer-creations
  544.      ^row <row>
  545.      ^column <column>
  546.      ^score {<score> >= 2 }) <possible-move>}
  547. -->
  548.     (modify <possible-move>
  549.         ^state validated-nb-of-compulsory-answer-creations))
  550.  
  551. (p choice-of-a-move-by-the-computer::compulsory-answers-validation-to-0
  552.     (game-state
  553.       ^current-context choice-of-a-move
  554.       ^current-sub-context generation-of-the-best-possible-moves
  555.       ^current-player computer)
  556.    {(possible-move
  557.      ^state non-validated-nb-of-compulsory-answer-creations
  558.      ^row <row>
  559.      ^column <column>
  560.      ^score {<score> < 2 }) <possible-move>}
  561. -->
  562.     (modify <possible-move>
  563.         ^score 0
  564.         ^state validated-nb-of-compulsory-answer-creations))
  565.  
  566. (p choice-of-a-move-by-the-computer::score-computation
  567.     (game-state
  568.       ^current-context choice-of-a-move
  569.       ^current-sub-context generation-of-the-best-possible-moves
  570.       ^current-player computer)
  571.   {(possible-move
  572.      ^state validated-nb-of-compulsory-answer-creations
  573.      ^row <row>
  574.      ^column <column>
  575.      ^score <score>) <possible-move>}
  576.     (position-analyse
  577.       ^point-of-view computer
  578.       ^row <row>
  579.       ^column <column>
  580.       ^nb-of-fragile-winners <nbfwc>
  581.       ^nb-of-strong-winners <nbswc>)
  582.     (position-analyse
  583.       ^point-of-view human
  584.       ^row <row>
  585.       ^column <column>
  586.       ^nb-of-fragile-winners <nbfwh>
  587.       ^nb-of-compulsory-answer-creations <nbcach>)
  588. -->
  589.     (modify <possible-move>
  590.         ^state computed
  591.         ^score (compute (100 * (<nbfwh> + <nbfwc>)) +
  592.                 (10 * <score>) +
  593.                 <nbcach> + (2 * <nbswc>))))
  594.  
  595.  
  596. (p choice-of-a-move-by-the-computer::selection-of-the-best-moves
  597.     (game-state
  598.       ^current-context choice-of-a-move
  599.       ^current-sub-context generation-of-the-best-possible-moves
  600.       ^current-player computer)
  601.    {(possible-move
  602.       ^state computed
  603.       ^score <score-i>) <possible-move-i>}
  604.     (possible-move
  605.       ^state computed
  606.       ^score  > <score-i>)
  607. -->
  608.     (remove  <possible-move-i>))
  609.  
  610. (p choice-of-a-move-by-the-computer::generation-of-the-best-possible-moves-end
  611.     (game-state
  612.       ^current-context choice-of-a-move
  613.       ^current-sub-context generation-of-the-best-possible-moves
  614.       ^current-player computer)
  615. -->
  616.     (modify 1
  617.       ^current-sub-context choice-of-the-move))
  618.  
  619. (p choice-of-a-move-by-the-computer::removal-of-all-possible-moves
  620.     (game-state
  621.       ^current-context choice-of-a-move
  622.       ^current-sub-context choice-of-the-move
  623.       ^current-player computer)
  624.     (possible-move
  625.       ^row <row>
  626.       ^column <column>)
  627.     (new-move)
  628. -->
  629.     (remove 2))
  630.  
  631. (p choice-of-a-move-by-the-computer::blind-pick-up-of-one-of-the-best
  632.     (game-state
  633.       ^current-context choice-of-a-move
  634.       ^current-sub-context choice-of-the-move
  635.       ^current-player computer)
  636.     (possible-move
  637.       ^row <row>
  638.       ^column <column>)
  639.    -(new-move)
  640. -->
  641.     (make last-computer-move <row> <column>)
  642.     (make new-move
  643.            ^state computer
  644.            ^row <row>
  645.            ^column <column>))
  646.  
  647. (p choice-of-a-move-by-the-computer::blind-pick-up-of-a-vacant-position
  648.     (game-state
  649.       ^current-context choice-of-a-move
  650.       ^current-sub-context choice-of-the-move
  651.       ^current-player computer)
  652.    -(possible-move)
  653.    -(new-move)
  654.     (position ^state << human computer >>)
  655.     (position
  656.       ^state vacant
  657.       ^row <row>
  658.       ^column <column>)
  659. -->
  660.     (make last-computer-move <row> <column>)
  661.     (make new-move
  662.            ^state computer
  663.            ^row <row>
  664.            ^column <column>))
  665.  
  666. (p choice-of-a-move-by-the-computer::first-move
  667.     (game-state
  668.       ^current-context choice-of-a-move
  669.       ^current-sub-context choice-of-the-move
  670.       ^current-player computer)
  671.    -(position ^state << computer human >>)
  672. -->
  673.     (make last-computer-move 6 5)
  674.     (make new-move
  675.            ^state computer
  676.            ^row 6
  677.            ^column 5))
  678.  
  679. (p choice-of-a-move-by-the-computer::end-of-the-choice-of-the-move
  680.     (game-state
  681.       ^current-context choice-of-a-move
  682.       ^current-sub-context choice-of-the-move
  683.       ^current-player computer)
  684. -->
  685.     (modify 1 ^current-context board-analyse
  686.               ^current-sub-context garbage-cleaning))
  687.  
  688. (p choice-of-a-move-by-the-computer::vertical-segment-choice
  689.     (game-state
  690.       ^current-context choice-of-a-move
  691.       ^current-sub-context choice-of-segments
  692.       ^computer-score <computer-score>
  693.       ^current-player computer)
  694.     (incrementation-table ^length 4 ^delta 1 ^nb <nb1> ^nb+d <nb1+i>
  695.        ^nb+2d <nb1+2i> ^nb+3d <nb1+3i>)
  696.     (incrementation-table ^length 4 ^delta 0 ^nb <nb2> ^nb+d <nb2+j>
  697.       ^nb+2d <nb2+2j> ^nb+3d <nb2+3j>)
  698.     (position ^row <nb1> ^column <nb2>
  699.               ^state computer ^vertical-state << free end-of-a-segment >>)
  700.     (position ^row <nb1+i> ^column <nb2+j>
  701.               ^state computer ^vertical-state << free end-of-a-segment >>)
  702.     (position ^row <nb1+2i> ^column <nb2+2j>
  703.               ^state computer ^vertical-state << free end-of-a-segment >>)
  704.     (position ^row <nb1+3i> ^column <nb2+3j>
  705.               ^state computer ^vertical-state << free end-of-a-segment >>)
  706. -->
  707.     (modify 1 ^computer-score (compute <computer-score> + 1))
  708.     (modify 4 ^vertical-state end-of-a-segment)
  709.     (modify 5 ^vertical-state inside-a-segment)
  710.     (modify 6 ^vertical-state inside-a-segment)
  711.     (modify 7 ^vertical-state end-of-a-segment))
  712.  
  713. (p choice-of-a-move-by-the-computer::horizontal-segment-choice
  714.     (game-state
  715.       ^current-context choice-of-a-move
  716.       ^current-sub-context choice-of-segments
  717.       ^computer-score <computer-score>
  718.       ^current-player computer)
  719.     (incrementation-table ^length 4 ^delta 0 ^nb <nb1> ^nb+d <nb1+i>
  720.        ^nb+2d <nb1+2i> ^nb+3d <nb1+3i>)
  721.     (incrementation-table ^length 4 ^delta 1 ^nb <nb2> ^nb+d <nb2+j>
  722.       ^nb+2d <nb2+2j> ^nb+3d <nb2+3j>)
  723.     (position ^row <nb1> ^column <nb2>
  724.               ^state computer ^horizontal-state << free end-of-a-segment >>)
  725.     (position ^row <nb1+i> ^column <nb2+j>
  726.               ^state computer ^horizontal-state << free end-of-a-segment >>)
  727.     (position ^row <nb1+2i> ^column <nb2+2j>
  728.               ^state computer ^horizontal-state << free end-of-a-segment >>)
  729.     (position ^row <nb1+3i> ^column <nb2+3j>
  730.               ^state computer ^horizontal-state << free end-of-a-segment >>)
  731. -->
  732.     (modify 1 ^computer-score (compute <computer-score> + 1))
  733.     (modify 4 ^horizontal-state end-of-a-segment)
  734.     (modify 5 ^horizontal-state inside-a-segment)
  735.     (modify 6 ^horizontal-state inside-a-segment)
  736.     (modify 7 ^horizontal-state end-of-a-segment))
  737.  
  738. (p choice-of-a-move-by-the-computer::right-bent-segment-choice
  739.     (game-state
  740.       ^current-context choice-of-a-move
  741.       ^current-sub-context choice-of-segments
  742.       ^computer-score <computer-score>
  743.       ^current-player computer)
  744.     (incrementation-table ^length 4 ^delta -1 ^nb <nb1> ^nb+d <nb1+i>
  745.        ^nb+2d <nb1+2i> ^nb+3d <nb1+3i>)
  746.     (incrementation-table ^length 4 ^delta 1 ^nb <nb2> ^nb+d <nb2+j>
  747.       ^nb+2d <nb2+2j> ^nb+3d <nb2+3j>)
  748.     (position ^row <nb1> ^column <nb2>
  749.               ^state computer ^right-bent-state << free end-of-a-segment >>)
  750.     (position ^row <nb1+i> ^column <nb2+j>
  751.               ^state computer ^right-bent-state << free end-of-a-segment >>)
  752.     (position ^row <nb1+2i> ^column <nb2+2j>
  753.               ^state computer ^right-bent-state << free end-of-a-segment >>)
  754.     (position ^row <nb1+3i> ^column <nb2+3j>
  755.               ^state computer ^right-bent-state << free end-of-a-segment >>)
  756. -->
  757.     (modify 1 ^computer-score (compute <computer-score> + 1))
  758.     (modify 4 ^right-bent-state end-of-a-segment)
  759.     (modify 5 ^right-bent-state inside-a-segment)
  760.     (modify 6 ^right-bent-state inside-a-segment)
  761.     (modify 7 ^right-bent-state end-of-a-segment))
  762.  
  763. (p choice-of-a-move-by-the-computer::left-bent-segment-choice
  764.     (game-state
  765.       ^current-context choice-of-a-move
  766.       ^current-sub-context choice-of-segments
  767.       ^computer-score <computer-score>
  768.       ^current-player computer)
  769.     (incrementation-table ^length 4 ^delta 1 ^nb <nb1> ^nb+d <nb1+i>
  770.        ^nb+2d <nb1+2i> ^nb+3d <nb1+3i>)
  771.     (incrementation-table ^length 4 ^delta 1 ^nb <nb2> ^nb+d <nb2+j>
  772.       ^nb+2d <nb2+2j> ^nb+3d <nb2+3j>)
  773.     (position ^row <nb1> ^column <nb2>
  774.               ^state computer ^left-bent-state << free end-of-a-segment >>)
  775.     (position ^row <nb1+i> ^column <nb2+j>
  776.               ^state computer ^left-bent-state << free end-of-a-segment >>)
  777.     (position ^row <nb1+2i> ^column <nb2+2j>
  778.               ^state computer ^left-bent-state << free end-of-a-segment >>)
  779.     (position ^row <nb1+3i> ^column <nb2+3j>
  780.               ^state computer ^left-bent-state << free end-of-a-segment >>)
  781. -->
  782.     (modify 1 ^computer-score (compute <computer-score> + 1))
  783.     (modify 4 ^left-bent-state end-of-a-segment)
  784.     (modify 5 ^left-bent-state inside-a-segment)
  785.     (modify 6 ^left-bent-state inside-a-segment)
  786.     (modify 7 ^left-bent-state end-of-a-segment))
  787.  
  788. (p choice-of-a-move-by-the-computer::end-of-choice-of-segments
  789.     (game-state
  790.       ^current-context choice-of-a-move
  791.       ^current-sub-context choice-of-segments
  792.       ^computer-score <computer-score>
  793.       ^current-player computer)
  794. -->
  795.     (modify 1
  796.             ^current-context board-drawing
  797.             ^current-player human))
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806. (p generation-of-incrementation
  807.     (game-state ^current-context initialisations)
  808.     (board-parameters
  809.       ^max-board-size-incr <mbs+1>)
  810.     (incrementation
  811.       ^nb <nb>
  812.       ^nb-incremented  {<nb-incremented> < <mbs+1>})
  813.    -(incrementation
  814.       ^nb <nb-incremented>)
  815. -->
  816.     (make incrementation
  817.            ^nb <nb-incremented>
  818.            ^nb-incremented (compute <nb-incremented> + 1)))
  819.  
  820.  
  821. (p generation-of-incrementation-table
  822.     (game-state ^current-context initialisations)
  823.     (delta <delta>)
  824.     (nb <nb>)
  825.     (length <length>)
  826. -->
  827.     (make incrementation-table
  828.           ^length <length>
  829.           ^delta <delta>
  830.           ^nb <nb>
  831.           ^nb+d (compute <nb> + <delta>)
  832.               ^nb+2d (compute <nb> + ( 2 * <delta>))
  833.               ^nb+3d (compute <nb> + ( 3 * <delta>))
  834.               ^nb+4d (compute <nb> + ( 4 * <delta>))
  835.               ^nb+5d (compute <nb> + ( 5 * <delta>))
  836.               ^nb+6d (compute <nb> + ( 6 * <delta>))))
  837.  
  838. (p cleaning-of-superfluous-incrementation-tables-2
  839.     (game-state ^current-context initialisations)
  840.     (board-parameters
  841.       ^max-board-size-incr <mbs+1>)
  842.    {(incrementation-table ^length 7 ^nb+6d > <mbs+1>)
  843.     <incrementation-table>}
  844. -->
  845.     (remove <incrementation-table>))
  846.  
  847. (p cleaning-of-superfluous-incrementation-tables-3
  848.     (game-state ^current-context initialisations)
  849.     (board-parameters
  850.       ^max-board-size-incr <mbs+1>)
  851.    {(incrementation-table ^length 6 ^nb+5d > <mbs+1>)
  852.     <incrementation-table>}
  853. -->
  854.     (remove <incrementation-table>))
  855.  
  856. (p cleaning-of-superfluous-incrementation-tables-4
  857.     (game-state ^current-context initialisations)
  858.     (board-parameters
  859.       ^max-board-size-incr <mbs+1>)
  860.    {(incrementation-table ^length 5 ^nb+4d > <mbs+1>)
  861.     <incrementation-table>}
  862. -->
  863.     (remove <incrementation-table>))
  864.  
  865. (p cleaning-of-superfluous-incrementation-tables-5
  866.     (game-state ^current-context initialisations)
  867.     (board-parameters
  868.       ^max-board-size <mbs>)
  869.    {(incrementation-table ^length 4 ^nb+3d > <mbs>)
  870.     <incrementation-table>}
  871. -->
  872.     (remove <incrementation-table>))
  873.  
  874. (p cleaning-of-superfluous-incrementation-tables-2-bis
  875.     (game-state ^current-context initialisations)
  876.    {(incrementation-table ^length 7 ^nb+6d < 0)
  877.     <incrementation-table>}
  878. -->
  879.     (remove <incrementation-table>))
  880.  
  881. (p cleaning-of-superfluous-incrementation-tables-3-bis
  882.     (game-state ^current-context initialisations)
  883.    {(incrementation-table ^length 6 ^nb+5d < 0)
  884.     <incrementation-table>}
  885. -->
  886.     (remove <incrementation-table>))
  887.  
  888. (p cleaning-of-superfluous-incrementation-tables-4-bis
  889.     (game-state ^current-context initialisations)
  890.    {(incrementation-table ^length 5 ^nb+4d < 0)
  891.     <incrementation-table>}
  892. -->
  893.     (remove <incrementation-table>))
  894.  
  895. (p cleaning-of-superfluous-incrementation-tables-5-bis
  896.     (game-state ^current-context initialisations)
  897.    {(incrementation-table ^length 4 ^nb+3d <= 0)
  898.     <incrementation-table>}
  899. -->
  900.     (remove <incrementation-table>))
  901.  
  902. (p generation-of-an-edge-horizontally
  903.     (game-state ^current-context initialisations)
  904.     (board-parameters
  905.       ^nb-of-columns <nbbc>)
  906.     (position
  907.       ^row {<< 0 11 >> <existing-position-row>}
  908.       ^column  {<= <nbbc> <existing-position-column>})
  909.     (incrementation
  910.       ^nb <existing-position-column>
  911.       ^nb-incremented <existing-position-column-incremented>)
  912.    -(position
  913.       ^row <existing-position-row>
  914.       ^column <existing-position-column-incremented>)
  915. -->
  916.     (make position
  917.            ^row <existing-position-row>
  918.            ^column <existing-position-column-incremented>
  919.            ^state edge
  920.            ^vertical-state nil
  921.            ^horizontal-state nil
  922.            ^right-bent-state nil
  923.            ^left-bent-state nil))
  924.  
  925. (p generation-of-an-edge-vertically
  926.     (game-state ^current-context initialisations)
  927.     (board-parameters
  928.       ^nb-of-rows <nbbr>)
  929.     (position
  930.       ^column {<< 0  11 >> <existing-position-column>}
  931.       ^row  {<= <nbbr> <existing-position-row>})
  932.     (incrementation
  933.       ^nb <existing-position-row>
  934.       ^nb-incremented <existing-position-row-incremented>)
  935.    -(position
  936.       ^column <existing-position-column>
  937.       ^row  <existing-position-row-incremented>)
  938. -->
  939.     (make position
  940.            ^column <existing-position-column>
  941.            ^row <existing-position-row-incremented>
  942.            ^state edge
  943.            ^vertical-state nil
  944.            ^horizontal-state nil
  945.            ^right-bent-state nil
  946.            ^left-bent-state nil))
  947.  
  948. (p generation-of-an-empty-board-horizontally
  949.     (game-state ^current-context initialisations)
  950.     (board-parameters
  951.       ^nb-of-rows <nbbr>
  952.       ^nb-of-columns <nbbc>)
  953.     (position
  954.       ^row {<existing-position-row> > 0 <= <nbbr>}
  955.       ^column  {< <nbbc> <existing-position-column>})
  956.     (incrementation
  957.       ^nb <existing-position-column>
  958.       ^nb-incremented <existing-position-column-incremented>)
  959.    -(position
  960.       ^row <existing-position-row>
  961.       ^column <existing-position-column-incremented>)
  962. -->
  963.     (make position
  964.            ^row <existing-position-row>
  965.            ^column <existing-position-column-incremented>
  966.            ^state vacant
  967.            ^vertical-state free
  968.            ^horizontal-state free
  969.            ^right-bent-state free
  970.            ^left-bent-state free))
  971.  
  972. (p generation-of-an-empty-board-vertically
  973.     (game-state ^current-context initialisations)
  974.     (board-parameters
  975.       ^nb-of-rows <nbbr>
  976.       ^nb-of-columns <nbbc>)
  977.     (position
  978.       ^column {<existing-position-column> > 0 <= <nbbc>}
  979.       ^row  {< <nbbr> <existing-position-row>})
  980.     (incrementation
  981.       ^nb <existing-position-row>
  982.       ^nb-incremented <existing-position-row-incremented>)
  983.    -(position
  984.       ^column <existing-position-column>
  985.       ^row  <existing-position-row-incremented>)
  986. -->
  987.     (make position
  988.            ^column <existing-position-column>
  989.            ^row <existing-position-row-incremented>
  990.            ^state vacant
  991.            ^vertical-state free
  992.            ^horizontal-state free
  993.            ^right-bent-state free
  994.            ^left-bent-state free))
  995.  
  996. (p determination-of-the-player-who-is-going-to-start
  997.    {<game-state>
  998.     (game-state
  999.       ^current-context initialisations
  1000.       ^current-player {<> human <> computer})}
  1001.     (symbol
  1002.       ^meaning human
  1003.       ^drawing-character <human-drawing-character>)
  1004.     (symbol
  1005.       ^meaning computer
  1006.       ^drawing-character <computer-drawing-character>)
  1007.     (board-parameters
  1008.       ^nb-of-columns <nbbc>
  1009.       ^nb-of-rows <nbbr>)
  1010. -->
  1011.     (write |___________________________________________|
  1012.            (crlf)
  1013.            (crlf)
  1014.            |   The board has | <nbbc> | rows and | <nbbc> | columns.|
  1015.            (crlf)
  1016.            |       You are | <human-drawing-character> |, I am |
  1017.            <computer-drawing-character> |.|
  1018.            (crlf)
  1019.            | ___________________________________________|
  1020.            (crlf)
  1021.            (crlf)
  1022.            |Do you want to start (return: yes, anything else: no)? |)
  1023.            (make input ^type first-player ^value (acceptline human read)))
  1024.  
  1025. (p validation-of-the-answer-1
  1026.    {<game-state>
  1027.     (game-state
  1028.       ^current-context initialisations)}
  1029.    {(input ^type first-player ^value human) <input>}
  1030. -->
  1031.     (remove <input>)
  1032.     (modify <game-state>
  1033.           ^current-player human
  1034.               ^current-context choice-of-a-move
  1035.               ^current-sub-context choice-of-the-move))
  1036.  
  1037. (p validation-of-the-answer-2
  1038.    {<game-state>
  1039.     (game-state
  1040.       ^current-context initialisations)}
  1041.    {(input ^type first-player ^value <> human) <input>}
  1042. -->
  1043.     (remove <input>)
  1044.     (modify <game-state>
  1045.           ^current-player computer
  1046.               ^current-context choice-of-a-move
  1047.               ^current-sub-context choice-of-the-move))
  1048.  
  1049.  
  1050.  
  1051. (p initialisations-for-board-drawing
  1052.    {<game-state>
  1053.     (game-state ^current-context board-drawing)}
  1054.    {(last-computer-move <row> <column>) <last-computer-move>}
  1055.    -(drawing-position-printed)
  1056. -->
  1057.     (write (crlf)
  1058.            (crlf)
  1059.            |score: human |
  1060.            (substr <game-state> human-score human-score)
  1061.            | computer |
  1062.            (substr <game-state> computer-score computer-score)
  1063.            |. I just played| <row> <column> |.|
  1064.            (crlf)
  1065.            (crlf))
  1066.     (remove <last-computer-move>)
  1067.     (make drawing-position-printed
  1068.            ^type outside-board
  1069.            ^line-type first-line
  1070.            ^board-row nil
  1071.            ^board-column 1))
  1072.  
  1073. (p drawing-of-the-first-line
  1074.     (game-state ^current-context board-drawing)
  1075.     (board-parameters
  1076.       ^nb-of-columns <nbbc>)
  1077.    {<drawing-position-printed>
  1078.     (drawing-position-printed
  1079.       ^line-type first-line
  1080.       ^board-column {<> <nbbc> <board-column>})}
  1081.  
  1082. -->
  1083.     (bind <tab> (compute (2 + (<board-column> * 4))))
  1084.     (write (tabto <tab>)
  1085.            <board-column>)
  1086.     (modify <drawing-position-printed>
  1087.               ^board-column (compute <board-column> + 1)))
  1088.  
  1089. (p end-of-the-drawing-of-the-first-line
  1090.     (game-state ^current-context board-drawing)
  1091.     (board-parameters
  1092.       ^nb-of-columns <nb-of-columns>)
  1093.    {<drawing-position-printed>
  1094.     (drawing-position-printed
  1095.       ^line-type first-line
  1096.       ^board-column <nb-of-columns>)}
  1097. -->
  1098.     (bind <tab> (compute (2 + (4 * <nb-of-columns>))))
  1099.     (write (tabto <tab>)
  1100.            <nb-of-columns>
  1101.            (crlf) (crlf))
  1102.     (modify <drawing-position-printed>
  1103.              ^board-row 1
  1104.              ^line-type board-line
  1105.              ^type outside-board))
  1106.  
  1107. (p drawing-of-the-beginning-of-a-board-line
  1108.     (game-state ^current-context board-drawing)
  1109.    {<drawing-position-printed>
  1110.     (drawing-position-printed
  1111.       ^line-type board-line
  1112.       ^type outside-board
  1113.       ^board-row <board-row>)}
  1114. -->
  1115.     (write <board-row>)
  1116.     (modify <drawing-position-printed>
  1117.               ^type board-position
  1118.               ^board-column 1
  1119.               ^previous-board-position-column 1
  1120.               ^previous-board-position-row <board-row>
  1121.               ^next-board-position-column 2
  1122.               ^next-board-position-row <board-row>))
  1123.  
  1124. (p drawing-of-a-board-position
  1125.     (game-state ^current-context board-drawing)
  1126.     (board-parameters
  1127.       ^nb-of-columns <nbbc>)
  1128.    {<drawing-position-printed>
  1129.     (drawing-position-printed
  1130.       ^line-type board-line
  1131.       ^type board-position
  1132.       ^board-row <board-row>
  1133.       ^board-column {<> <nbbc> <board-column>})}
  1134.     (position
  1135.       ^state <board-position-state>
  1136.       ^row <board-row>
  1137.       ^column <board-column>)
  1138.     (symbol
  1139.       ^meaning <board-position-state>
  1140.       ^drawing-character <drawing-character>)
  1141. -->
  1142.     (bind <tab> (compute (2 + (4 * <board-column>))))
  1143.     (write (tabto <tab>)
  1144.            <drawing-character>)
  1145.     (modify <drawing-position-printed>
  1146.               ^type possibly-a-piece-of-horizontal-segment))
  1147.  
  1148. (p drawing-of-the-end-of-a-board-line
  1149.     (game-state ^current-context board-drawing)
  1150.     (board-parameters
  1151.       ^nb-of-rows <nbbr>
  1152.       ^nb-of-columns <nbbc>)
  1153.    {<drawing-position-printed>
  1154.     (drawing-position-printed
  1155.       ^line-type board-line
  1156.       ^type board-position
  1157.       ^board-row {<> <nbbr> <board-row>}
  1158.       ^board-column <nbbc>)}
  1159.     (position
  1160.       ^state <board-position-state>
  1161.       ^row <board-row>
  1162.       ^column <nbbc>)
  1163.     (symbol
  1164.       ^meaning <board-position-state>
  1165.       ^drawing-character <drawing-character>)
  1166. -->
  1167.     (bind <tab> (compute (2 + (4 * <nbbc>))))
  1168.     (write (tabto <tab>)
  1169.            <drawing-character>
  1170.            (crlf))
  1171.     (modify <drawing-position-printed>
  1172.               ^type outside-board
  1173.               ^line-type intermediate-line))
  1174.  
  1175. (p drawing-of-the-end-of-the-board
  1176.    {<game-state>
  1177.     (game-state ^current-context board-drawing)}
  1178.     (board-parameters
  1179.       ^nb-of-rows <nbbr>
  1180.       ^nb-of-columns <nbbc>)
  1181.    {<drawing-position-printed>
  1182.     (drawing-position-printed
  1183.       ^line-type board-line
  1184.       ^type board-position
  1185.       ^board-row <nbbr>
  1186.       ^board-column <nbbc>)}
  1187.     (position
  1188.       ^state <board-position-state>
  1189.       ^row <nbbr>
  1190.       ^column <nbbc>)
  1191.     (symbol
  1192.       ^meaning <board-position-state>
  1193.       ^drawing-character <drawing-character>)
  1194. -->
  1195.     (bind <tab> (compute (2 + (4 * <nbbc>))))
  1196.     (write (tabto <tab>)
  1197.            <drawing-character>
  1198.            (crlf) (crlf))
  1199.     (remove <drawing-position-printed>)
  1200.     (modify <game-state>
  1201.               ^current-context choice-of-a-move
  1202.               ^current-sub-context choice-of-the-move
  1203.               ^current-player human))
  1204.  
  1205. (p drawing-of-an-horizontal-piece-of-segment-1
  1206.  
  1207.     (game-state ^current-context board-drawing)
  1208.    {<drawing-position-printed>
  1209.     (drawing-position-printed
  1210.       ^line-type board-line
  1211.       ^type possibly-a-piece-of-horizontal-segment
  1212.       ^board-column <board-column>
  1213.       ^board-row <board-row>
  1214.       ^next-board-position-column <nbpc>
  1215.       ^previous-board-position-column <pbpc>)}
  1216.     (position
  1217.       ^row <board-row>
  1218.       ^column <pbpc>
  1219.       ^state <> vacant
  1220.       ^horizontal-state inside-a-segment)
  1221.     (symbol
  1222.       ^meaning piece-of-horizontal-segment
  1223.       ^drawing-character <drawing-character>)
  1224. -->
  1225.     (bind <tab> (compute (2 + (4 * <board-column>) + 2)))
  1226.     (write (tabto <tab>)
  1227.            <drawing-character>)
  1228.     (modify <drawing-position-printed>
  1229.               ^type board-position
  1230.               ^board-column (compute <board-column> + 1)
  1231.               ^previous-board-position-column <nbpc>
  1232.               ^next-board-position-column (compute <nbpc> + 1)))
  1233.  
  1234. (p drawing-of-an-horizontal-piece-of-segment-2
  1235.     (game-state ^current-context board-drawing)
  1236.    {<drawing-position-printed>
  1237.     (drawing-position-printed
  1238.       ^line-type board-line
  1239.       ^type possibly-a-piece-of-horizontal-segment
  1240.       ^board-column <board-column>
  1241.       ^board-row <board-row>
  1242.       ^next-board-position-column <nbpc>
  1243.       ^previous-board-position-column <pbpc>)}
  1244.     (position
  1245.       ^row <board-row>
  1246.       ^column <nbpc>
  1247.       ^state <> vacant
  1248.       ^horizontal-state inside-a-segment)
  1249.     (symbol
  1250.       ^meaning piece-of-horizontal-segment
  1251.       ^drawing-character <drawing-character>)
  1252. -->
  1253.     (bind <tab> (compute (2 + (4 * <board-column>) + 2)))
  1254.     (write (tabto <tab>)
  1255.            <drawing-character>)
  1256.     (modify <drawing-position-printed>
  1257.               ^type board-position
  1258.               ^board-column (compute <board-column> + 1)
  1259.               ^previous-board-position-column <nbpc>
  1260.               ^next-board-position-column (compute <nbpc> + 1)))
  1261.  
  1262.  
  1263. (p non-drawing-of-an-horizontal-piece-of-segment
  1264.     (game-state ^current-context board-drawing)
  1265.    {<drawing-position-printed>
  1266.     (drawing-position-printed
  1267.       ^line-type board-line
  1268.       ^type possibly-a-piece-of-horizontal-segment
  1269.       ^board-column <board-column>
  1270.       ^board-row <board-row>
  1271.       ^next-board-position-column <nbpc>
  1272.       ^previous-board-position-column <pbpc>)}
  1273. -->
  1274.     (modify <drawing-position-printed>
  1275.               ^type board-position
  1276.               ^board-column (compute <board-column> + 1)
  1277.               ^previous-board-position-column <nbpc>
  1278.               ^next-board-position-column (compute <nbpc> + 1)))
  1279.  
  1280. (p drawing-of-the-beginning-of-an-intermediate-line
  1281.     (game-state ^current-context board-drawing)
  1282.    {<drawing-position-printed>
  1283.     (drawing-position-printed
  1284.       ^line-type intermediate-line
  1285.       ^type outside-board
  1286.       ^board-row <board-row>)}
  1287. -->
  1288.     (modify <drawing-position-printed>
  1289.               ^type possibly-a-piece-of-vertical-segment
  1290.               ^nw-board-position-row <board-row>
  1291.               ^nw-board-position-column 1
  1292.               ^sw-board-position-row (compute 1 + <board-row>)
  1293.               ^sw-board-position-column 1
  1294.               ^ne-board-position-row <board-row>
  1295.               ^ne-board-position-column 2
  1296.               ^se-board-position-row (compute 1 + <board-row>)
  1297.               ^se-board-position-column 2))
  1298.  
  1299. (p drawing-of-a-vertical-piece-of-segment-1
  1300.     (game-state ^current-context board-drawing)
  1301.     (board-parameters
  1302.       ^nb-of-columns <nbbc>)
  1303.    {<drawing-position-printed>
  1304.     (drawing-position-printed
  1305.       ^line-type intermediate-line
  1306.       ^type possibly-a-piece-of-vertical-segment
  1307.       ^nw-board-position-column {<> <nbbc> <board-column>}
  1308.       ^nw-board-position-row <nwbpr>)}
  1309.     (position
  1310.       ^row <nwbpr>
  1311.       ^column <board-column>
  1312.       ^state <> vacant
  1313.       ^vertical-state inside-a-segment)
  1314.     (symbol
  1315.       ^meaning piece-of-vertical-segment
  1316.       ^drawing-character <drawing-character>)
  1317. -->
  1318.     (bind <tab> (compute 2 + (4 * <board-column>)))
  1319.     (write (tabto <tab>)
  1320.            <drawing-character>)
  1321.     (modify <drawing-position-printed>
  1322.               ^type possibly-a-piece-of-bent-segment))
  1323.  
  1324. (p drawing-of-a-vertical-piece-of-segment-2
  1325.     (game-state ^current-context board-drawing)
  1326.     (board-parameters
  1327.       ^nb-of-columns <nbbc>)
  1328.    {<drawing-position-printed>
  1329.     (drawing-position-printed
  1330.       ^line-type intermediate-line
  1331.       ^type possibly-a-piece-of-vertical-segment
  1332.       ^nw-board-position-column {<> <nbbc> <board-column>}
  1333.       ^sw-board-position-row <swbpr>)}
  1334.     (position
  1335.       ^row <swbpr>
  1336.       ^column <board-column>
  1337.       ^state <> vacant
  1338.       ^vertical-state inside-a-segment)
  1339.     (symbol
  1340.       ^meaning piece-of-vertical-segment
  1341.       ^drawing-character <drawing-character>)
  1342. -->
  1343.     (bind <tab> (compute 2 + (4 * <board-column>)))
  1344.     (write (tabto <tab>)
  1345.            <drawing-character>)
  1346.     (modify <drawing-position-printed>
  1347.               ^type possibly-a-piece-of-bent-segment))
  1348.  
  1349. (p non-drawing-of-a-vertical-piece-of-segment
  1350.     (game-state ^current-context board-drawing)
  1351.     (board-parameters
  1352.       ^nb-of-columns <nbbc>)
  1353.    {<drawing-position-printed>
  1354.     (drawing-position-printed
  1355.       ^line-type intermediate-line
  1356.       ^type possibly-a-piece-of-vertical-segment
  1357.       ^nw-board-position-column {<> <nbbc> <board-column>}
  1358.       ^sw-board-position-row <swbpr>)}
  1359. -->
  1360.     (modify <drawing-position-printed>
  1361.               ^type possibly-a-piece-of-bent-segment))
  1362.  
  1363. (p drawing-of-a-piece-of-right-bent-segment-1
  1364.     (game-state ^current-context board-drawing)
  1365.    {<drawing-position-printed>
  1366.     (drawing-position-printed
  1367.       ^line-type intermediate-line
  1368.       ^type possibly-a-piece-of-bent-segment
  1369.       ^nw-board-position-column <board-column>
  1370.       ^board-row <board-row>
  1371.       ^sw-board-position-column <swbpc>
  1372.       ^nw-board-position-column <nwbpc>
  1373.       ^se-board-position-column <sebpc>
  1374.       ^ne-board-position-column <nebpc>
  1375.       ^sw-board-position-row <swbpr>)}
  1376.     (position
  1377.       ^row <swbpr>
  1378.       ^column <swbpc>
  1379.       ^state <> vacant
  1380.       ^right-bent-state inside-a-segment)
  1381.     (symbol
  1382.       ^meaning piece-of-right-bent-segment
  1383.       ^drawing-character <drawing-character>)
  1384. -->
  1385.     (bind <tab> (compute 2 + (4 * <board-column>) + 2))
  1386.     (write (tabto <tab>)
  1387.            <drawing-character>)
  1388.     (modify <drawing-position-printed>
  1389.               ^type possibly-a-piece-of-vertical-segment
  1390.               ^sw-board-position-column <sebpc>
  1391.               ^nw-board-position-column <nebpc>
  1392.               ^se-board-position-column (compute <sebpc> + 1)
  1393.               ^ne-board-position-column (compute <nebpc> + 1)))
  1394.  
  1395. (p drawing-of-a-piece-of-right-bent-segment-2
  1396.     (game-state ^current-context board-drawing)
  1397.    {<drawing-position-printed>
  1398.     (drawing-position-printed
  1399.       ^line-type intermediate-line
  1400.       ^type possibly-a-piece-of-bent-segment
  1401.       ^nw-board-position-column <board-column>
  1402.       ^board-row <board-row>
  1403.       ^sw-board-position-column <swbpc>
  1404.       ^nw-board-position-column <nwbpc>
  1405.       ^se-board-position-column <sebpc>
  1406.       ^ne-board-position-column <nebpc>
  1407.       ^ne-board-position-row <nebpr>)}
  1408.     (position
  1409.       ^row <nebpr>
  1410.       ^column <nebpc>
  1411.       ^state <> vacant
  1412.       ^right-bent-state inside-a-segment)
  1413.     (symbol
  1414.       ^meaning piece-of-right-bent-segment
  1415.       ^drawing-character <drawing-character>)
  1416. -->
  1417.     (bind <tab> (compute 2 + (4 * <board-column>) + 2))
  1418.     (write (tabto <tab>)
  1419.            <drawing-character>)
  1420.     (modify <drawing-position-printed>
  1421.               ^type possibly-a-piece-of-vertical-segment
  1422.               ^sw-board-position-column <sebpc>
  1423.               ^nw-board-position-column <nebpc>
  1424.               ^se-board-position-column (compute <sebpc> + 1)
  1425.               ^ne-board-position-column (compute <nebpc> + 1)))
  1426.  
  1427. (p drawing-of-a-piece-of-left-bent-segment-1
  1428.     (game-state ^current-context board-drawing)
  1429.    {<drawing-position-printed>
  1430.     (drawing-position-printed
  1431.       ^line-type intermediate-line
  1432.       ^type possibly-a-piece-of-bent-segment
  1433.       ^nw-board-position-column <board-column>
  1434.       ^board-row <board-row>
  1435.       ^sw-board-position-column <swbpc>
  1436.       ^nw-board-position-column <nwbpc>
  1437.       ^se-board-position-column <sebpc>
  1438.       ^ne-board-position-column <nebpc>
  1439.       ^se-board-position-row <sebpr>)}
  1440.     (position
  1441.       ^row <sebpr>
  1442.       ^column <sebpc>
  1443.       ^state <> vacant
  1444.       ^left-bent-state inside-a-segment)
  1445.     (symbol
  1446.       ^meaning piece-of-left-bent-segment
  1447.       ^drawing-character <drawing-character>)
  1448. -->
  1449.     (bind <tab> (compute 2 + (4 * <board-column>) + 2))
  1450.     (write (tabto <tab>)
  1451.            <drawing-character>)
  1452.     (modify <drawing-position-printed>
  1453.               ^type possibly-a-piece-of-vertical-segment
  1454.               ^sw-board-position-column <sebpc>
  1455.               ^nw-board-position-column <nebpc>
  1456.               ^se-board-position-column (compute <sebpc> + 1)
  1457.               ^ne-board-position-column (compute <nebpc> + 1)))
  1458.  
  1459. (p drawing-of-a-piece-of-left-bent-segment-2
  1460.     (game-state ^current-context board-drawing)
  1461.    {<drawing-position-printed>
  1462.     (drawing-position-printed
  1463.       ^line-type intermediate-line
  1464.       ^type possibly-a-piece-of-bent-segment
  1465.       ^nw-board-position-column <board-column>
  1466.       ^board-row <board-row>
  1467.       ^sw-board-position-column <swbpc>
  1468.       ^nw-board-position-column <nwbpc>
  1469.       ^se-board-position-column <sebpc>
  1470.       ^ne-board-position-column <nebpc>
  1471.       ^nw-board-position-row <nwbpr>)}
  1472.     (position
  1473.       ^row <nwbpr>
  1474.       ^column <nwbpc>
  1475.       ^state <> vacant
  1476.       ^left-bent-state inside-a-segment)
  1477.     (symbol
  1478.       ^meaning piece-of-left-bent-segment
  1479.       ^drawing-character <drawing-character>)
  1480. -->
  1481.     (bind <tab> (compute 2 + (4 * <board-column>) + 2))
  1482.     (write (tabto <tab>)
  1483.            <drawing-character>)
  1484.     (modify <drawing-position-printed>
  1485.               ^type possibly-a-piece-of-vertical-segment
  1486.               ^sw-board-position-column <sebpc>
  1487.               ^nw-board-position-column <nebpc>
  1488.               ^se-board-position-column (compute <sebpc> + 1)
  1489.               ^ne-board-position-column (compute <nebpc> + 1)))
  1490.  
  1491. (p drawing-of-a-crossing-of-segments-1
  1492.     (game-state ^current-context board-drawing)
  1493.    {<drawing-position-printed>
  1494.     (drawing-position-printed
  1495.       ^line-type intermediate-line
  1496.       ^type possibly-a-piece-of-bent-segment
  1497.       ^nw-board-position-column <board-column>
  1498.       ^board-row <board-row>
  1499.       ^sw-board-position-column <swbpc>
  1500.       ^nw-board-position-column <nwbpc>
  1501.       ^se-board-position-column <sebpc>
  1502.       ^ne-board-position-column <nebpc>
  1503.       ^se-board-position-row <sebpr>
  1504.       ^sw-board-position-row <swbpr>)}
  1505.     (position
  1506.       ^row <swbpr>
  1507.       ^column <swbpc>
  1508.       ^state <> vacant
  1509.       ^right-bent-state inside-a-segment)
  1510.     (position
  1511.       ^row <sebpr>
  1512.       ^column <sebpc>
  1513.       ^state <> vacant
  1514.       ^left-bent-state inside-a-segment)
  1515.     (symbol
  1516.       ^meaning crossing-of-two-bent-segments
  1517.       ^drawing-character <drawing-character>)
  1518. -->
  1519.     (bind <tab> (compute 2 + (4 * <board-column>) + 2))
  1520.     (write (tabto <tab>)
  1521.            <drawing-character>)
  1522.     (modify <drawing-position-printed>
  1523.               ^type possibly-a-piece-of-vertical-segment
  1524.               ^sw-board-position-column <sebpc>
  1525.               ^nw-board-position-column <nebpc>
  1526.               ^se-board-position-column (compute <sebpc> + 1)
  1527.               ^ne-board-position-column (compute <nebpc> + 1)))
  1528.  
  1529. (p drawing-of-a-crossing-of-segments-2
  1530.     (game-state ^current-context board-drawing)
  1531.    {<drawing-position-printed>
  1532.     (drawing-position-printed
  1533.       ^line-type intermediate-line
  1534.       ^type possibly-a-piece-of-bent-segment
  1535.       ^nw-board-position-column <board-column>
  1536.       ^board-row <board-row>
  1537.       ^sw-board-position-column <swbpc>
  1538.       ^nw-board-position-column <nwbpc>
  1539.       ^se-board-position-column <sebpc>
  1540.       ^ne-board-position-column <nebpc>
  1541.       ^ne-board-position-row <nebpr>
  1542.       ^nw-board-position-row <nwbpr>)}
  1543.     (position
  1544.       ^row <nwbpr>
  1545.       ^column <nwbpc>
  1546.       ^state <> vacant
  1547.       ^left-bent-state inside-a-segment)
  1548.     (position
  1549.       ^row <nebpr>
  1550.       ^column <nebpc>
  1551.       ^state <> vacant
  1552.       ^right-bent-state inside-a-segment)
  1553.     (symbol
  1554.       ^meaning crossing-of-two-bent-segments
  1555.       ^drawing-character <drawing-character>)
  1556. -->
  1557.     (bind <tab> (compute 2 + (4 * <board-column>) + 2))
  1558.     (write (tabto <tab>)
  1559.            <drawing-character>)
  1560.     (modify <drawing-position-printed>
  1561.               ^type possibly-a-piece-of-vertical-segment
  1562.               ^sw-board-position-column <sebpc>
  1563.               ^nw-board-position-column <nebpc>
  1564.               ^se-board-position-column (compute <sebpc> + 1)
  1565.               ^ne-board-position-column (compute <nebpc> + 1)))
  1566.  
  1567. (p drawing-of-a-crossing-of-segments-3
  1568.     (game-state ^current-context board-drawing)
  1569.    {<drawing-position-printed>
  1570.     (drawing-position-printed
  1571.       ^line-type intermediate-line
  1572.       ^type possibly-a-piece-of-bent-segment
  1573.       ^nw-board-position-column <board-column>
  1574.       ^board-row <board-row>
  1575.       ^sw-board-position-column <swbpc>
  1576.       ^nw-board-position-column <nwbpc>
  1577.       ^se-board-position-column <sebpc>
  1578.       ^ne-board-position-column <nebpc>
  1579.       ^ne-board-position-row <nebpr>
  1580.       ^se-board-position-row <sebpr>)}
  1581.     (position
  1582.       ^row <sebpr>
  1583.       ^column <sebpc>
  1584.       ^state <> vacant
  1585.       ^left-bent-state inside-a-segment)
  1586.     (position
  1587.       ^row <nebpr>
  1588.       ^column <nebpc>
  1589.       ^state <> vacant
  1590.       ^right-bent-state inside-a-segment)
  1591.     (symbol
  1592.       ^meaning crossing-of-two-bent-segments
  1593.       ^drawing-character <drawing-character>)
  1594. -->
  1595.     (bind <tab> (compute 2 + (4 * <board-column>) + 2))
  1596.     (write (tabto <tab>)
  1597.            <drawing-character>)
  1598.     (modify <drawing-position-printed>
  1599.               ^type possibly-a-piece-of-vertical-segment
  1600.               ^sw-board-position-column <sebpc>
  1601.               ^nw-board-position-column <nebpc>
  1602.               ^se-board-position-column (compute <sebpc> + 1)
  1603.               ^ne-board-position-column (compute <nebpc> + 1)))
  1604.  
  1605. (p drawing-of-a-crossing-of-segments-4
  1606.     (game-state ^current-context board-drawing)
  1607.    {<drawing-position-printed>
  1608.     (drawing-position-printed
  1609.       ^line-type intermediate-line
  1610.       ^type possibly-a-piece-of-bent-segment
  1611.       ^nw-board-position-column <board-column>
  1612.       ^board-row <board-row>
  1613.       ^sw-board-position-column <swbpc>
  1614.       ^nw-board-position-column <nwbpc>
  1615.       ^se-board-position-column <sebpc>
  1616.       ^ne-board-position-column <nebpc>
  1617.       ^nw-board-position-row <nwbpr>
  1618.       ^sw-board-position-row <swbpr>)}
  1619.     (position
  1620.       ^row <swbpr>
  1621.       ^column <swbpc>
  1622.       ^state <> vacant
  1623.       ^right-bent-state inside-a-segment)
  1624.     (position
  1625.       ^row <nwbpr>
  1626.       ^column <nwbpc>
  1627.       ^state <> vacant
  1628.       ^left-bent-state inside-a-segment)
  1629.     (symbol
  1630.       ^meaning crossing-of-two-bent-segments
  1631.       ^drawing-character <drawing-character>)
  1632. -->
  1633.     (bind <tab> (compute 2 + (4 * <board-column>) + 2))
  1634.     (write (tabto <tab>)
  1635.            <drawing-character>)
  1636.     (modify <drawing-position-printed>
  1637.               ^type possibly-a-piece-of-vertical-segment
  1638.               ^sw-board-position-column <sebpc>
  1639.               ^nw-board-position-column <nebpc>
  1640.               ^se-board-position-column (compute <sebpc> + 1)
  1641.               ^ne-board-position-column (compute <nebpc> + 1)))
  1642.  
  1643. (p non-drawing-of-an-intermediate-position-of-an-intermediate-line
  1644.     (game-state ^current-context board-drawing)
  1645.    {<drawing-position-printed>
  1646.     (drawing-position-printed
  1647.       ^line-type intermediate-line
  1648.       ^type possibly-a-piece-of-bent-segment
  1649.       ^board-row <board-row>
  1650.       ^sw-board-position-column <swbpc>
  1651.       ^nw-board-position-column <nwbpc>
  1652.       ^se-board-position-column <sebpc>
  1653.       ^ne-board-position-column <nebpc>
  1654.       ^nw-board-position-row <nwbpr>
  1655.       ^sw-board-position-row <swbpr>)}
  1656. -->
  1657.     (modify <drawing-position-printed>
  1658.               ^type possibly-a-piece-of-vertical-segment
  1659.               ^sw-board-position-column <sebpc>
  1660.               ^nw-board-position-column <nebpc>
  1661.               ^se-board-position-column (compute <sebpc> + 1)
  1662.               ^ne-board-position-column (compute <nebpc> + 1)))
  1663.  
  1664. (p drawing-of-the-end-of-an-intermediate-line-1
  1665.     (game-state ^current-context board-drawing)
  1666.     (board-parameters
  1667.       ^nb-of-columns <nbbc>)
  1668.    {<drawing-position-printed>
  1669.     (drawing-position-printed
  1670.       ^line-type intermediate-line
  1671.       ^type possibly-a-piece-of-vertical-segment
  1672.       ^nw-board-position-column <nbbc>
  1673.       ^board-row <board-row>
  1674.       ^sw-board-position-row <swbpr>)}
  1675.     (position
  1676.       ^row <swbpr>
  1677.       ^column <nbbc>
  1678.       ^state <> vacant
  1679.       ^vertical-state inside-a-segment)
  1680.     (symbol
  1681.       ^meaning piece-of-vertical-segment
  1682.       ^drawing-character <drawing-character>)
  1683. -->
  1684.     (bind <tab> (compute 2 + (4 * <nbbc>)))
  1685.     (write (tabto <tab>)
  1686.            <drawing-character>
  1687.            (crlf))
  1688.     (modify <drawing-position-printed>
  1689.               ^type outside-board
  1690.               ^line-type board-line
  1691.               ^board-row (compute <board-row> + 1)))
  1692.  
  1693. (p drawing-of-the-end-of-an-intermediate-line-2
  1694.     (game-state ^current-context board-drawing)
  1695.     (board-parameters
  1696.       ^nb-of-columns <nbbc>)
  1697.    {<drawing-position-printed>
  1698.     (drawing-position-printed
  1699.       ^line-type intermediate-line
  1700.       ^type possibly-a-piece-of-vertical-segment
  1701.       ^nw-board-position-column <nbbc>
  1702.       ^board-row <board-row>
  1703.       ^nw-board-position-row <nwbpr>)}
  1704.     (position
  1705.       ^row <nwbpr>
  1706.       ^column <nbbc>
  1707.       ^state <> vacant
  1708.       ^vertical-state inside-a-segment)
  1709.     (symbol
  1710.       ^meaning piece-of-vertical-segment
  1711.       ^drawing-character <drawing-character>)
  1712. -->
  1713.     (bind <tab> (compute 2 + (4 * <nbbc>)))
  1714.     (write (tabto <tab>)
  1715.            <drawing-character>
  1716.            (crlf))
  1717.     (modify <drawing-position-printed>
  1718.               ^type outside-board
  1719.               ^line-type board-line
  1720.               ^board-row (compute <board-row> + 1)))
  1721.  
  1722. (p non-drawing-of-the-end-of-an-intermediate-line
  1723.     (game-state ^current-context board-drawing)
  1724.     (board-parameters
  1725.       ^nb-of-columns <nbbc>)
  1726.    {<drawing-position-printed>
  1727.     (drawing-position-printed
  1728.       ^line-type intermediate-line
  1729.       ^type possibly-a-piece-of-vertical-segment
  1730.       ^nw-board-position-column <nbbc>
  1731.       ^board-row <board-row>
  1732.       ^nw-board-position-row <nwbpr>)}
  1733. -->
  1734.     (modify <drawing-position-printed>
  1735.               ^type outside-board
  1736.               ^line-type board-line
  1737.               ^board-row (compute <board-row> + 1))
  1738.     (write (crlf)))
  1739.  
  1740.  
  1741.  
  1742. (p choice-of-a-move-by-human
  1743.    {<game-state>
  1744.     (game-state
  1745.       ^current-context choice-of-a-move
  1746.       ^current-sub-context choice-of-the-move
  1747.       ^current-player human)}
  1748. -->
  1749.     (write |Where do you play (row column)?|)
  1750.     (make input ^type position ^value (acceptline)))
  1751.  
  1752. (p correction-of-a-move-by-human
  1753.     (game-state
  1754.       ^current-context choice-of-a-move
  1755.       ^current-sub-context choice-of-the-move
  1756.       ^current-player human)
  1757.    {(input ^type position) <input>}
  1758. -->
  1759.     (write |Your move is illegal.|
  1760.            (crlf)
  1761.            |Where do you play (row column)?|)
  1762.     (modify <input>
  1763.       ^value (acceptline)))
  1764.  
  1765. (p end-of-the-choice-of-the-move
  1766.    {<game-state>
  1767.     (game-state
  1768.       ^current-context choice-of-a-move
  1769.       ^current-sub-context choice-of-the-move
  1770.       ^current-player human)}
  1771.    {(input
  1772.       ^type position
  1773.       ^value <row> <column>) <input>}
  1774.     (position
  1775.       ^row  <row>
  1776.       ^column <column>
  1777.       ^state vacant)
  1778. -->
  1779.     (make new-move
  1780.        ^row <row>
  1781.        ^column <column>
  1782.        ^state human)
  1783.     (remove <input>)
  1784.     (modify <game-state>
  1785.               ^current-context board-analyse
  1786.               ^current-sub-context garbage-cleaning))
  1787.  
  1788. (p asking-the-human-whether-he-wants-to-draw-a-segment
  1789.     (game-state
  1790.       ^current-context choice-of-a-move
  1791.       ^current-sub-context choice-of-segments
  1792.       ^current-player human)
  1793.    -(segment)
  1794.    -(input)
  1795. -->
  1796. (write |Segment to draw (ret., or beginning row & column, ending ...)?|)
  1797.     (make input
  1798.       ^type segment
  1799.       ^value (acceptline no read)))
  1800.  
  1801. (p asking-the-human-whether-he-wants-to-draw-another-segment
  1802.    {<game-state>
  1803.     (game-state
  1804.       ^current-context choice-of-a-move
  1805.       ^current-player human)}
  1806. -->
  1807.     (modify <game-state>
  1808.              ^current-context choice-of-a-move))
  1809.  
  1810. (p removal-of-a-negative-segment-input
  1811.    {(game-state
  1812.       ^current-context choice-of-a-move
  1813.       ^current-sub-context choice-of-segments
  1814.       ^current-player human) <game-state>}
  1815.    {(input
  1816.       ^type segment
  1817.       ^value no) <input>}
  1818. -->
  1819.     (remove <input>)
  1820.     (modify <game-state>
  1821.          ^current-context choice-of-a-move
  1822.          ^current-sub-context generation-of-the-best-possible-moves
  1823.          ^current-player computer))
  1824.  
  1825. (p drawing-of-a-segment-by-human
  1826.     (game-state
  1827.       ^current-context choice-of-a-move
  1828.       ^current-sub-context choice-of-segments
  1829.       ^current-player human)
  1830.    {(input
  1831.       ^type segment
  1832.       ^value {<> no <beginning-row>}
  1833.              <beginning-column>
  1834.              <ending-row>
  1835.              <ending-column>) <input>}
  1836. -->
  1837.     (make segment
  1838.             ^beginning-row <beginning-row>
  1839.             ^beginning-column <beginning-column>
  1840.             ^ending-row <ending-row>
  1841.             ^ending-column <ending-column>)
  1842.     (remove <input>))
  1843.  
  1844. (p orientation-of-a-non-vertical-segment
  1845.     (game-state
  1846.       ^current-context choice-of-a-move
  1847.       ^current-sub-context choice-of-segments
  1848.       ^current-player human)
  1849.    {<segment>
  1850.     (segment
  1851.       ^beginning-row <beginning-row>
  1852.       ^ending-row <ending-row>
  1853.       ^beginning-column <beginning-column>
  1854.       ^ending-column {<ending-column> < <beginning-column>})}
  1855. -->
  1856.     (modify <segment>
  1857.               ^beginning-row <ending-row>
  1858.               ^ending-row <beginning-row>
  1859.               ^beginning-column <ending-column>
  1860.               ^ending-column <beginning-column>))
  1861.  
  1862.  (p orientation-of-a-vertical-segment
  1863.     (game-state
  1864.       ^current-context choice-of-a-move
  1865.       ^current-sub-context choice-of-segments
  1866.       ^current-player human)
  1867.    {<segment>
  1868.     (segment
  1869.       ^beginning-column <column>
  1870.       ^ending-column  <column>
  1871.       ^beginning-row <beginning-row>
  1872.       ^ending-row {<ending-row> < <beginning-row>})}
  1873. -->
  1874.     (modify <segment>
  1875.               ^beginning-row <ending-row>
  1876.               ^ending-row <beginning-row>))
  1877.  
  1878. (p checking-of-the-legality-of-a-horizontal-oriented-segment
  1879.    {<game-state>
  1880.     (game-state
  1881.       ^current-context choice-of-a-move
  1882.       ^current-sub-context choice-of-segments
  1883.       ^current-player human
  1884.       ^human-score <human-score>)}
  1885.    {<segment>
  1886.     (segment
  1887.       ^beginning-row <row>
  1888.       ^ending-row  <row>
  1889.       ^beginning-column <beginning-column>
  1890.       ^ending-column <ending-column>)}
  1891.     (incrementation
  1892.       ^nb <beginning-column>
  1893.       ^nb-incremented <column2>)
  1894.     (incrementation
  1895.       ^nb <column2>
  1896.       ^nb-incremented <column3>)
  1897.     (incrementation
  1898.       ^nb <column3>
  1899.       ^nb-incremented <column4>)
  1900.    {<position1>
  1901.     (position
  1902.       ^column <beginning-column>
  1903.       ^row <row>
  1904.       ^state human
  1905.       ^horizontal-state << free end-of-a-segment >>)}
  1906.    {<position2>
  1907.     (position
  1908.       ^column <column2>
  1909.       ^row <row>
  1910.       ^state human
  1911.       ^horizontal-state << free end-of-a-segment >>)}
  1912.    {<position3>
  1913.     (position
  1914.       ^column <column3>
  1915.       ^row <row>
  1916.       ^state human
  1917.       ^horizontal-state << free end-of-a-segment >>)}
  1918.    {<position4>
  1919.     (position
  1920.       ^column {<ending-column> <column4>}
  1921.       ^row <row>
  1922.       ^state human
  1923.       ^horizontal-state << free end-of-a-segment >>)}
  1924. -->
  1925.     (modify <position1>
  1926.               ^horizontal-state end-of-a-segment)
  1927.     (modify <position2>
  1928.               ^horizontal-state inside-a-segment)
  1929.     (modify <position3>
  1930.               ^horizontal-state inside-a-segment)
  1931.     (modify <position4>
  1932.               ^horizontal-state end-of-a-segment)
  1933.     (modify <game-state>
  1934.               ^human-score (compute <human-score> + 1))
  1935.     (remove <segment>))
  1936.  
  1937. (p checking-of-the-legality-of-a-vertical-oriented-segment
  1938.    {<game-state>
  1939.     (game-state
  1940.       ^current-context choice-of-a-move
  1941.       ^current-sub-context choice-of-segments
  1942.       ^current-player human
  1943.       ^human-score <human-score>)}
  1944.    {<segment>
  1945.     (segment
  1946.       ^beginning-column <column>
  1947.       ^ending-column  <column>
  1948.       ^beginning-row <beginning-row>
  1949.       ^ending-row <ending-row>)}
  1950.     (incrementation
  1951.       ^nb <beginning-row>
  1952.       ^nb-incremented <row2>)
  1953.     (incrementation
  1954.       ^nb <row2>
  1955.       ^nb-incremented <row3>)
  1956.     (incrementation
  1957.       ^nb <row3>
  1958.       ^nb-incremented <row4>)
  1959.    {<position1>
  1960.     (position
  1961.       ^row <beginning-row>
  1962.       ^column <column>
  1963.       ^state human
  1964.       ^vertical-state << free end-of-a-segment >>)}
  1965.    {<position2>
  1966.     (position
  1967.       ^row <row2>
  1968.       ^column <column>
  1969.       ^state human
  1970.       ^vertical-state << free end-of-a-segment >>)}
  1971.    {<position3>
  1972.     (position
  1973.       ^row <row3>
  1974.       ^column <column>
  1975.       ^state human
  1976.       ^vertical-state << free end-of-a-segment >>)}
  1977.    {<position4>
  1978.     (position
  1979.       ^row {<ending-row> <row4>}
  1980.       ^column <column>
  1981.       ^state human
  1982.       ^vertical-state << free end-of-a-segment >>)}
  1983. -->
  1984.     (modify <position1>
  1985.               ^vertical-state end-of-a-segment)
  1986.     (modify <position2>
  1987.               ^vertical-state inside-a-segment)
  1988.     (modify <position3>
  1989.               ^vertical-state inside-a-segment)
  1990.     (modify <position4>
  1991.               ^vertical-state end-of-a-segment)
  1992.     (modify <game-state>
  1993.               ^human-score (compute <human-score> + 1))
  1994.     (remove <segment>))
  1995.  
  1996. (p checking-of-the-legality-of-a-left-bent-oriented-segment
  1997.    {<game-state>
  1998.     (game-state
  1999.       ^current-context choice-of-a-move
  2000.       ^current-sub-context choice-of-segments
  2001.       ^current-player human
  2002.       ^human-score <human-score>)}
  2003.    {<segment>
  2004.     (segment
  2005.       ^beginning-column <beginning-column>
  2006.       ^ending-column  <ending-column>
  2007.       ^beginning-row <beginning-row>
  2008.       ^ending-row <ending-row>)}
  2009.     (incrementation
  2010.       ^nb <beginning-row>
  2011.       ^nb-incremented <row2>)
  2012.     (incrementation
  2013.       ^nb <row2>
  2014.       ^nb-incremented <row3>)
  2015.     (incrementation
  2016.       ^nb <row3>
  2017.       ^nb-incremented <row4>)
  2018.     (incrementation
  2019.       ^nb <beginning-column>
  2020.       ^nb-incremented <column2>)
  2021.     (incrementation
  2022.       ^nb <column2>
  2023.       ^nb-incremented <column3>)
  2024.     (incrementation
  2025.       ^nb <column3>
  2026.       ^nb-incremented <column4>)
  2027.    {<position1>
  2028.     (position
  2029.       ^row <beginning-row>
  2030.       ^column <beginning-column>
  2031.       ^state human
  2032.       ^left-bent-state << free end-of-a-segment >>)}
  2033.    {<position2>
  2034.     (position
  2035.       ^row <row2>
  2036.       ^column <column2>
  2037.       ^state human
  2038.       ^left-bent-state << free end-of-a-segment >>)}
  2039.    {<position3>
  2040.     (position
  2041.       ^row <row3>
  2042.       ^column <column3>
  2043.       ^state human
  2044.       ^left-bent-state << free end-of-a-segment >>)}
  2045.    {<position4>
  2046.     (position
  2047.       ^row {<ending-row> <row4>}
  2048.       ^column {<ending-column> <column4>}
  2049.       ^state human
  2050.       ^left-bent-state << free end-of-a-segment >>)}
  2051. -->
  2052.     (modify <position1>
  2053.               ^left-bent-state end-of-a-segment)
  2054.     (modify <position2>
  2055.               ^left-bent-state inside-a-segment)
  2056.     (modify <position3>
  2057.               ^left-bent-state inside-a-segment)
  2058.     (modify <position4>
  2059.               ^left-bent-state end-of-a-segment)
  2060.     (modify <game-state>
  2061.               ^human-score (compute <human-score> + 1))
  2062.     (remove <segment>))
  2063.  
  2064. (p checking-of-the-legality-of-a-right-bent-oriented-segment
  2065.    {<game-state>
  2066.     (game-state
  2067.       ^current-context choice-of-a-move
  2068.       ^current-sub-context choice-of-segments
  2069.       ^current-player human
  2070.       ^human-score <human-score>)}
  2071.    {<segment>
  2072.     (segment
  2073.       ^beginning-row <beginning-row>
  2074.       ^ending-row  <ending-row>
  2075.       ^beginning-column <beginning-column>
  2076.       ^ending-column <ending-column>)}
  2077.     (incrementation
  2078.       ^nb <beginning-column>
  2079.       ^nb-incremented <column2>)
  2080.     (incrementation
  2081.       ^nb <column2>
  2082.       ^nb-incremented <column3>)
  2083.     (incrementation
  2084.       ^nb <column3>
  2085.       ^nb-incremented <column4>)
  2086.     (incrementation
  2087.       ^nb <ending-row>
  2088.       ^nb-incremented <row3>)
  2089.     (incrementation
  2090.       ^nb <row3>
  2091.       ^nb-incremented <row2>)
  2092.     (incrementation
  2093.       ^nb <row2>
  2094.       ^nb-incremented <row1>)
  2095.    {<position1>
  2096.     (position
  2097.       ^column <beginning-column>
  2098.       ^row {<row1> <beginning-row>}
  2099.       ^state human
  2100.       ^right-bent-state << free end-of-a-segment >>)}
  2101.    {<position2>
  2102.     (position
  2103.       ^column <column2>
  2104.       ^row <row2>
  2105.       ^state human
  2106.       ^right-bent-state << free end-of-a-segment >>)}
  2107.    {<position3>
  2108.     (position
  2109.       ^column <column3>
  2110.       ^row <row3>
  2111.       ^state human
  2112.       ^right-bent-state << free end-of-a-segment >>)}
  2113.    {<position4>
  2114.     (position
  2115.       ^column {<ending-column> <column4>}
  2116.       ^row <ending-row>
  2117.       ^state human
  2118.       ^right-bent-state << free end-of-a-segment >>)}
  2119. -->
  2120.     (modify <position1>
  2121.               ^right-bent-state end-of-a-segment)
  2122.     (modify <position2>
  2123.               ^right-bent-state inside-a-segment)
  2124.     (modify <position3>
  2125.               ^right-bent-state inside-a-segment)
  2126.     (modify <position4>
  2127.               ^right-bent-state end-of-a-segment)
  2128.     (modify <game-state>
  2129.               ^human-score (compute <human-score> + 1))
  2130.     (remove <segment>))
  2131.  
  2132. (p correction-of-a-segment
  2133.    {<game-state>
  2134.     (game-state
  2135.       ^current-context choice-of-a-move
  2136.       ^current-sub-context choice-of-segments
  2137.       ^current-player human
  2138.       ^human-score <human-score>)}
  2139.    {<segment>
  2140.     (segment
  2141.       ^beginning-row <beginning-row>
  2142.       ^ending-row  <ending-row>
  2143.       ^beginning-column <beginning-column>
  2144.       ^ending-column <ending-column>)}
  2145. -->
  2146.     (remove <segment>)
  2147.     (write |Your segment is illegal.|
  2148.            (crlf)
  2149.            |Segment to draw (ret., or beginning row & column, ending ...)?|)
  2150.     (make input
  2151.       ^type segment
  2152.       ^value (acceptline no read)))
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169. (p fbug-start
  2170.     (start)
  2171.   -->
  2172.     (make position
  2173.            ^row 0
  2174.            ^column 0
  2175.            ^state edge
  2176.            ^vertical-state nil
  2177.            ^horizontal-state nil
  2178.            ^right-bent-state nil
  2179.            ^left-bent-state nil)
  2180.     (make opposite ^of human ^is computer)
  2181.     (make opposite ^of computer ^is human)
  2182.     (make board-parameters
  2183.            ^nb-of-columns 10
  2184.            ^nb-of-rows 10
  2185.            ^nb-of-columns-incr 11
  2186.            ^nb-of-rows-incr 11
  2187.        ^max-board-size 10
  2188.        ^max-board-size-incr 11)
  2189.     (make symbol
  2190.            ^meaning vacant
  2191.            ^drawing-character |.|)
  2192.     (make symbol
  2193.            ^meaning human
  2194.            ^drawing-character |o|)
  2195.     (make symbol
  2196.            ^meaning computer
  2197.            ^drawing-character |*|)
  2198.     (make symbol
  2199.            ^meaning piece-of-horizontal-segment
  2200.            ^drawing-character |-|)
  2201.     (make symbol
  2202.            ^meaning piece-of-vertical-segment
  2203.            ^drawing-character |l|)
  2204.     (make symbol
  2205.            ^meaning piece-of-right-bent-segment
  2206.            ^drawing-character |/|)
  2207.     (make symbol
  2208.            ^meaning piece-of-left-bent-segment
  2209.            ^drawing-character |\|)
  2210.     (make symbol
  2211.            ^meaning crossing-of-two-bent-segments
  2212.            ^drawing-character |x|)
  2213.     (make game-state
  2214.            ^current-context initialisations
  2215.            ^human-score 0
  2216.            ^computer-score 0)
  2217.     (make delta 0)
  2218.     (make delta 1)
  2219.     (make delta -1)
  2220.     (make nb 0)
  2221.     (make nb 1)
  2222.     (make nb 2)
  2223.     (make nb 3)
  2224.     (make nb 4)
  2225.     (make nb 5)
  2226.     (make nb 6)
  2227.     (make nb 7)
  2228.     (make nb 8)
  2229.     (make nb 9)
  2230.     (make nb 10)
  2231.     (make nb 11)
  2232.     (make length 4)
  2233.     (make length 5)
  2234.     (make length 6)
  2235.     (make length 7)
  2236.     (make incrementation
  2237.       ^nb 0
  2238.       ^nb-incremented 1)
  2239.     (make direction ^geometry assymetric ^row 0 ^column 1)
  2240.     (make direction ^geometry assymetric ^row 1 ^column 1)
  2241.     (make direction ^geometry assymetric ^row 1 ^column 0)
  2242.     (make direction ^geometry assymetric ^row 1 ^column -1)
  2243.     (make direction ^geometry assymetric ^row 0 ^column -1)
  2244.     (make direction ^geometry assymetric ^row -1 ^column -1)
  2245.     (make direction ^geometry assymetric ^row -1 ^column 0)
  2246.     (make direction ^geometry assymetric ^row -1 ^column 1)
  2247.     (make direction ^geometry symetric ^row 0 ^column 1)
  2248.     (make direction ^geometry symetric ^row 1 ^column 1)
  2249.     (make direction ^geometry symetric ^row 1 ^column 0)
  2250.     (make direction ^geometry symetric ^row 1 ^column -1)
  2251.     (make number-to-add-while-updating-counters ^value ignore-it)
  2252.     (make segment-type
  2253.            ^name opcxcpo
  2254.            ^length 7
  2255.            ^geometry symetric
  2256.            ^owner computer
  2257.            ^position-1-state human
  2258.            ^position-2-state vacant
  2259.            ^position-3-state vacant
  2260.            ^position-4-state computer
  2261.            ^position-5-state vacant
  2262.            ^position-6-state vacant
  2263.            ^position-7-state human
  2264.            ^position-1-counter-to-update garbage
  2265.            ^position-2-counter-to-update garbage
  2266.            ^position-3-counter-to-update nb-of-compulsory-answer-creations
  2267.            ^position-4-counter-to-update garbage
  2268.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2269.            ^position-6-counter-to-update garbage
  2270.            ^position-7-counter-to-update garbage)
  2271.     (make segment-type
  2272.            ^name ipcxcpo
  2273.            ^length 7
  2274.            ^geometry assymetric
  2275.            ^owner computer
  2276.            ^position-1-state edge
  2277.            ^position-2-state vacant
  2278.            ^position-3-state vacant
  2279.            ^position-4-state computer
  2280.            ^position-5-state vacant
  2281.            ^position-6-state vacant
  2282.            ^position-7-state human
  2283.            ^position-1-counter-to-update garbage
  2284.            ^position-2-counter-to-update garbage
  2285.            ^position-3-counter-to-update nb-of-compulsory-answer-creations
  2286.            ^position-4-counter-to-update garbage
  2287.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2288.            ^position-6-counter-to-update garbage
  2289.            ^position-7-counter-to-update garbage)
  2290.     (make segment-type
  2291.            ^name ipcxcpi
  2292.            ^length 7
  2293.            ^geometry symetric
  2294.            ^owner computer
  2295.            ^position-1-state edge
  2296.            ^position-2-state vacant
  2297.            ^position-3-state vacant
  2298.            ^position-4-state computer
  2299.            ^position-5-state vacant
  2300.            ^position-6-state vacant
  2301.            ^position-7-state edge
  2302.            ^position-1-counter-to-update garbage
  2303.            ^position-2-counter-to-update garbage
  2304.            ^position-3-counter-to-update nb-of-compulsory-answer-creations
  2305.            ^position-4-counter-to-update garbage
  2306.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2307.            ^position-6-counter-to-update garbage
  2308.            ^position-7-counter-to-update garbage)
  2309.     (make segment-type
  2310.            ^name pccxccp
  2311.            ^length 7
  2312.            ^geometry symetric
  2313.            ^owner computer
  2314.            ^position-1-state vacant
  2315.            ^position-2-state vacant
  2316.            ^position-3-state vacant
  2317.            ^position-4-state computer
  2318.            ^position-5-state vacant
  2319.            ^position-6-state vacant
  2320.            ^position-7-state vacant
  2321.            ^position-1-counter-to-update garbage
  2322.            ^position-2-counter-to-update nb-of-compulsory-answer-creations
  2323.            ^position-3-counter-to-update nb-of-compulsory-answer-creations
  2324.            ^position-4-counter-to-update garbage
  2325.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2326.            ^position-6-counter-to-update nb-of-compulsory-answer-creations
  2327.            ^position-7-counter-to-update garbage)
  2328.     (make segment-type
  2329.            ^name opcxccp
  2330.            ^length 7
  2331.            ^geometry assymetric
  2332.            ^owner computer
  2333.            ^position-1-state human
  2334.            ^position-2-state vacant
  2335.            ^position-3-state vacant
  2336.            ^position-4-state computer
  2337.            ^position-5-state vacant
  2338.            ^position-6-state vacant
  2339.            ^position-7-state vacant
  2340.            ^position-1-counter-to-update garbage
  2341.            ^position-2-counter-to-update garbage
  2342.            ^position-3-counter-to-update nb-of-compulsory-answer-creations
  2343.            ^position-4-counter-to-update garbage
  2344.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2345.            ^position-6-counter-to-update nb-of-compulsory-answer-creations
  2346.            ^position-7-counter-to-update garbage)
  2347.     (make segment-type
  2348.            ^name ipcxccp
  2349.            ^length 7
  2350.            ^geometry assymetric
  2351.            ^owner computer
  2352.            ^position-1-state edge
  2353.            ^position-2-state vacant
  2354.            ^position-3-state vacant
  2355.            ^position-4-state computer
  2356.            ^position-5-state vacant
  2357.            ^position-6-state vacant
  2358.            ^position-7-state vacant
  2359.            ^position-1-counter-to-update garbage
  2360.            ^position-2-counter-to-update garbage
  2361.            ^position-3-counter-to-update nb-of-compulsory-answer-creations
  2362.            ^position-4-counter-to-update garbage
  2363.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2364.            ^position-6-counter-to-update nb-of-compulsory-answer-creations
  2365.            ^position-7-counter-to-update garbage)
  2366.     (make segment-type
  2367.            ^name cxfxc
  2368.            ^length 5
  2369.            ^geometry symetric
  2370.            ^owner computer
  2371.            ^position-1-state vacant
  2372.            ^position-2-state computer
  2373.            ^position-3-state vacant
  2374.            ^position-4-state computer
  2375.            ^position-5-state vacant
  2376.            ^position-1-counter-to-update nb-of-compulsory-answer-creations
  2377.            ^position-2-counter-to-update garbage
  2378.            ^position-3-counter-to-update nb-of-fragile-winners
  2379.            ^position-4-counter-to-update garbage
  2380.            ^position-5-counter-to-update nb-of-compulsory-answer-creations)
  2381.     (make segment-type
  2382.            ^name oxxcc
  2383.            ^length 5
  2384.            ^geometry assymetric
  2385.            ^owner human
  2386.        ^position-1-state human
  2387.            ^position-2-state computer
  2388.            ^position-3-state computer
  2389.            ^position-4-state vacant
  2390.            ^position-5-state vacant
  2391.            ^position-1-counter-to-update garbage
  2392.            ^position-2-counter-to-update garbage
  2393.            ^position-3-counter-to-update garbage
  2394.            ^position-4-counter-to-update nb-of-compulsory-answer-creations
  2395.            ^position-5-counter-to-update nb-of-compulsory-answer-creations)
  2396.     (make segment-type
  2397.            ^name ixxcc
  2398.            ^length 5
  2399.            ^geometry assymetric
  2400.            ^owner human
  2401.        ^position-1-state edge
  2402.            ^position-2-state computer
  2403.            ^position-3-state computer
  2404.            ^position-4-state vacant
  2405.            ^position-5-state vacant
  2406.            ^position-1-counter-to-update garbage
  2407.            ^position-2-counter-to-update garbage
  2408.            ^position-3-counter-to-update garbage
  2409.            ^position-4-counter-to-update nb-of-compulsory-answer-creations
  2410.            ^position-5-counter-to-update nb-of-compulsory-answer-creations)
  2411.     (make segment-type
  2412.            ^name oxxfx
  2413.            ^length 5
  2414.            ^geometry assymetric
  2415.            ^owner computer
  2416.            ^position-1-state human
  2417.            ^position-2-state computer
  2418.            ^position-3-state computer
  2419.            ^position-4-state vacant
  2420.            ^position-5-state computer
  2421.            ^position-1-counter-to-update garbage
  2422.            ^position-2-counter-to-update garbage
  2423.            ^position-3-counter-to-update garbage
  2424.            ^position-4-counter-to-update nb-of-fragile-winners
  2425.            ^position-5-counter-to-update garbage)
  2426.     (make segment-type
  2427.            ^name ixxfx
  2428.            ^length 5
  2429.            ^geometry assymetric
  2430.            ^owner computer
  2431.            ^position-1-state edge
  2432.            ^position-2-state computer
  2433.            ^position-3-state computer
  2434.            ^position-4-state vacant
  2435.            ^position-5-state computer
  2436.            ^position-1-counter-to-update garbage
  2437.            ^position-2-counter-to-update garbage
  2438.            ^position-3-counter-to-update garbage
  2439.            ^position-4-counter-to-update nb-of-fragile-winners
  2440.            ^position-5-counter-to-update garbage)
  2441.     (make segment-type
  2442.            ^name ocxxco
  2443.            ^length 6
  2444.            ^geometry symetric
  2445.            ^owner computer
  2446.            ^position-1-state human
  2447.            ^position-2-state vacant
  2448.            ^position-3-state computer
  2449.            ^position-4-state computer
  2450.            ^position-5-state vacant
  2451.            ^position-6-state human
  2452.            ^position-1-counter-to-update garbage
  2453.            ^position-2-counter-to-update nb-of-compulsory-answer-creations
  2454.            ^position-3-counter-to-update garbage
  2455.            ^position-4-counter-to-update garbage
  2456.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2457.            ^position-6-counter-to-update garbage)
  2458.     (make segment-type
  2459.            ^name icxxco
  2460.            ^length 6
  2461.            ^geometry assymetric
  2462.            ^owner computer
  2463.            ^position-1-state edge
  2464.            ^position-2-state vacant
  2465.            ^position-3-state computer
  2466.            ^position-4-state computer
  2467.            ^position-5-state vacant
  2468.            ^position-6-state human
  2469.            ^position-1-counter-to-update garbage
  2470.            ^position-2-counter-to-update nb-of-compulsory-answer-creations
  2471.            ^position-3-counter-to-update garbage
  2472.            ^position-4-counter-to-update garbage
  2473.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2474.            ^position-6-counter-to-update garbage)
  2475.     (make segment-type
  2476.            ^name icxxci
  2477.            ^length 6
  2478.            ^geometry symetric
  2479.            ^owner computer
  2480.            ^position-1-state edge
  2481.            ^position-2-state vacant
  2482.            ^position-3-state computer
  2483.            ^position-4-state computer
  2484.            ^position-5-state vacant
  2485.            ^position-6-state edge
  2486.            ^position-1-counter-to-update garbage
  2487.            ^position-2-counter-to-update nb-of-compulsory-answer-creations
  2488.            ^position-3-counter-to-update garbage
  2489.            ^position-4-counter-to-update garbage
  2490.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2491.            ^position-6-counter-to-update garbage)
  2492.     (make segment-type
  2493.            ^name ocxxfc
  2494.            ^length 6
  2495.            ^geometry assymetric
  2496.            ^owner computer
  2497.            ^position-1-state human
  2498.            ^position-2-state vacant
  2499.            ^position-3-state computer
  2500.            ^position-4-state computer
  2501.            ^position-5-state vacant
  2502.            ^position-6-state vacant
  2503.            ^position-1-counter-to-update garbage
  2504.            ^position-2-counter-to-update nb-of-compulsory-answer-creations
  2505.            ^position-3-counter-to-update garbage
  2506.            ^position-4-counter-to-update garbage
  2507.            ^position-5-counter-to-update nb-of-fragile-winners
  2508.            ^position-6-counter-to-update nb-of-compulsory-answer-creations)
  2509.     (make segment-type
  2510.            ^name icxxfc
  2511.            ^length 6
  2512.            ^geometry assymetric
  2513.            ^owner computer
  2514.            ^position-1-state edge
  2515.            ^position-2-state vacant
  2516.            ^position-3-state computer
  2517.            ^position-4-state computer
  2518.            ^position-5-state vacant
  2519.            ^position-6-state vacant
  2520.            ^position-1-counter-to-update garbage
  2521.            ^position-2-counter-to-update nb-of-compulsory-answer-creations
  2522.            ^position-3-counter-to-update garbage
  2523.            ^position-4-counter-to-update garbage
  2524.            ^position-5-counter-to-update nb-of-fragile-winners
  2525.            ^position-6-counter-to-update nb-of-compulsory-answer-creations)
  2526.     (make segment-type
  2527.            ^name ocxxfx
  2528.            ^length 6
  2529.            ^geometry assymetric
  2530.            ^owner computer
  2531.            ^position-1-state human
  2532.            ^position-2-state vacant
  2533.            ^position-3-state computer
  2534.            ^position-4-state computer
  2535.            ^position-5-state vacant
  2536.            ^position-6-state computer
  2537.            ^position-1-counter-to-update garbage
  2538.            ^position-2-counter-to-update nb-of-compulsory-answer-creations
  2539.            ^position-3-counter-to-update garbage
  2540.            ^position-4-counter-to-update garbage
  2541.            ^position-5-counter-to-update nb-of-fragile-winners
  2542.            ^position-6-counter-to-update garbage)
  2543.     (make segment-type
  2544.            ^name icxxfx
  2545.            ^length 6
  2546.            ^geometry assymetric
  2547.            ^owner computer
  2548.            ^position-1-state edge
  2549.            ^position-2-state vacant
  2550.            ^position-3-state computer
  2551.            ^position-4-state computer
  2552.            ^position-5-state vacant
  2553.            ^position-6-state computer
  2554.            ^position-1-counter-to-update garbage
  2555.            ^position-2-counter-to-update nb-of-compulsory-answer-creations
  2556.            ^position-3-counter-to-update garbage
  2557.            ^position-4-counter-to-update garbage
  2558.            ^position-5-counter-to-update nb-of-fragile-winners
  2559.            ^position-6-counter-to-update garbage)
  2560.     (make segment-type
  2561.            ^name cfxxfc
  2562.            ^length 6
  2563.            ^geometry symetric
  2564.            ^owner computer
  2565.            ^position-1-state vacant
  2566.            ^position-2-state vacant
  2567.            ^position-3-state computer
  2568.            ^position-4-state computer
  2569.            ^position-5-state vacant
  2570.            ^position-6-state vacant
  2571.            ^position-1-counter-to-update nb-of-compulsory-answer-creations
  2572.            ^position-2-counter-to-update nb-of-fragile-winners
  2573.            ^position-3-counter-to-update garbage
  2574.            ^position-4-counter-to-update garbage
  2575.            ^position-5-counter-to-update nb-of-fragile-winners
  2576.            ^position-6-counter-to-update nb-of-compulsory-answer-creations)
  2577.     (make segment-type
  2578.            ^name xfxxfc
  2579.            ^length 6
  2580.            ^geometry assymetric
  2581.            ^owner computer
  2582.            ^position-1-state computer
  2583.            ^position-2-state vacant
  2584.            ^position-3-state computer
  2585.            ^position-4-state computer
  2586.            ^position-5-state vacant
  2587.            ^position-6-state vacant
  2588.            ^position-1-counter-to-update garbage
  2589.            ^position-2-counter-to-update nb-of-fragile-winners
  2590.            ^position-3-counter-to-update garbage
  2591.            ^position-4-counter-to-update garbage
  2592.            ^position-5-counter-to-update nb-of-fragile-winners
  2593.            ^position-6-counter-to-update nb-of-compulsory-answer-creations)
  2594.     (make segment-type
  2595.            ^name xwxxwx
  2596.            ^length 6
  2597.            ^geometry symetric
  2598.            ^owner computer
  2599.            ^position-1-state computer
  2600.            ^position-2-state vacant
  2601.            ^position-3-state computer
  2602.            ^position-4-state computer
  2603.            ^position-5-state vacant
  2604.            ^position-6-state computer
  2605.            ^position-1-counter-to-update garbage
  2606.            ^position-2-counter-to-update nb-of-strong-winners
  2607.            ^position-3-counter-to-update garbage
  2608.            ^position-4-counter-to-update garbage
  2609.            ^position-5-counter-to-update nb-of-strong-winners
  2610.            ^position-6-counter-to-update garbage)
  2611.     (make segment-type
  2612.            ^name oxxxf
  2613.            ^length 5
  2614.            ^geometry assymetric
  2615.            ^owner computer
  2616.            ^position-1-state human
  2617.            ^position-2-state computer
  2618.            ^position-3-state computer
  2619.            ^position-4-state computer
  2620.            ^position-5-state vacant
  2621.            ^position-1-counter-to-update garbage
  2622.            ^position-2-counter-to-update garbage
  2623.            ^position-3-counter-to-update garbage
  2624.            ^position-4-counter-to-update garbage
  2625.            ^position-5-counter-to-update nb-of-fragile-winners)
  2626.     (make segment-type
  2627.            ^name ixxxf
  2628.            ^length 5
  2629.            ^geometry assymetric
  2630.            ^owner computer
  2631.            ^position-1-state edge
  2632.            ^position-2-state computer
  2633.            ^position-3-state computer
  2634.            ^position-4-state computer
  2635.            ^position-5-state vacant
  2636.            ^position-1-counter-to-update garbage
  2637.            ^position-2-counter-to-update garbage
  2638.            ^position-3-counter-to-update garbage
  2639.            ^position-4-counter-to-update garbage
  2640.            ^position-5-counter-to-update nb-of-fragile-winners)
  2641.     (make segment-type
  2642.            ^name wxxxw
  2643.            ^length 5
  2644.            ^geometry symetric
  2645.            ^owner computer
  2646.            ^position-1-state vacant
  2647.            ^position-2-state computer
  2648.            ^position-3-state computer
  2649.            ^position-4-state computer
  2650.            ^position-5-state vacant
  2651.            ^position-1-counter-to-update nb-of-strong-winners
  2652.            ^position-2-counter-to-update garbage
  2653.            ^position-3-counter-to-update garbage
  2654.            ^position-4-counter-to-update garbage
  2655.            ^position-5-counter-to-update nb-of-strong-winners)
  2656.     (make segment-type
  2657.            ^name opcxcpo
  2658.            ^length 7
  2659.            ^geometry symetric
  2660.            ^owner human
  2661.            ^position-1-state computer
  2662.            ^position-2-state vacant
  2663.            ^position-3-state vacant
  2664.            ^position-4-state human
  2665.            ^position-5-state vacant
  2666.            ^position-6-state vacant
  2667.            ^position-7-state computer
  2668.            ^position-1-counter-to-update garbage
  2669.            ^position-2-counter-to-update garbage
  2670.            ^position-3-counter-to-update nb-of-compulsory-answer-creations
  2671.            ^position-4-counter-to-update garbage
  2672.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2673.            ^position-6-counter-to-update garbage
  2674.            ^position-7-counter-to-update garbage)
  2675.     (make segment-type
  2676.            ^name ipcxcpo
  2677.            ^length 7
  2678.            ^geometry assymetric
  2679.            ^owner human
  2680.            ^position-1-state edge
  2681.            ^position-2-state vacant
  2682.            ^position-3-state vacant
  2683.            ^position-4-state human
  2684.            ^position-5-state vacant
  2685.            ^position-6-state vacant
  2686.            ^position-7-state computer
  2687.            ^position-1-counter-to-update garbage
  2688.            ^position-2-counter-to-update garbage
  2689.            ^position-3-counter-to-update nb-of-compulsory-answer-creations
  2690.            ^position-4-counter-to-update garbage
  2691.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2692.            ^position-6-counter-to-update garbage
  2693.            ^position-7-counter-to-update garbage)
  2694.     (make segment-type
  2695.            ^name ipcxcpi
  2696.            ^length 7
  2697.            ^geometry symetric
  2698.            ^owner human
  2699.            ^position-1-state edge
  2700.            ^position-2-state vacant
  2701.            ^position-3-state vacant
  2702.            ^position-4-state human
  2703.            ^position-5-state vacant
  2704.            ^position-6-state vacant
  2705.            ^position-7-state edge
  2706.            ^position-1-counter-to-update garbage
  2707.            ^position-2-counter-to-update garbage
  2708.            ^position-3-counter-to-update nb-of-compulsory-answer-creations
  2709.            ^position-4-counter-to-update garbage
  2710.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2711.            ^position-6-counter-to-update garbage
  2712.            ^position-7-counter-to-update garbage)
  2713.     (make segment-type
  2714.            ^name pccxccp
  2715.            ^length 7
  2716.            ^geometry symetric
  2717.            ^owner human
  2718.            ^position-1-state vacant
  2719.            ^position-2-state vacant
  2720.            ^position-3-state vacant
  2721.            ^position-4-state human
  2722.            ^position-5-state vacant
  2723.            ^position-6-state vacant
  2724.            ^position-7-state vacant
  2725.            ^position-1-counter-to-update garbage
  2726.            ^position-2-counter-to-update nb-of-compulsory-answer-creations
  2727.            ^position-3-counter-to-update nb-of-compulsory-answer-creations
  2728.            ^position-4-counter-to-update garbage
  2729.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2730.            ^position-6-counter-to-update nb-of-compulsory-answer-creations
  2731.            ^position-7-counter-to-update garbage)
  2732.     (make segment-type
  2733.            ^name opcxccp
  2734.            ^length 7
  2735.            ^geometry assymetric
  2736.            ^owner human
  2737.            ^position-1-state computer
  2738.            ^position-2-state vacant
  2739.            ^position-3-state vacant
  2740.            ^position-4-state human
  2741.            ^position-5-state vacant
  2742.            ^position-6-state vacant
  2743.            ^position-7-state vacant
  2744.            ^position-1-counter-to-update garbage
  2745.            ^position-2-counter-to-update garbage
  2746.            ^position-3-counter-to-update nb-of-compulsory-answer-creations
  2747.            ^position-4-counter-to-update garbage
  2748.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2749.            ^position-6-counter-to-update nb-of-compulsory-answer-creations
  2750.            ^position-7-counter-to-update garbage)
  2751.     (make segment-type
  2752.            ^name ipcxccp
  2753.            ^length 7
  2754.            ^geometry assymetric
  2755.            ^owner human
  2756.            ^position-1-state edge
  2757.            ^position-2-state vacant
  2758.            ^position-3-state vacant
  2759.            ^position-4-state human
  2760.            ^position-5-state vacant
  2761.            ^position-6-state vacant
  2762.            ^position-7-state vacant
  2763.            ^position-1-counter-to-update garbage
  2764.            ^position-2-counter-to-update garbage
  2765.            ^position-3-counter-to-update nb-of-compulsory-answer-creations
  2766.            ^position-4-counter-to-update garbage
  2767.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2768.            ^position-6-counter-to-update nb-of-compulsory-answer-creations
  2769.            ^position-7-counter-to-update garbage)
  2770.     (make segment-type
  2771.            ^name cxfxc
  2772.            ^length 5
  2773.            ^geometry symetric
  2774.            ^owner human
  2775.            ^position-1-state vacant
  2776.            ^position-2-state human
  2777.            ^position-3-state vacant
  2778.            ^position-4-state human
  2779.            ^position-5-state vacant
  2780.            ^position-1-counter-to-update nb-of-compulsory-answer-creations
  2781.            ^position-2-counter-to-update garbage
  2782.            ^position-3-counter-to-update nb-of-fragile-winners
  2783.            ^position-4-counter-to-update garbage
  2784.            ^position-5-counter-to-update nb-of-compulsory-answer-creations)
  2785.     (make segment-type
  2786.            ^name oxxcc
  2787.            ^length 5
  2788.            ^geometry assymetric
  2789.            ^owner computer
  2790.        ^position-1-state computer
  2791.            ^position-2-state human
  2792.            ^position-3-state human
  2793.            ^position-4-state vacant
  2794.            ^position-5-state vacant
  2795.            ^position-1-counter-to-update garbage
  2796.            ^position-2-counter-to-update garbage
  2797.            ^position-3-counter-to-update garbage
  2798.            ^position-4-counter-to-update nb-of-compulsory-answer-creations
  2799.            ^position-5-counter-to-update nb-of-compulsory-answer-creations)
  2800.     (make segment-type
  2801.            ^name ixxcc
  2802.            ^length 5
  2803.            ^geometry assymetric
  2804.            ^owner computer
  2805.        ^position-1-state edge
  2806.            ^position-2-state human
  2807.            ^position-3-state human
  2808.            ^position-4-state vacant
  2809.            ^position-5-state vacant
  2810.            ^position-1-counter-to-update garbage
  2811.            ^position-2-counter-to-update garbage
  2812.            ^position-3-counter-to-update garbage
  2813.            ^position-4-counter-to-update nb-of-compulsory-answer-creations
  2814.            ^position-5-counter-to-update nb-of-compulsory-answer-creations)
  2815.     (make segment-type
  2816.            ^name oxxfx
  2817.            ^length 5
  2818.            ^geometry assymetric
  2819.            ^owner human
  2820.            ^position-1-state computer
  2821.            ^position-2-state human
  2822.            ^position-3-state human
  2823.            ^position-4-state vacant
  2824.            ^position-5-state human
  2825.            ^position-1-counter-to-update garbage
  2826.            ^position-2-counter-to-update garbage
  2827.            ^position-3-counter-to-update garbage
  2828.            ^position-4-counter-to-update nb-of-fragile-winners
  2829.            ^position-5-counter-to-update garbage)
  2830.     (make segment-type
  2831.            ^name ixxfx
  2832.            ^length 5
  2833.            ^geometry assymetric
  2834.            ^owner human
  2835.            ^position-1-state edge
  2836.            ^position-2-state human
  2837.            ^position-3-state human
  2838.            ^position-4-state vacant
  2839.            ^position-5-state human
  2840.            ^position-1-counter-to-update garbage
  2841.            ^position-2-counter-to-update garbage
  2842.            ^position-3-counter-to-update garbage
  2843.            ^position-4-counter-to-update nb-of-fragile-winners
  2844.            ^position-5-counter-to-update garbage)
  2845.     (make segment-type
  2846.            ^name ocxxco
  2847.            ^length 6
  2848.            ^geometry symetric
  2849.            ^owner human
  2850.            ^position-1-state computer
  2851.            ^position-2-state vacant
  2852.            ^position-3-state human
  2853.            ^position-4-state human
  2854.            ^position-5-state vacant
  2855.            ^position-6-state computer
  2856.            ^position-1-counter-to-update garbage
  2857.            ^position-2-counter-to-update nb-of-compulsory-answer-creations
  2858.            ^position-3-counter-to-update garbage
  2859.            ^position-4-counter-to-update garbage
  2860.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2861.            ^position-6-counter-to-update garbage)
  2862.     (make segment-type
  2863.            ^name icxxco
  2864.            ^length 6
  2865.            ^geometry assymetric
  2866.            ^owner human
  2867.            ^position-1-state edge
  2868.            ^position-2-state vacant
  2869.            ^position-3-state human
  2870.            ^position-4-state human
  2871.            ^position-5-state vacant
  2872.            ^position-6-state computer
  2873.            ^position-1-counter-to-update garbage
  2874.            ^position-2-counter-to-update nb-of-compulsory-answer-creations
  2875.            ^position-3-counter-to-update garbage
  2876.            ^position-4-counter-to-update garbage
  2877.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2878.            ^position-6-counter-to-update garbage)
  2879.     (make segment-type
  2880.            ^name icxxci
  2881.            ^length 6
  2882.            ^geometry symetric
  2883.            ^owner human
  2884.            ^position-1-state edge
  2885.            ^position-2-state vacant
  2886.            ^position-3-state human
  2887.            ^position-4-state human
  2888.            ^position-5-state vacant
  2889.            ^position-6-state edge
  2890.            ^position-1-counter-to-update garbage
  2891.            ^position-2-counter-to-update nb-of-compulsory-answer-creations
  2892.            ^position-3-counter-to-update garbage
  2893.            ^position-4-counter-to-update garbage
  2894.            ^position-5-counter-to-update nb-of-compulsory-answer-creations
  2895.            ^position-6-counter-to-update garbage)
  2896.     (make segment-type
  2897.            ^name ocxxfc
  2898.            ^length 6
  2899.            ^geometry assymetric
  2900.            ^owner human
  2901.            ^position-1-state computer
  2902.            ^position-2-state vacant
  2903.            ^position-3-state human
  2904.            ^position-4-state human
  2905.            ^position-5-state vacant
  2906.            ^position-6-state vacant
  2907.            ^position-1-counter-to-update garbage
  2908.            ^position-2-counter-to-update nb-of-compulsory-answer-creations
  2909.            ^position-3-counter-to-update garbage
  2910.            ^position-4-counter-to-update garbage
  2911.            ^position-5-counter-to-update nb-of-fragile-winners
  2912.            ^position-6-counter-to-update nb-of-compulsory-answer-creations)
  2913.     (make segment-type
  2914.            ^name icxxfc
  2915.            ^length 6
  2916.            ^geometry assymetric
  2917.            ^owner human
  2918.            ^position-1-state edge
  2919.            ^position-2-state vacant
  2920.            ^position-3-state human
  2921.            ^position-4-state human
  2922.            ^position-5-state vacant
  2923.            ^position-6-state vacant
  2924.            ^position-1-counter-to-update garbage
  2925.            ^position-2-counter-to-update nb-of-compulsory-answer-creations
  2926.            ^position-3-counter-to-update garbage
  2927.            ^position-4-counter-to-update garbage
  2928.            ^position-5-counter-to-update nb-of-fragile-winners
  2929.            ^position-6-counter-to-update nb-of-compulsory-answer-creations)
  2930.     (make segment-type
  2931.            ^name ocxxfx
  2932.            ^length 6
  2933.            ^geometry assymetric
  2934.            ^owner human
  2935.            ^position-1-state computer
  2936.            ^position-2-state vacant
  2937.            ^position-3-state human
  2938.            ^position-4-state human
  2939.            ^position-5-state vacant
  2940.            ^position-6-state human
  2941.            ^position-1-counter-to-update garbage
  2942.            ^position-2-counter-to-update nb-of-compulsory-answer-creations
  2943.            ^position-3-counter-to-update garbage
  2944.            ^position-4-counter-to-update garbage
  2945.            ^position-5-counter-to-update nb-of-fragile-winners
  2946.            ^position-6-counter-to-update garbage)
  2947.     (make segment-type
  2948.            ^name icxxfx
  2949.            ^length 6
  2950.            ^geometry assymetric
  2951.            ^owner human
  2952.            ^position-1-state edge
  2953.            ^position-2-state vacant
  2954.            ^position-3-state human
  2955.            ^position-4-state human
  2956.            ^position-5-state vacant
  2957.            ^position-6-state human
  2958.            ^position-1-counter-to-update garbage
  2959.            ^position-2-counter-to-update nb-of-compulsory-answer-creations
  2960.            ^position-3-counter-to-update garbage
  2961.            ^position-4-counter-to-update garbage
  2962.            ^position-5-counter-to-update nb-of-fragile-winners
  2963.            ^position-6-counter-to-update garbage)
  2964.     (make segment-type
  2965.            ^name cfxxfc
  2966.            ^length 6
  2967.            ^geometry symetric
  2968.            ^owner human
  2969.            ^position-1-state vacant
  2970.            ^position-2-state vacant
  2971.            ^position-3-state human
  2972.            ^position-4-state human
  2973.            ^position-5-state vacant
  2974.            ^position-6-state vacant
  2975.            ^position-1-counter-to-update nb-of-compulsory-answer-creations
  2976.            ^position-2-counter-to-update nb-of-fragile-winners
  2977.            ^position-3-counter-to-update garbage
  2978.            ^position-4-counter-to-update garbage
  2979.            ^position-5-counter-to-update nb-of-fragile-winners
  2980.            ^position-6-counter-to-update nb-of-compulsory-answer-creations)
  2981.     (make segment-type
  2982.            ^name xfxxfc
  2983.            ^length 6
  2984.            ^geometry assymetric
  2985.            ^owner human
  2986.            ^position-1-state human
  2987.            ^position-2-state vacant
  2988.            ^position-3-state human
  2989.            ^position-4-state human
  2990.            ^position-5-state vacant
  2991.            ^position-6-state vacant
  2992.            ^position-1-counter-to-update garbage
  2993.            ^position-2-counter-to-update nb-of-fragile-winners
  2994.            ^position-3-counter-to-update garbage
  2995.            ^position-4-counter-to-update garbage
  2996.            ^position-5-counter-to-update nb-of-fragile-winners
  2997.            ^position-6-counter-to-update nb-of-compulsory-answer-creations)
  2998.     (make segment-type
  2999.            ^name xwxxwx
  3000.            ^length 6
  3001.            ^geometry symetric
  3002.            ^owner human
  3003.            ^position-1-state human
  3004.            ^position-2-state vacant
  3005.            ^position-3-state human
  3006.            ^position-4-state human
  3007.            ^position-5-state vacant
  3008.            ^position-6-state human
  3009.            ^position-1-counter-to-update garbage
  3010.            ^position-2-counter-to-update nb-of-strong-winners
  3011.            ^position-3-counter-to-update garbage
  3012.            ^position-4-counter-to-update garbage
  3013.            ^position-5-counter-to-update nb-of-strong-winners
  3014.            ^position-6-counter-to-update garbage)
  3015.     (make segment-type
  3016.            ^name oxxxf
  3017.            ^length 5
  3018.            ^geometry assymetric
  3019.            ^owner human
  3020.            ^position-1-state computer
  3021.            ^position-2-state human
  3022.            ^position-3-state human
  3023.            ^position-4-state human
  3024.            ^position-5-state vacant
  3025.            ^position-1-counter-to-update garbage
  3026.            ^position-2-counter-to-update garbage
  3027.            ^position-3-counter-to-update garbage
  3028.            ^position-4-counter-to-update garbage
  3029.            ^position-5-counter-to-update nb-of-fragile-winners)
  3030.     (make segment-type
  3031.            ^name ixxxf
  3032.            ^length 5
  3033.            ^geometry assymetric
  3034.            ^owner human
  3035.            ^position-1-state edge
  3036.            ^position-2-state human
  3037.            ^position-3-state human
  3038.            ^position-4-state human
  3039.            ^position-5-state vacant
  3040.            ^position-1-counter-to-update garbage
  3041.            ^position-2-counter-to-update garbage
  3042.            ^position-3-counter-to-update garbage
  3043.            ^position-4-counter-to-update garbage
  3044.            ^position-5-counter-to-update nb-of-fragile-winners)
  3045.     (make segment-type
  3046.            ^name wxxxw
  3047.            ^length 5
  3048.            ^geometry symetric
  3049.            ^owner human
  3050.            ^position-1-state vacant
  3051.            ^position-2-state human
  3052.            ^position-3-state human
  3053.            ^position-4-state human
  3054.            ^position-5-state vacant
  3055.            ^position-1-counter-to-update nb-of-strong-winners
  3056.            ^position-2-counter-to-update garbage
  3057.            ^position-3-counter-to-update garbage
  3058.            ^position-4-counter-to-update garbage
  3059.            ^position-5-counter-to-update nb-of-strong-winners)
  3060.     (make move-type-classification
  3061.            ^type fragile-winner
  3062.            ^is-better-than-type multiple-fragile-winners-creation)
  3063.     (make move-type-classification
  3064.            ^type fragile-winner
  3065.            ^is-better-than-type agressivity)
  3066.     (make move-type-classification
  3067.            ^type multiple-fragile-winners-creation
  3068.            ^is-better-than-type agressivity)
  3069.     (make move-type
  3070.            ^name agressivity
  3071.            ^point-of-views&counters-to-add
  3072.              human nb-of-compulsory-answer-creations
  3073.              computer nb-of-strong-winners
  3074.            ^comment nil)
  3075.     (make move-type
  3076.            ^name multiple-fragile-winners-creation
  3077.            ^point-of-views&counters-to-add
  3078.              computer nb-of-compulsory-answer-creations
  3079.              human nb-of-strong-winners
  3080.            ^comment need-to-be-validated-separetely)
  3081.     (make move-type
  3082.            ^name fragile-winner
  3083.            ^point-of-views&counters-to-add
  3084.              computer nb-of-fragile-winners human nb-of-fragile-winners
  3085.            ^comment nil)
  3086. )
  3087.  
  3088.  
  3089.  
  3090.