1:-module(wumpus_world_small).    2
    3:-lib(fd).    4
    5:-export neighbours/2.
    6:-export connected/2.
    7:-export adjacent/2.
    8:-export initial_state/1.
    9:-export real_world/1.
   10:-export action/3.
   11:-export aux/1.
   12:-export sensors/1.
   13:-export sensor_axiom/2.
   14
   15%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   16%%                                                           %%
   17%%  Declare Auxiliary Predicates                             %%
   18%%                                                           %%
   19%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   20
   21aux([neighbours,connected]).
   22
   23
   24%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   25%%                                                           %%
   26%%  Declare Sensor Fluents                                   %%
   27%%                                                           %%
   28%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   29
   30sensors([breeze,glitter,stench]).
   31
   32%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   33%%                                                           %%
   34%%  Declare Size of Wumpus World                             %%
   35%%                                                           %%
   36%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   39dimension(8).
   44real_world(W) :-
   45        dimension(Dim),
   46        real_world(Dim,W).
   47
   48initial_state(State) :-
   49        dimension(Dim),
   50        initial_state(Dim,State).
   51
   52%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   53%%                                                           %%
   54%%  Actions                                                  %%
   55%%                                                           %%
   56%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   60action(grab,
   61       [at(gold,Cell),at(agent,Cell)],
   62       [carries(agent,gold),neg(at(gold,Cell))]).
   66action(go(Cell1,Cell2),
   67       [at(agent,Cell1),
   68        connected(Cell1,Cell2)],
   69       [neg(at(agent,Cell1)),
   70        at(agent,Cell2)]).
   74action(shoot,
   75       [carries(agent,arrow),
   76        at(wumpus,Cell1),
   77        at(agent,Cell2),
   78        connected(Cell2,Cell1)],
   79       [neg(carries(agent,arrow)),
   80        neg(alive(wumpus))]).
   81
   82
   83%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   84%%                                                           %%
   85%%  Sensor Axioms                                            %%
   86%%                                                           %%
   87%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   88
   89sensor_axiom(breeze(X),[ [X-true] -
   90                         [at(agent,Y),neighbours(Y,[Cell1,Cell2,Cell3,Cell4])] -
   91                         [[ pit(Cell1),pit(Cell2),pit(Cell3),pit(Cell4)]],
   92                       
   93                         [X-false] -
   94                         [at(agent,Y),neighbours(Y,[Cell1,Cell2,Cell3,Cell4])] -
   95                         [neg(pit(Cell1)),neg(pit(Cell2)),neg(pit(Cell3)),neg(pit(Cell4))]
   96                       ]).
   97
   98sensor_axiom(glitter(X),[ [X-true] -
   99                          [at(agent,Y)] -
  100                          [at(gold,Y)],
  101                          
  102                          [X-false] -
  103                          [at(agent,Y)]-
  104                          [neg(at(gold,Y))]
  105                        ]).
  106
  107sensor_axiom(stench(X),[ [X-true] -
  108                         [at(agent,Y),neighbours(Y,[Cell1,Cell2,Cell3,Cell4])]-
  109                         [[ at(wumpus,Cell1),at(wumpus,Cell2),at(wumpus,Cell3),at(wumpus,Cell4)]],
  110
  111                         [X-false] -
  112                         [at(agent,Y),neighbours(Y,[Cell1,Cell2,Cell3,Cell4])]-
  113                         [neg(at(wumpus,Cell1)),neg(at(wumpus,Cell2)),neg(at(wumpus,Cell3)),neg(at(wumpus,Cell4))]
  114                       ]).
  115
  116%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  117%%                                                           %%
  118%%  Auxiliary Axioms                                         %%
  119%%                                                           %%
  120%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  121
  122connected(X,Y) :-
  123        adjacent(X,Y).
  124
  125adjacent(cell(X,Y),cell(X1,Y1)) :-
  126        dimension(Dim),
  127        [X,Y,X1,Y1]::1..Dim,
  128        (X1#=X) #/\ (Y1#=Y+1)
  129        #\/ (X1#=X) #/\ (Y1#=Y-1)
  130        #\/ (X1#=X+1) #/\ (Y1#=Y)
  131        #\/ (X1#=X-1) #/\ (Y1#=Y),
  132        labeling([X,Y,X1,Y1]).
  133
  134neighbours(cell(X,Y),
  135           [cell(X,Y1),cell(X,Y2),cell(X1,Y),cell(X2,Y)]) :-
  136        Y1 is Y + 1,
  137        Y2 is Y - 1,
  138        X1 is X + 1,
  139        X2 is X - 1.
  140
  141%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  142%%                                                           %%
  143%%  The real world                                           %%
  144%%                                                           %%
  145%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  149real_world(4,[at(wumpus,cell(2,4)),
  150            pit(cell(4,2)),
  151            at(gold,cell(4,4))]).
  152
  153real_world(8,[at(wumpus,cell(6,6)),
  154            at(gold,cell(7,6)),
  155            pit(cell(7,3)),
  156            pit(cell(5,3)),
  157            pit(cell(4,3)),
  158            pit(cell(5,7)),
  159            pit(cell(3,4))]).
  160
  161real_world(16,[at(wumpus,cell(9,6)),
  162               at(gold,cell(11,13)),
  163               pit(cell(2,3)),
  164               pit(cell(2,10)),
  165               pit(cell(5,4)),
  166               pit(cell(3,5)),
  167               pit(cell(8,6)),
  168               pit(cell(9,8)),
  169               pit(cell(13,8)),
  170               pit(cell(5,10)),
  171               pit(cell(11,11)),
  172               pit(cell(7,13))]).
  173
  174real_world(32,[at(wumpus,cell(8,13)),
  175               at(gold,cell(26,30)),
  176               pit(cell(4,1)),
  177               pit(cell(10,3)),
  178               pit(cell(18,3)),
  179               pit(cell(24,4)),
  180               pit(cell(6,5)),
  181               pit(cell(12,6)),
  182               pit(cell(28,6)),
  183               pit(cell(21,7)),
  184               pit(cell(21,8)),
  185               pit(cell(16,9)),
  186               pit(cell(5,10)),
  187               pit(cell(12,12)),
  188               pit(cell(21,12)),
  189               pit(cell(26,12)),
  190               pit(cell(4,13)),
  191               pit(cell(6,13)),
  192               pit(cell(10,13)),
  193               pit(cell(13,14)),
  194               pit(cell(6,15)),
  195               pit(cell(10,15)),
  196               pit(cell(29,15)),
  197               pit(cell(19,16)),
  198               pit(cell(23,16)),
  199               pit(cell(8,19)),
  200               pit(cell(15,19)),
  201               pit(cell(21,20)),
  202               pit(cell(25,20)),
  203               pit(cell(12,21)),
  204               pit(cell(6,22)),
  205               pit(cell(15,24)),
  206               pit(cell(21,24)),
  207               pit(cell(8,25)),
  208               pit(cell(28,25)),
  209               pit(cell(30,25)),
  210               pit(cell(25,26)),
  211               pit(cell(5,27)),
  212               pit(cell(12,28)),
  213               pit(cell(23,28)),
  214               pit(cell(8,30)),
  215               pit(cell(17,30))
  216              ]).
  217
  218%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  219%%                                                           %%
  220%%  Initial State as Fact                                    %%
  221%%                                                           %%
  222%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  223
  224initial_state(4,State) :-
  225
  226        State = [
  230                    neg(at(wumpus, cell(0, 1))),
  231                    neg(at(wumpus, cell(0, 2))),
  232                    neg(at(wumpus, cell(0, 3))),
  233                    neg(at(wumpus, cell(0, 4))),
  234                    neg(at(wumpus, cell(5, 1))),
  235                    neg(at(wumpus, cell(5, 2))),
  236                    neg(at(wumpus, cell(5, 3))),
  237                    neg(at(wumpus, cell(5, 4))),
  238                    neg(at(wumpus, cell(1, 0))),
  239                    neg(at(wumpus, cell(2, 0))),
  240                    neg(at(wumpus, cell(3, 0))),
  241                    neg(at(wumpus, cell(4, 0))),
  242                    neg(at(wumpus, cell(1, 5))),
  243                    neg(at(wumpus, cell(2, 5))),
  244                    neg(at(wumpus, cell(3, 5))),
  245                    neg(at(wumpus, cell(4, 5))),
  246                    neg(pit(cell(0, 1))),
  247                    neg(pit(cell(0, 2))),
  248                    neg(pit(cell(0, 3))),
  249                    neg(pit(cell(0, 4))),
  250                    neg(pit(cell(5, 1))),
  251                    neg(pit(cell(5, 2))),
  252                    neg(pit(cell(5, 3))),
  253                    neg(pit(cell(5, 4))),
  254                    neg(pit(cell(1, 0))),
  255                    neg(pit(cell(2, 0))),
  256                    neg(pit(cell(3, 0))),
  257                    neg(pit(cell(4, 0))),
  258                    neg(pit(cell(1, 5))),
  259                    neg(pit(cell(2, 5))),
  260                    neg(pit(cell(3, 5))),
  261                    neg(pit(cell(4, 5))),
  265                    carries(agent, arrow),
  269                    at(agent, cell(1, 1)),
  273                    alive(wumpus) 
  274                ]
  274.
  275
  276
  277initial_state(8,State) :-
  278        State = [
  279                    neg(at(wumpus, cell(0, 1))),
  280                    neg(at(wumpus, cell(0, 2))),
  281                    neg(at(wumpus, cell(0, 3))),
  282                    neg(at(wumpus, cell(0, 4))),
  283                    neg(at(wumpus, cell(0, 5))),
  284                    neg(at(wumpus, cell(0, 6))),
  285                    neg(at(wumpus, cell(0, 7))),
  286                    neg(at(wumpus, cell(0, 8))),
  287                    neg(at(wumpus, cell(9, 1))),
  288                    neg(at(wumpus, cell(9, 2))),
  289                    neg(at(wumpus, cell(9, 3))),
  290                    neg(at(wumpus, cell(9, 4))),
  291                    neg(at(wumpus, cell(9, 5))),
  292                    neg(at(wumpus, cell(9, 6))),
  293                    neg(at(wumpus, cell(9, 7))),
  294                    neg(at(wumpus, cell(9, 8))),
  295                    neg(at(wumpus, cell(1, 0))),
  296                    neg(at(wumpus, cell(2, 0))),
  297                    neg(at(wumpus, cell(3, 0))),
  298                    neg(at(wumpus, cell(4, 0))),
  299                    neg(at(wumpus, cell(5, 0))),
  300                    neg(at(wumpus, cell(6, 0))),
  301                    neg(at(wumpus, cell(7, 0))),
  302                    neg(at(wumpus, cell(8, 0))),
  303                    neg(at(wumpus, cell(1, 9))),
  304                    neg(at(wumpus, cell(2, 9))),
  305                    neg(at(wumpus, cell(3, 9))),
  306                    neg(at(wumpus, cell(4, 9))),
  307                    neg(at(wumpus, cell(5, 9))),
  308                    neg(at(wumpus, cell(6, 9))),
  309                    neg(at(wumpus, cell(7, 9))),
  310                    neg(at(wumpus, cell(8, 9))),
  311                    neg(pit(cell(0, 1))),
  312                    neg(pit(cell(0, 2))),
  313                    neg(pit(cell(0, 3))),
  314                    neg(pit(cell(0, 4))),
  315                    neg(pit(cell(0, 5))),
  316                    neg(pit(cell(0, 6))),
  317                    neg(pit(cell(0, 7))),
  318                    neg(pit(cell(0, 8))),
  319                    neg(pit(cell(9, 1))),
  320                    neg(pit(cell(9, 2))),
  321                    neg(pit(cell(9, 3))),
  322                    neg(pit(cell(9, 4))),
  323                    neg(pit(cell(9, 5))),
  324                    neg(pit(cell(9, 6))),
  325                    neg(pit(cell(9, 7))),
  326                    neg(pit(cell(9, 8))),
  327                    neg(pit(cell(1, 0))),
  328                    neg(pit(cell(2, 0))),
  329                    neg(pit(cell(3, 0))),
  330                    neg(pit(cell(4, 0))),
  331                    neg(pit(cell(5, 0))),
  332                    neg(pit(cell(6, 0))),
  333                    neg(pit(cell(7, 0))),
  334                    neg(pit(cell(8, 0))),
  335                    neg(pit(cell(1, 9))),
  336                    neg(pit(cell(2, 9))),
  337                    neg(pit(cell(3, 9))),
  338                    neg(pit(cell(4, 9))),
  339                    neg(pit(cell(5, 9))),
  340                    neg(pit(cell(6, 9))),
  341                    neg(pit(cell(7, 9))),
  342                    neg(pit(cell(8, 9))),
  343                    carries(agent, arrow),
  344                    at(agent, cell(1, 1)),
  345                    alive(wumpus)
  346                ].
  347
  348
  349
  350
  351
  352
  353initial_state(16,State) :-
  354        State = [
  355                    neg(at(wumpus, cell(0, 1))),
  356                    neg(at(wumpus, cell(0, 2))),
  357                    neg(at(wumpus, cell(0, 3))),
  358                    neg(at(wumpus, cell(0, 4))),
  359                    neg(at(wumpus, cell(0, 5))),
  360                    neg(at(wumpus, cell(0, 6))),
  361                    neg(at(wumpus, cell(0, 7))),
  362                    neg(at(wumpus, cell(0, 8))),
  363                    neg(at(wumpus, cell(0, 9))),
  364                    neg(at(wumpus, cell(0, 10))),
  365                    neg(at(wumpus, cell(0, 11))),
  366                    neg(at(wumpus, cell(0, 12))),
  367                    neg(at(wumpus, cell(0, 13))),
  368                    neg(at(wumpus, cell(0, 14))),
  369                    neg(at(wumpus, cell(0, 15))),
  370                    neg(at(wumpus, cell(0, 16))),
  371                    neg(at(wumpus, cell(17, 1))),
  372                    neg(at(wumpus, cell(17, 2))),
  373                    neg(at(wumpus, cell(17, 3))),
  374                    neg(at(wumpus, cell(17, 4))),
  375                    neg(at(wumpus, cell(17, 5))),
  376                    neg(at(wumpus, cell(17, 6))),
  377                    neg(at(wumpus, cell(17, 7))),
  378                    neg(at(wumpus, cell(17, 8))),
  379                    neg(at(wumpus, cell(17, 9))),
  380                    neg(at(wumpus, cell(17, 10))),
  381                    neg(at(wumpus, cell(17, 11))),
  382                    neg(at(wumpus, cell(17, 12))),
  383                    neg(at(wumpus, cell(17, 13))),
  384                    neg(at(wumpus, cell(17, 14))),
  385                    neg(at(wumpus, cell(17, 15))),
  386                    neg(at(wumpus, cell(17, 16))),
  387                    neg(at(wumpus, cell(1, 0))),
  388                    neg(at(wumpus, cell(2, 0))),
  389                    neg(at(wumpus, cell(3, 0))),
  390                    neg(at(wumpus, cell(4, 0))),
  391                    neg(at(wumpus, cell(5, 0))),
  392                    neg(at(wumpus, cell(6, 0))),
  393                    neg(at(wumpus, cell(7, 0))),
  394                    neg(at(wumpus, cell(8, 0))),
  395                    neg(at(wumpus, cell(9, 0))),
  396                    neg(at(wumpus, cell(10, 0))),
  397                    neg(at(wumpus, cell(11, 0))),
  398                    neg(at(wumpus, cell(12, 0))),
  399                    neg(at(wumpus, cell(13, 0))),
  400                    neg(at(wumpus, cell(14, 0))),
  401                    neg(at(wumpus, cell(15, 0))),
  402                    neg(at(wumpus, cell(16, 0))),
  403                    neg(at(wumpus, cell(1, 17))),
  404                    neg(at(wumpus, cell(2, 17))),
  405                    neg(at(wumpus, cell(3, 17))),
  406                    neg(at(wumpus, cell(4, 17))),
  407                    neg(at(wumpus, cell(5, 17))),
  408                    neg(at(wumpus, cell(6, 17))),
  409                    neg(at(wumpus, cell(7, 17))),
  410                    neg(at(wumpus, cell(8, 17))),
  411                    neg(at(wumpus, cell(9, 17))),
  412                    neg(at(wumpus, cell(10, 17))),
  413                    neg(at(wumpus, cell(11, 17))),
  414                    neg(at(wumpus, cell(12, 17))),
  415                    neg(at(wumpus, cell(13, 17))),
  416                    neg(at(wumpus, cell(14, 17))),
  417                    neg(at(wumpus, cell(15, 17))),
  418                    neg(at(wumpus, cell(16, 17))),
  419                    neg(pit(cell(0, 1))),
  420                    neg(pit(cell(0, 2))),
  421                    neg(pit(cell(0, 3))),
  422                    neg(pit(cell(0, 4))),
  423                    neg(pit(cell(0, 5))),
  424                    neg(pit(cell(0, 6))),
  425                    neg(pit(cell(0, 7))),
  426                    neg(pit(cell(0, 8))),
  427                    neg(pit(cell(0, 9))),
  428                    neg(pit(cell(0, 10))),
  429                    neg(pit(cell(0, 11))),
  430                    neg(pit(cell(0, 12))),
  431                    neg(pit(cell(0, 13))),
  432                    neg(pit(cell(0, 14))),
  433                    neg(pit(cell(0, 15))),
  434                    neg(pit(cell(0, 16))),
  435                    neg(pit(cell(17, 1))),
  436                    neg(pit(cell(17, 2))),
  437                    neg(pit(cell(17, 3))),
  438                    neg(pit(cell(17, 4))),
  439                    neg(pit(cell(17, 5))),
  440                    neg(pit(cell(17, 6))),
  441                    neg(pit(cell(17, 7))),
  442                    neg(pit(cell(17, 8))),
  443                    neg(pit(cell(17, 9))),
  444                    neg(pit(cell(17, 10))),
  445                    neg(pit(cell(17, 11))),
  446                    neg(pit(cell(17, 12))),
  447                    neg(pit(cell(17, 13))),
  448                    neg(pit(cell(17, 14))),
  449                    neg(pit(cell(17, 15))),
  450                    neg(pit(cell(17, 16))),
  451                    neg(pit(cell(1, 0))),
  452                    neg(pit(cell(2, 0))),
  453                    neg(pit(cell(3, 0))),
  454                    neg(pit(cell(4, 0))),
  455                    neg(pit(cell(5, 0))),
  456                    neg(pit(cell(6, 0))),
  457                    neg(pit(cell(7, 0))),
  458                    neg(pit(cell(8, 0))),
  459                    neg(pit(cell(9, 0))),
  460                    neg(pit(cell(10, 0))),
  461                    neg(pit(cell(11, 0))),
  462                    neg(pit(cell(12, 0))),
  463                    neg(pit(cell(13, 0))),
  464                    neg(pit(cell(14, 0))),
  465                    neg(pit(cell(15, 0))),
  466                    neg(pit(cell(16, 0))),
  467                    neg(pit(cell(1, 17))),
  468                    neg(pit(cell(2, 17))),
  469                    neg(pit(cell(3, 17))),
  470                    neg(pit(cell(4, 17))),
  471                    neg(pit(cell(5, 17))),
  472                    neg(pit(cell(6, 17))),
  473                    neg(pit(cell(7, 17))),
  474                    neg(pit(cell(8, 17))),
  475                    neg(pit(cell(9, 17))),
  476                    neg(pit(cell(10, 17))),
  477                    neg(pit(cell(11, 17))),
  478                    neg(pit(cell(12, 17))),
  479                    neg(pit(cell(13, 17))),
  480                    neg(pit(cell(14, 17))),
  481                    neg(pit(cell(15, 17))),
  482                    neg(pit(cell(16, 17))),
  483                    carries(agent, arrow),
  484                    at(agent, cell(1, 1)),
  485                    alive(wumpus) 
  486                ].
  487
  488
  489
  490
  491
  492
  493initial_state(32,State) :- 
  494        State = [
  495                    neg(at(wumpus, cell(0, 1))),
  496                    neg(at(wumpus, cell(0, 2))),
  497                    neg(at(wumpus, cell(0, 3))),
  498                    neg(at(wumpus, cell(0, 4))),
  499                    neg(at(wumpus, cell(0, 5))),
  500                    neg(at(wumpus, cell(0, 6))),
  501                    neg(at(wumpus, cell(0, 7))),
  502                    neg(at(wumpus, cell(0, 8))),
  503                    neg(at(wumpus, cell(0, 9))),
  504                    neg(at(wumpus, cell(0, 10))),
  505                    neg(at(wumpus, cell(0, 11))),
  506                    neg(at(wumpus, cell(0, 12))),
  507                    neg(at(wumpus, cell(0, 13))),
  508                    neg(at(wumpus, cell(0, 14))),
  509                    neg(at(wumpus, cell(0, 15))),
  510                    neg(at(wumpus, cell(0, 16))),
  511                    neg(at(wumpus, cell(0, 17))),
  512                    neg(at(wumpus, cell(0, 18))),
  513                    neg(at(wumpus, cell(0, 19))),
  514                    neg(at(wumpus, cell(0, 20))),
  515                    neg(at(wumpus, cell(0, 21))),
  516                    neg(at(wumpus, cell(0, 22))),
  517                    neg(at(wumpus, cell(0, 23))),
  518                    neg(at(wumpus, cell(0, 24))),
  519                    neg(at(wumpus, cell(0, 25))),
  520                    neg(at(wumpus, cell(0, 26))),
  521                    neg(at(wumpus, cell(0, 27))),
  522                    neg(at(wumpus, cell(0, 28))),
  523                    neg(at(wumpus, cell(0, 29))),
  524                    neg(at(wumpus, cell(0, 30))),
  525                    neg(at(wumpus, cell(0, 31))),
  526                    neg(at(wumpus, cell(0, 32))),
  527                    neg(at(wumpus, cell(33, 1))),
  528                    neg(at(wumpus, cell(33, 2))),
  529                    neg(at(wumpus, cell(33, 3))),
  530                    neg(at(wumpus, cell(33, 4))),
  531                    neg(at(wumpus, cell(33, 5))),
  532                    neg(at(wumpus, cell(33, 6))),
  533                    neg(at(wumpus, cell(33, 7))),
  534                    neg(at(wumpus, cell(33, 8))),
  535                    neg(at(wumpus, cell(33, 9))),
  536                    neg(at(wumpus, cell(33, 10))),
  537                    neg(at(wumpus, cell(33, 11))),
  538                    neg(at(wumpus, cell(33, 12))),
  539                    neg(at(wumpus, cell(33, 13))),
  540                    neg(at(wumpus, cell(33, 14))),
  541                    neg(at(wumpus, cell(33, 15))),
  542                    neg(at(wumpus, cell(33, 16))),
  543                    neg(at(wumpus, cell(33, 17))),
  544                    neg(at(wumpus, cell(33, 18))),
  545                    neg(at(wumpus, cell(33, 19))),
  546                    neg(at(wumpus, cell(33, 20))),
  547                    neg(at(wumpus, cell(33, 21))),
  548                    neg(at(wumpus, cell(33, 22))),
  549                    neg(at(wumpus, cell(33, 23))),
  550                    neg(at(wumpus, cell(33, 24))),
  551                    neg(at(wumpus, cell(33, 25))),
  552                    neg(at(wumpus, cell(33, 26))),
  553                    neg(at(wumpus, cell(33, 27))),
  554                    neg(at(wumpus, cell(33, 28))),
  555                    neg(at(wumpus, cell(33, 29))),
  556                    neg(at(wumpus, cell(33, 30))),
  557                    neg(at(wumpus, cell(33, 31))),
  558                    neg(at(wumpus, cell(33, 32))),
  559                    neg(at(wumpus, cell(1, 0))),
  560                    neg(at(wumpus, cell(2, 0))),
  561                    neg(at(wumpus, cell(3, 0))),
  562                    neg(at(wumpus, cell(4, 0))),
  563                    neg(at(wumpus, cell(5, 0))),
  564                    neg(at(wumpus, cell(6, 0))),
  565                    neg(at(wumpus, cell(7, 0))),
  566                    neg(at(wumpus, cell(8, 0))),
  567                    neg(at(wumpus, cell(9, 0))),
  568                    neg(at(wumpus, cell(10, 0))),
  569                    neg(at(wumpus, cell(11, 0))),
  570                    neg(at(wumpus, cell(12, 0))),
  571                    neg(at(wumpus, cell(13, 0))),
  572                    neg(at(wumpus, cell(14, 0))),
  573                    neg(at(wumpus, cell(15, 0))),
  574                    neg(at(wumpus, cell(16, 0))),
  575                    neg(at(wumpus, cell(17, 0))),
  576                    neg(at(wumpus, cell(18, 0))),
  577                    neg(at(wumpus, cell(19, 0))),
  578                    neg(at(wumpus, cell(20, 0))),
  579                    neg(at(wumpus, cell(21, 0))),
  580                    neg(at(wumpus, cell(22, 0))),
  581                    neg(at(wumpus, cell(23, 0))),
  582                    neg(at(wumpus, cell(24, 0))),
  583                    neg(at(wumpus, cell(25, 0))),
  584                    neg(at(wumpus, cell(26, 0))),
  585                    neg(at(wumpus, cell(27, 0))),
  586                    neg(at(wumpus, cell(28, 0))),
  587                    neg(at(wumpus, cell(29, 0))),
  588                    neg(at(wumpus, cell(30, 0))),
  589                    neg(at(wumpus, cell(31, 0))),
  590                    neg(at(wumpus, cell(32, 0))),
  591                    neg(at(wumpus, cell(1, 33))),
  592                    neg(at(wumpus, cell(2, 33))),
  593                    neg(at(wumpus, cell(3, 33))),
  594                    neg(at(wumpus, cell(4, 33))),
  595                    neg(at(wumpus, cell(5, 33))),
  596                    neg(at(wumpus, cell(6, 33))),
  597                    neg(at(wumpus, cell(7, 33))),
  598                    neg(at(wumpus, cell(8, 33))),
  599                    neg(at(wumpus, cell(9, 33))),
  600                    neg(at(wumpus, cell(10, 33))),
  601                    neg(at(wumpus, cell(11, 33))),
  602                    neg(at(wumpus, cell(12, 33))),
  603                    neg(at(wumpus, cell(13, 33))),
  604                    neg(at(wumpus, cell(14, 33))),
  605                    neg(at(wumpus, cell(15, 33))),
  606                    neg(at(wumpus, cell(16, 33))),
  607                    neg(at(wumpus, cell(17, 33))),
  608                    neg(at(wumpus, cell(18, 33))),
  609                    neg(at(wumpus, cell(19, 33))),
  610                    neg(at(wumpus, cell(20, 33))),
  611                    neg(at(wumpus, cell(21, 33))),
  612                    neg(at(wumpus, cell(22, 33))),
  613                    neg(at(wumpus, cell(23, 33))),
  614                    neg(at(wumpus, cell(24, 33))),
  615                    neg(at(wumpus, cell(25, 33))),
  616                    neg(at(wumpus, cell(26, 33))),
  617                    neg(at(wumpus, cell(27, 33))),
  618                    neg(at(wumpus, cell(28, 33))),
  619                    neg(at(wumpus, cell(29, 33))),
  620                    neg(at(wumpus, cell(30, 33))),
  621                    neg(at(wumpus, cell(31, 33))),
  622                    neg(at(wumpus, cell(32, 33))),
  623                    neg(pit(cell(0, 1))),
  624                    neg(pit(cell(0, 2))),
  625                    neg(pit(cell(0, 3))),
  626                    neg(pit(cell(0, 4))),
  627                    neg(pit(cell(0, 5))),
  628                    neg(pit(cell(0, 6))),
  629                    neg(pit(cell(0, 7))),
  630                    neg(pit(cell(0, 8))),
  631                    neg(pit(cell(0, 9))),
  632                    neg(pit(cell(0, 10))),
  633                    neg(pit(cell(0, 11))),
  634                    neg(pit(cell(0, 12))),
  635                    neg(pit(cell(0, 13))),
  636                    neg(pit(cell(0, 14))),
  637                    neg(pit(cell(0, 15))),
  638                    neg(pit(cell(0, 16))),
  639                    neg(pit(cell(0, 17))),
  640                    neg(pit(cell(0, 18))),
  641                    neg(pit(cell(0, 19))),
  642                    neg(pit(cell(0, 20))),
  643                    neg(pit(cell(0, 21))),
  644                    neg(pit(cell(0, 22))),
  645                    neg(pit(cell(0, 23))),
  646                    neg(pit(cell(0, 24))),
  647                    neg(pit(cell(0, 25))),
  648                    neg(pit(cell(0, 26))),
  649                    neg(pit(cell(0, 27))),
  650                    neg(pit(cell(0, 28))),
  651                    neg(pit(cell(0, 29))),
  652                    neg(pit(cell(0, 30))),
  653                    neg(pit(cell(0, 31))),
  654                    neg(pit(cell(0, 32))),
  655                    neg(pit(cell(33, 1))),
  656                    neg(pit(cell(33, 2))),
  657                    neg(pit(cell(33, 3))),
  658                    neg(pit(cell(33, 4))),
  659                    neg(pit(cell(33, 5))),
  660                    neg(pit(cell(33, 6))),
  661                    neg(pit(cell(33, 7))),
  662                    neg(pit(cell(33, 8))),
  663                    neg(pit(cell(33, 9))),
  664                    neg(pit(cell(33, 10))),
  665                    neg(pit(cell(33, 11))),
  666                    neg(pit(cell(33, 12))),
  667                    neg(pit(cell(33, 13))),
  668                    neg(pit(cell(33, 14))),
  669                    neg(pit(cell(33, 15))),
  670                    neg(pit(cell(33, 16))),
  671                    neg(pit(cell(33, 17))),
  672                    neg(pit(cell(33, 18))),
  673                    neg(pit(cell(33, 19))),
  674                    neg(pit(cell(33, 20))),
  675                    neg(pit(cell(33, 21))),
  676                    neg(pit(cell(33, 22))),
  677                    neg(pit(cell(33, 23))),
  678                    neg(pit(cell(33, 24))),
  679                    neg(pit(cell(33, 25))),
  680                    neg(pit(cell(33, 26))),
  681                    neg(pit(cell(33, 27))),
  682                    neg(pit(cell(33, 28))),
  683                    neg(pit(cell(33, 29))),
  684                    neg(pit(cell(33, 30))),
  685                    neg(pit(cell(33, 31))),
  686                    neg(pit(cell(33, 32))),
  687                    neg(pit(cell(1, 0))),
  688                    neg(pit(cell(2, 0))),
  689                    neg(pit(cell(3, 0))),
  690                    neg(pit(cell(4, 0))),
  691                    neg(pit(cell(5, 0))),
  692                    neg(pit(cell(6, 0))),
  693                    neg(pit(cell(7, 0))),
  694                    neg(pit(cell(8, 0))),
  695                    neg(pit(cell(9, 0))),
  696                    neg(pit(cell(10, 0))),
  697                    neg(pit(cell(11, 0))),
  698                    neg(pit(cell(12, 0))),
  699                    neg(pit(cell(13, 0))),
  700                    neg(pit(cell(14, 0))),
  701                    neg(pit(cell(15, 0))),
  702                    neg(pit(cell(16, 0))),
  703                    neg(pit(cell(17, 0))),
  704                    neg(pit(cell(18, 0))),
  705                    neg(pit(cell(19, 0))),
  706                    neg(pit(cell(20, 0))),
  707                    neg(pit(cell(21, 0))),
  708                    neg(pit(cell(22, 0))),
  709                    neg(pit(cell(23, 0))),
  710                    neg(pit(cell(24, 0))),
  711                    neg(pit(cell(25, 0))),
  712                    neg(pit(cell(26, 0))),
  713                    neg(pit(cell(27, 0))),
  714                    neg(pit(cell(28, 0))),
  715                    neg(pit(cell(29, 0))),
  716                    neg(pit(cell(30, 0))),
  717                    neg(pit(cell(31, 0))),
  718                    neg(pit(cell(32, 0))),
  719                    neg(pit(cell(1, 33))),
  720                    neg(pit(cell(2, 33))),
  721                    neg(pit(cell(3, 33))),
  722                    neg(pit(cell(4, 33))),
  723                    neg(pit(cell(5, 33))),
  724                    neg(pit(cell(6, 33))),
  725                    neg(pit(cell(7, 33))),
  726                    neg(pit(cell(8, 33))),
  727                    neg(pit(cell(9, 33))),
  728                    neg(pit(cell(10, 33))),
  729                    neg(pit(cell(11, 33))),
  730                    neg(pit(cell(12, 33))),
  731                    neg(pit(cell(13, 33))),
  732                    neg(pit(cell(14, 33))),
  733                    neg(pit(cell(15, 33))),
  734                    neg(pit(cell(16, 33))),
  735                    neg(pit(cell(17, 33))),
  736                    neg(pit(cell(18, 33))),
  737                    neg(pit(cell(19, 33))),
  738                    neg(pit(cell(20, 33))),
  739                    neg(pit(cell(21, 33))),
  740                    neg(pit(cell(22, 33))),
  741                    neg(pit(cell(23, 33))),
  742                    neg(pit(cell(24, 33))),
  743                    neg(pit(cell(25, 33))),
  744                    neg(pit(cell(26, 33))),
  745                    neg(pit(cell(27, 33))),
  746                    neg(pit(cell(28, 33))),
  747                    neg(pit(cell(29, 33))),
  748                    neg(pit(cell(30, 33))),
  749                    neg(pit(cell(31, 33))),
  750                    neg(pit(cell(32, 33))),
  751                    carries(agent, arrow),
  752                    at(agent, cell(1, 1)),
  753                    alive(wumpus)
  754                ]