Guest User

schach.lua

a guest
Apr 2nd, 2013
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 25.73 KB | None | 0 0
  1. shell.run("clear")
  2. local FiguresArt = {"B","B","B","B","B","B","B","B","T","S","L","K","k","L","S","T"}
  3. local posB,posW,Figures = {},{},{}
  4. local currentTurn = "LightBlue / White"
  5. local selectedX = 0
  6. local selectedY = 0
  7. local c, d = 0, 0
  8. args = { ... }
  9. local firstMove = true
  10.  
  11. function insertFigures()
  12.   posB = {{2,1,"B",16},{2,2,"B",16},{2,3,"B",16},{2,4,"B",16},{2,5,"B",16},{2,6,"B",16},{2,7,"B",16},{2,8,"B",16},
  13.           {1,1,"T",16},{1,2,"S",16},{1,3,"L",16},{1,4,"K",16},{1,5,"k",16},{1,6,"L",16},{1,7,"S",16},{1,8,"T",16}}
  14.   posW = {{7,1,"B",1},{7,2,"B",1},{7,3,"B",1},{7,4,"B",1},{7,5,"B",1},{7,6,"B",1},{7,7,"B",1},{7,8,"B",1},
  15.           {8,1,"T",1},{8,2,"S",1},{8,3,"L",1},{8,4,"K",1},{8,5,"k",1},{8,6,"L",1},{8,7,"S",1},{8,8,"T",1}}
  16. end
  17.  
  18. function loadFiguresT()
  19.   for xx = 1, 100 do
  20.     Figures[xx]={}
  21.     for xxx = 1, 100 do
  22.       Figures[xx][xxx] = {}
  23.       Figures[xx][xxx][1] = " "
  24.       Figures[xx][xxx][2] = 0
  25.     end
  26.   end
  27.   for i = 1, 16 do
  28.     Figures[posB[i][1]][posB[i][2]][1] = posB[i][3]
  29.     Figures[posB[i][1]][posB[i][2]][2] = posB[i][4]
  30.   end
  31.   for i = 1, 16 do
  32.     Figures[posW[i][1]][posW[i][2]][1] = posW[i][3]
  33.     Figures[posW[i][1]][posW[i][2]][2] = posW[i][4]
  34.   end
  35. end
  36.  
  37. function loadBoard()
  38.   loadFiguresT()
  39.   shell.run("clear")
  40.   color = 0
  41.   for x = 1, 8 do
  42.   for y = 1, 8 do
  43.     term.setCursorPos(x+10,y+1)
  44.     if selectedX == x and selectedY == y then
  45.     term.setCursorPos(1, 12)
  46.       term.setBackgroundColor(colors.yellow)
  47.       --print("yellow")
  48.     elseif selectedX2 == x and selectedY2 == y then
  49.     term.setCursorPos(1, 12)
  50.       term.setBackgroundColor(colors.pink)
  51.       --print("pink")
  52.     elseif color%2 == 1 then
  53.     term.setCursorPos(1, 12)
  54.       term.setBackgroundColor(colors.black)
  55.       --print("black")
  56.     else
  57.     term.setCursorPos(1, 12)
  58.       term.setBackgroundColor(1)
  59.       --print("white")
  60.     end
  61.     term.setCursorPos(x+10,y+1)
  62.     if Figures[y][x][2] == 16 then
  63.       term.setTextColor(colors.red)
  64.     else
  65.       term.setTextColor(colors.lightBlue)
  66.     end
  67.     write(Figures[y][x][1])
  68.     color=color+1
  69.     term.setCursorPos(1, 11)
  70.     --print("x: "..x.." y:"..y)
  71.     --sleep(0)
  72.     end
  73.     color=color+1
  74.   end
  75.   term.setBackgroundColor(colors.black)
  76.   term.setTextColor(colors.lime)
  77.   term.setCursorPos(1, 11)
  78.   term.write("Current Turn: "..currentTurn)
  79.   term.setCursorPos(1, 13)
  80. end
  81.  
  82. function checkValid()
  83.   if Figures[selectedY][selectedX] == "B" then
  84.     if Figures[selectedY][selectedX] == 1 then
  85.       if selectedY2 == selectedY+1 and selectedX2 == selectedX and Figures[selectedY+1][selectedX][2] == 0 then
  86.         return true
  87.       elseif selectedY2 == selectedY+2 and selectedX2 == selectedX and Figures[selectedY+2][selectedX][2] == 0 and firsMove == true then
  88.         return true
  89.       elseif selectedY2 == selectedY+1 and selectedX2 == selectedX+1 and Figures[selectedY+1][selectedX+1][2] == 16 then
  90.         return true
  91.       elseif selectedY2 == selectedY+1 and selectedX2 == selectedX-1 and Figures[selectedY+1][selectedX-1][2] == 16 then
  92.         return true
  93.       end
  94.     elseif Figures[selectedX][selectedY][2] == 16 then
  95.       if selectedY2 == selectedY-1 and selectedX2 == selectedX and Figures[selectedY-1][selectedX][2] == 0 then
  96.         return true
  97.       elseif selectedY2 == selectedY+2 and selectedX2 == selectedX and Figures[selectedY+2][selectedX][2] == 0 and firsMove == true then
  98.         return true
  99.       elseif selectedY2 == selectedY-1 and selectedX2 == selectedX+1 and Figures[selectedY-1][selectedX+1][2] == 1 then
  100.         return true
  101.       elseif selectedY2 == selectedY-1 and selectedX2 == selectedX-1 and Figures[selectedY-1][selectedX-1][2] == 1 then
  102.         return true
  103.       end
  104.     end
  105.   elseif Figures[selectedX][selectedY][1] == "S" then
  106.     if Figures[selectedX][selectedY][2] == 1 then
  107.         if selectedY2 == selectedY-2 and selectedX2 == selectedX+1 and Figures[selectedY-1][selectedX][2] == 0 then
  108.             return true
  109.         elseif selectedY2 == selectedY-2 and selectedX2 == selectedX-1 and Figures[selectedY-1][selectedX][2] == 0 then
  110.             return true
  111.         elseif selectedY2 == selectedY-1 and selectedX2 == selectedX+2 and Figures[selectedY-1][selectedX][2] == 0 then
  112.             return true
  113.         elseif selectedY2 == selectedY-1 and selectedX2 == selectedX-2 and Figures[selectedY-1][selectedX][2] == 0 then
  114.             return true
  115.         elseif selectedY2 == selectedY+1 and selectedX2 == selectedX+2 and Figures[selectedY-1][selectedX][2] == 0 then
  116.             return true
  117.         elseif selectedY2 == selectedY+1 and selectedX2 == selectedX-2 and Figures[selectedY-1][selectedX][2] == 0 then
  118.             return true
  119.         elseif selectedY2 == selectedY+2 and selectedX2 == selectedX+1 and Figures[selectedY-1][selectedX][2] == 0 then
  120.             return true
  121.         elseif selectedY2 == selectedY+2 and selectedX2 == selectedX-1 and Figures[selectedY-1][selectedX][2] == 0 then
  122.             return true
  123.         elseif selectedY2 == selectedY-2 and selectedX2 == selectedX+1 and Figures[selectedY-1][selectedX][2] == 16 then
  124.             return true
  125.         elseif selectedY2 == selectedY-2 and selectedX2 == selectedX-1 and Figures[selectedY-1][selectedX][2] == 16 then
  126.             return true
  127.         elseif selectedY2 == selectedY-1 and selectedX2 == selectedX+2 and Figures[selectedY-1][selectedX][2] == 16 then
  128.             return true
  129.         elseif selectedY2 == selectedY-1 and selectedX2 == selectedX-2 and Figures[selectedY-1][selectedX][2] == 16 then
  130.             return true
  131.         elseif selectedY2 == selectedY+1 and selectedX2 == selectedX+2 and Figures[selectedY-1][selectedX][2] == 16 then
  132.             return true
  133.         elseif selectedY2 == selectedY+1 and selectedX2 == selectedX-2 and Figures[selectedY-1][selectedX][2] == 16 then
  134.             return true
  135.         elseif selectedY2 == selectedY+2 and selectedX2 == selectedX+1 and Figures[selectedY-1][selectedX][2] == 16 then
  136.             return true
  137.         elseif selectedY2 == selectedY+2 and selectedX2 == selectedX-1 and Figures[selectedY-1][selectedX][2] == 16 then
  138.             return true
  139.         end
  140.     elseif Figures[selectedX][selectedY][2] == 16 then
  141.         if selectedY2 == selectedY-2 and selectedX2 == selectedX+1 and Figures[selectedY-1][selectedX][2] == 0 then
  142.             return true
  143.         elseif selectedY2 == selectedY-2 and selectedX2 == selectedX-1 and Figures[selectedY-1][selectedX][2] == 0 then
  144.             return true
  145.         elseif selectedY2 == selectedY-1 and selectedX2 == selectedX+2 and Figures[selectedY-1][selectedX][2] == 0 then
  146.             return true
  147.         elseif selectedY2 == selectedY-1 and selectedX2 == selectedX-2 and Figures[selectedY-1][selectedX][2] == 0 then
  148.             return true
  149.         elseif selectedY2 == selectedY+1 and selectedX2 == selectedX+2 and Figures[selectedY-1][selectedX][2] == 0 then
  150.             return true
  151.         elseif selectedY2 == selectedY+1 and selectedX2 == selectedX-2 and Figures[selectedY-1][selectedX][2] == 0 then
  152.             return true
  153.         elseif selectedY2 == selectedY+2 and selectedX2 == selectedX+1 and Figures[selectedY-1][selectedX][2] == 0 then
  154.             return true
  155.         elseif selectedY2 == selectedY+2 and selectedX2 == selectedX-1 and Figures[selectedY-1][selectedX][2] == 0 then
  156.             return true
  157.         elseif selectedY2 == selectedY-2 and selectedX2 == selectedX+1 and Figures[selectedY-1][selectedX][2] == 1 then
  158.             return true
  159.         elseif selectedY2 == selectedY-2 and selectedX2 == selectedX-1 and Figures[selectedY-1][selectedX][2] == 1 then
  160.             return true
  161.         elseif selectedY2 == selectedY-1 and selectedX2 == selectedX+2 and Figures[selectedY-1][selectedX][2] == 1 then
  162.             return true
  163.         elseif selectedY2 == selectedY-1 and selectedX2 == selectedX-2 and Figures[selectedY-1][selectedX][2] == 1 then
  164.             return true
  165.         elseif selectedY2 == selectedY+1 and selectedX2 == selectedX+2 and Figures[selectedY-1][selectedX][2] == 1 then
  166.             return true
  167.         elseif selectedY2 == selectedY+1 and selectedX2 == selectedX-2 and Figures[selectedY-1][selectedX][2] == 1 then
  168.             return true
  169.         elseif selectedY2 == selectedY+2 and selectedX2 == selectedX+1 and Figures[selectedY-1][selectedX][2] == 16 then
  170.             return true
  171.         elseif selectedY2 == selectedY+2 and selectedX2 == selectedX-1 and Figures[selectedY-1][selectedX][2] == 16 then
  172.             return true
  173.         end
  174.     end
  175.   elseif Figures[selectedX][selectedY][1] == "T" then
  176.     test = true
  177.     if Figures[selectedX][selectedY][2] == 1 then
  178.         if selectedY2 == selectedY then
  179.             if selectedX < selectedX2 then
  180.                 for iii = selectedX2, selectedX-1 do
  181.                     if Figures[selectedY][iii][2] ~= 0 then
  182.                         test = false
  183.                     end
  184.                 end
  185.             elseif selectedX > selectedX2 then
  186.                 for iii = selectedX, selectedX2-1 do
  187.                     if Figures[selectedY][iii][2] ~= 0 then
  188.                         test = false
  189.                     end
  190.                 end
  191.             end
  192.         elseif selectedX2 == selectedX then
  193.             if selectedY < selectedY2 then
  194.                 for iii = selectedY2, selectedY-1 do
  195.                     if Figures[iii][selectedX][2] ~= 0 then
  196.                         test = false
  197.                     end
  198.                 end
  199.             elseif selectedY > selectedY2 then
  200.                 for iii = selectedY, selectedY2-1 do
  201.                     if Figures[iii][selectedX][2] ~= 0 then
  202.                         test = false
  203.                     end
  204.                 end
  205.             end
  206.         end
  207.         if Figures[selectedY2][selectedX2][2] == 1 then test = false end
  208.         if test == true then
  209.         return true
  210.         end
  211.     elseif Figures[selectedX][selectedY][2] == 16 then
  212.         if selectedY2 == selectedY then
  213.             if selectedX < selectedX2 then
  214.                 for iii = selectedX2, selectedX-1 do
  215.                     if Figures[selectedY][iii][2] ~= 0 then
  216.                         test = false
  217.                     end
  218.                 end
  219.             elseif selectedX > selectedX2 then
  220.                 for iii = selectedX, selectedX2-1 do
  221.                     if Figures[selectedY][iii][2] ~= 0 then
  222.                         test = false
  223.                     end
  224.                 end
  225.             end
  226.         elseif selectedX2 == selectedX then
  227.             if selectedY < selectedY2 then
  228.                 for iii = selectedY2, selectedY-1 do
  229.                     if Figures[iii][selectedX][2] ~= 0 then
  230.                         test = false
  231.                     end
  232.                 end
  233.             elseif selectedY > selectedY2 then
  234.                 for iii = selectedY, selectedY2-1 do
  235.                     if Figures[iii][selectedX][2] ~= 0 then
  236.                         test = false
  237.                     end
  238.                 end
  239.             end
  240.         end
  241.         if Figures[selectedY2][selectedX2][2] == 16 then test = false end
  242.         if test == true then
  243.         return true
  244.         end
  245.     end
  246.   elseif Figures[selectedX][selectedY][1] == "L" then
  247.     test = false
  248.     xtest = selectedX
  249.     ytest = selectedY
  250.     for iii = 1, 8 do
  251.         ytest,xtest=ytest+1,xtest+1
  252.         if selectedX2 == xtest or selectedY2 == ytest then
  253.             test = true
  254.             break
  255.         end
  256.     end
  257.     for iii = 1, 8 do
  258.         ytest,xtest=ytest-1,xtest-1
  259.         if selectedX2 == xtest or selectedY2 == ytest then
  260.             test = true
  261.             break
  262.         end
  263.     end
  264.     for iii = 1, 8 do
  265.         ytest,xtest=ytest+1,xtest-1
  266.         if selectedX2 == xtest or selectedY2 == ytest then
  267.             test = true
  268.             break
  269.         end
  270.     end
  271.     for iii = 1, 8 do
  272.         ytest,xtest=ytest-1,xtest+1
  273.         if selectedX2 == xtest or selectedY2 == ytest then
  274.             test = true
  275.             break
  276.         end
  277.     end
  278.     if Figures[selectedX][selectedY][2] == 1 then
  279.         xtest = selectedX
  280.         ytest = selectedY
  281.         if test == true then
  282.             if testy < selectedY2 then
  283.                 if testx < selectedX2 then
  284.                     for iii = testx, selectedX22 do
  285.                         testx, testy = testx-1, testy-1
  286.                         if Figures[testy][testx][2] ~= 0 then
  287.                             test = false
  288.                         end
  289.                     end
  290.                 elseif testx > selectedX2 then
  291.                     for iii = selectedX2, testx do
  292.                         testx, testy = testx+1, testy-1
  293.                         if Figures[testy][testx][2] ~= 0 then
  294.                             test = false
  295.                         end
  296.                     end
  297.                 end
  298.             elseif testy > selectedY2 then
  299.                 if testx < selectedX2 then
  300.                     for iii = testx, selectedX22 do
  301.                         testx, testy = testx-1, testy+1
  302.                         if Figures[testy][testx][2] ~= 0 then
  303.                             test = false
  304.                         end
  305.                     end
  306.                 elseif testx > selectedX2 then
  307.                     for iii = selectedX2, testx do
  308.                         testx, testy = testx+1, testy+1
  309.                         if Figures[testy][testx][2] ~= 0 then
  310.                             test = false
  311.                         end
  312.                     end
  313.                 end
  314.             end
  315.             if Figures[selectedY2][selectedX2][2] == 16 then test = false end
  316.             if test == true then
  317.                 return true
  318.             end
  319.         end
  320.     elseif Figures[selectedX][selectedY][2] == 16 then
  321.         xtest = selectedX
  322.         ytest = selectedY
  323.         if test == true then
  324.             if testy < selectedY2 then
  325.                 if testx < selectedX2 then
  326.                     for iii = testx, selectedX22 do
  327.                         testx, testy = testx-1, testy-1
  328.                         if Figures[testy][testx][2] ~= 0 then
  329.                             test = false
  330.                         end
  331.                     end
  332.                 elseif testx > selectedX2 then
  333.                     for iii = selectedX2, testx do
  334.                         testx, testy = testx+1, testy-1
  335.                         if Figures[testy][testx][2] ~= 0 then
  336.                             test = false
  337.                         end
  338.                     end
  339.                 end
  340.             elseif testy > selectedY2 then
  341.                 if testx < selectedX2 then
  342.                     for iii = testx, selectedX22 do
  343.                         testx, testy = testx-1, testy+1
  344.                         if Figures[testy][testx][2] ~= 0 then
  345.                             test = false
  346.                         end
  347.                     end
  348.                 elseif testx > selectedX2 then
  349.                     for iii = selectedX2, testx do
  350.                         testx, testy = testx+1, testy+1
  351.                         if Figures[testy][testx][2] ~= 0 then
  352.                             test = false
  353.                         end
  354.                     end
  355.                 end
  356.             end
  357.             if Figures[selectedY2][selectedX2][2] == 16 then test = false end
  358.         end
  359.     end
  360.   elseif Figures[selectedX][selectedY][1] == "K" then
  361.     xtest = selectedX
  362.     ytest = selectedY
  363.     if Figures[selectedX][selectedY][2] == 1 then
  364.         if selectedX2 == xtest+1 then
  365.         if selectedY2 == ytest+1 then
  366.         if not Figures[selectedX2][selectedY2][2] == 1 then
  367.         return true
  368.         end
  369.         end
  370.         elseif selectedX2 == xtest then if selectedY2 == ytest+1 then
  371.         if not Figures[selectedX2][selectedY2][2] == 1 then
  372.         return true
  373.         end
  374.         end
  375.         elseif selectedX2 == xtest-1 then if selectedY2 == ytest+1 then
  376.         if not Figures[selectedX2][selectedY2][2] == 1 then
  377.         return true
  378.         end
  379.         end
  380.         elseif selectedX2 == xtest-1 then if selectedY2 == ytest then
  381.         if not Figures[selectedX2][selectedY2][2] == 1 then
  382.         return true
  383.         end
  384.         end
  385.         elseif selectedX2 == xtest-1 then if selectedY2 == ytest-1 then
  386.         if not Figures[selectedX2][selectedY2][2] == 1 then
  387.         return true
  388.         end
  389.         end
  390.         elseif selectedX2 == xtest then if selectedY2 == ytest-1 then
  391.         if not Figures[selectedX2][selectedY2][2] == 1 then
  392.         return true
  393.         end
  394.         end
  395.         elseif selectedX2 == xtest+1 then if selectedY2 == ytest-1 then
  396.         if not Figures[selectedX2][selectedY2][2] == 1 then
  397.         return true
  398.         end
  399.         end
  400.         elseif selectedX2 == xtest-1 then if selectedY2 == ytest then
  401.         if not Figures[selectedX2][selectedY2][2] == 1 then
  402.         return true
  403.         end
  404.         end
  405.         end
  406.     elseif Figures[selectedX][selectedY][2] == 16 then
  407.         if selectedX2 == xtest+1 then if selectedY2 == ytest+1 then
  408.         if not Figures[selectedX2][selectedY2][2] == 16 then
  409.         return true
  410.         end
  411.         end
  412.         elseif selectedX2 == xtest then if selectedY2 == ytest+1 then
  413.         if not Figures[selectedX2][selectedY2][2] == 16 then
  414.         return true
  415.         end
  416.         end
  417.         elseif selectedX2 == xtest-1 then if selectedY2 == ytest+1 then
  418.         if not Figures[selectedX2][selectedY2][2] == 16 then
  419.         return true
  420.         end
  421.         end
  422.         elseif selectedX2 == xtest-1 then if selectedY2 == ytest then
  423.         if not Figures[selectedX2][selectedY2][2] == 16 then
  424.         return true
  425.         end
  426.         end
  427.         elseif selectedX2 == xtest-1 then if selectedY2 == ytest-1 then
  428.         if not Figures[selectedX2][selectedY2][2] == 16 then
  429.         return true
  430.         end
  431.         end
  432.         elseif selectedX2 == xtest then if selectedY2 == ytest-1 then
  433.         if not Figures[selectedX2][selectedY2][2] == 16 then
  434.         return true
  435.         end
  436.         end
  437.         elseif selectedX2 == xtest+1 then if selectedY2 == ytest-1 then
  438.         if not Figures[selectedX2][selectedY2][2] == 16 then
  439.         return true
  440.         end
  441.         end
  442.         elseif selectedX2 == xtest-1 then if selectedY2 == ytest then
  443.         if not Figures[selectedX2][selectedY2][2] == 16 then
  444.         return true
  445.         end
  446.         end
  447.         end
  448.     end
  449.   elseif Figures[selectedX][selectedY][1] == "k" then
  450.     if Figures[selectedX][selectedY][2] == 1 then
  451.         if selectedY2 == selectedY-2 and selectedX2 == selectedX+1 and Figures[selectedY-1][selectedX][2] == 0 then
  452.             return true
  453.         elseif selectedY2 == selectedY-2 and selectedX2 == selectedX-1 and Figures[selectedY-1][selectedX][2] == 0 then
  454.             return true
  455.         elseif selectedY2 == selectedY-1 and selectedX2 == selectedX+2 and Figures[selectedY-1][selectedX][2] == 0 then
  456.             return true
  457.         elseif selectedY2 == selectedY-1 and selectedX2 == selectedX-2 and Figures[selectedY-1][selectedX][2] == 0 then
  458.             return true
  459.         elseif selectedY2 == selectedY+1 and selectedX2 == selectedX+2 and Figures[selectedY-1][selectedX][2] == 0 then
  460.             return true
  461.         elseif selectedY2 == selectedY+1 and selectedX2 == selectedX-2 and Figures[selectedY-1][selectedX][2] == 0 then
  462.             return true
  463.         elseif selectedY2 == selectedY+2 and selectedX2 == selectedX+1 and Figures[selectedY-1][selectedX][2] == 0 then
  464.             return true
  465.         elseif selectedY2 == selectedY+2 and selectedX2 == selectedX-1 and Figures[selectedY-1][selectedX][2] == 0 then
  466.             return true
  467.         elseif selectedY2 == selectedY-2 and selectedX2 == selectedX+1 and Figures[selectedY-1][selectedX][2] == 16 then
  468.             return true
  469.         elseif selectedY2 == selectedY-2 and selectedX2 == selectedX-1 and Figures[selectedY-1][selectedX][2] == 16 then
  470.             return true
  471.         elseif selectedY2 == selectedY-1 and selectedX2 == selectedX+2 and Figures[selectedY-1][selectedX][2] == 16 then
  472.             return true
  473.         elseif selectedY2 == selectedY-1 and selectedX2 == selectedX-2 and Figures[selectedY-1][selectedX][2] == 16 then
  474.             return true
  475.         elseif selectedY2 == selectedY+1 and selectedX2 == selectedX+2 and Figures[selectedY-1][selectedX][2] == 16 then
  476.             return true
  477.         elseif selectedY2 == selectedY+1 and selectedX2 == selectedX-2 and Figures[selectedY-1][selectedX][2] == 16 then
  478.             return true
  479.         elseif selectedY2 == selectedY+2 and selectedX2 == selectedX+1 and Figures[selectedY-1][selectedX][2] == 16 then
  480.             return true
  481.         elseif selectedY2 == selectedY+2 and selectedX2 == selectedX-1 and Figures[selectedY-1][selectedX][2] == 16 then
  482.             return true
  483.         end
  484.     elseif Figures[selectedX][selectedY][2] == 16 then
  485.         if selectedY2 == selectedY-2 and selectedX2 == selectedX+1 and Figures[selectedY-1][selectedX][2] == 0 then
  486.             return true
  487.         elseif selectedY2 == selectedY-2 and selectedX2 == selectedX-1 and Figures[selectedY-1][selectedX][2] == 0 then
  488.             return true
  489.         elseif selectedY2 == selectedY-1 and selectedX2 == selectedX+2 and Figures[selectedY-1][selectedX][2] == 0 then
  490.             return true
  491.         elseif selectedY2 == selectedY-1 and selectedX2 == selectedX-2 and Figures[selectedY-1][selectedX][2] == 0 then
  492.             return true
  493.         elseif selectedY2 == selectedY+1 and selectedX2 == selectedX+2 and Figures[selectedY-1][selectedX][2] == 0 then
  494.             return true
  495.         elseif selectedY2 == selectedY+1 and selectedX2 == selectedX-2 and Figures[selectedY-1][selectedX][2] == 0 then
  496.             return true
  497.         elseif selectedY2 == selectedY+2 and selectedX2 == selectedX+1 and Figures[selectedY-1][selectedX][2] == 0 then
  498.             return true
  499.         elseif selectedY2 == selectedY+2 and selectedX2 == selectedX-1 and Figures[selectedY-1][selectedX][2] == 0 then
  500.             return true
  501.         elseif selectedY2 == selectedY-2 and selectedX2 == selectedX+1 and Figures[selectedY-1][selectedX][2] == 1 then
  502.             return true
  503.         elseif selectedY2 == selectedY-2 and selectedX2 == selectedX-1 and Figures[selectedY-1][selectedX][2] == 1 then
  504.             return true
  505.         elseif selectedY2 == selectedY-1 and selectedX2 == selectedX+2 and Figures[selectedY-1][selectedX][2] == 1 then
  506.             return true
  507.         elseif selectedY2 == selectedY-1 and selectedX2 == selectedX-2 and Figures[selectedY-1][selectedX][2] == 1 then
  508.             return true
  509.         elseif selectedY2 == selectedY+1 and selectedX2 == selectedX+2 and Figures[selectedY-1][selectedX][2] == 1 then
  510.             return true
  511.         elseif selectedY2 == selectedY+1 and selectedX2 == selectedX-2 and Figures[selectedY-1][selectedX][2] == 1 then
  512.             return true
  513.         elseif selectedY2 == selectedY+2 and selectedX2 == selectedX+1 and Figures[selectedY-1][selectedX][2] == 16 then
  514.             return true
  515.         elseif selectedY2 == selectedY+2 and selectedX2 == selectedX-1 and Figures[selectedY-1][selectedX][2] == 16 then
  516.             return true
  517.         end
  518.     end
  519.     test = true
  520.     if Figures[selectedX][selectedY][2] == 1 then
  521.         if selectedY2 == selectedY then
  522.             if selectedX < selectedX2 then
  523.                 for iii = selectedX2, selectedX-1 do
  524.                     if Figures[selectedY][iii][2] ~= 0 then
  525.                         test = false
  526.                     end
  527.                 end
  528.             elseif selectedX > selectedX2 then
  529.                 for iii = selectedX, selectedX2-1 do
  530.                     if Figures[selectedY][iii][2] ~= 0 then
  531.                         test = false
  532.                     end
  533.                 end
  534.             end
  535.         elseif selectedX2 == selectedX then
  536.             if selectedY < selectedY2 then
  537.                 for iii = selectedY2, selectedY-1 do
  538.                     if Figures[iii][selectedX][2] ~= 0 then
  539.                         test = false
  540.                     end
  541.                 end
  542.             elseif selectedY > selectedY2 then
  543.                 for iii = selectedY, selectedY2-1 do
  544.                     if Figures[iii][selectedX][2] ~= 0 then
  545.                         test = false
  546.                     end
  547.                 end
  548.             end
  549.         end
  550.         if Figures[selectedY2][selectedX2][2] == 1 then test = false end
  551.         if test == true then
  552.         return true
  553.         end
  554.     elseif Figures[selectedX][selectedY][2] == 16 then
  555.         if selectedY2 == selectedY then
  556.             if selectedX < selectedX2 then
  557.                 for iii = selectedX2, selectedX-1 do
  558.                     if Figures[selectedY][iii][2] ~= 0 then
  559.                         test = false
  560.                     end
  561.                 end
  562.             elseif selectedX > selectedX2 then
  563.                 for iii = selectedX, selectedX2-1 do
  564.                     if Figures[selectedY][iii][2] ~= 0 then
  565.                         test = false
  566.                     end
  567.                 end
  568.             end
  569.         elseif selectedX2 == selectedX then
  570.             if selectedY < selectedY2 then
  571.                 for iii = selectedY2, selectedY-1 do
  572.                     if Figures[iii][selectedX][2] ~= 0 then
  573.                         test = false
  574.                     end
  575.                 end
  576.             elseif selectedY > selectedY2 then
  577.                 for iii = selectedY, selectedY2-1 do
  578.                     if Figures[iii][selectedX][2] ~= 0 then
  579.                         test = false
  580.                     end
  581.                 end
  582.             end
  583.         end
  584.         if Figures[selectedY2][selectedX2][2] == 16 then test = false end
  585.         if test == true then
  586.         return true
  587.         end
  588.     end
  589.     test = false
  590.     xtest = selectedX
  591.     ytest = selectedY
  592.     for iii = 1, 8 do
  593.         ytest,xtest=ytest+1,xtest+1
  594.         if selectedX2 == xtest or selectedY2 == ytest then
  595.             test = true
  596.             break
  597.         end
  598.     end
  599.     for iii = 1, 8 do
  600.         ytest,xtest=ytest-1,xtest-1
  601.         if selectedX2 == xtest or selectedY2 == ytest then
  602.             test = true
  603.             break
  604.         end
  605.     end
  606.     for iii = 1, 8 do
  607.         ytest,xtest=ytest+1,xtest-1
  608.         if selectedX2 == xtest or selectedY2 == ytest then
  609.             test = true
  610.             break
  611.         end
  612.     end
  613.     for iii = 1, 8 do
  614.         ytest,xtest=ytest-1,xtest+1
  615.         if selectedX2 == xtest or selectedY2 == ytest then
  616.             test = true
  617.             break
  618.         end
  619.     end
  620.     if Figures[selectedX][selectedY][2] == 1 then
  621.         xtest = selectedX
  622.         ytest = selectedY
  623.         if test == true then
  624.             if testy < selectedY2 then
  625.                 if testx < selectedX2 then
  626.                     for iii = testx, selectedX22 do
  627.                         testx, testy = testx-1, testy-1
  628.                         if Figures[testy][testx][2] ~= 0 then
  629.                             test = false
  630.                         end
  631.                     end
  632.                 elseif testx > selectedX2 then
  633.                     for iii = selectedX2, testx do
  634.                         testx, testy = testx+1, testy-1
  635.                         if Figures[testy][testx][2] ~= 0 then
  636.                             test = false
  637.                         end
  638.                     end
  639.                 end
  640.             elseif testy > selectedY2 then
  641.                 if testx < selectedX2 then
  642.                     for iii = testx, selectedX22 do
  643.                         testx, testy = testx-1, testy+1
  644.                         if Figures[testy][testx][2] ~= 0 then
  645.                             test = false
  646.                         end
  647.                     end
  648.                 elseif testx > selectedX2 then
  649.                     for iii = selectedX2, testx do
  650.                         testx, testy = testx+1, testy+1
  651.                         if Figures[testy][testx][2] ~= 0 then
  652.                             test = false
  653.                         end
  654.                     end
  655.                 end
  656.             end
  657.             if Figures[selectedY2][selectedX2][2] == 16 then test = false end
  658.             if test == true then
  659.                 return true
  660.             end
  661.         end
  662.     elseif Figures[selectedX][selectedY][2] == 16 then
  663.         xtest = selectedX
  664.         ytest = selectedY
  665.         if test == true then
  666.             if testy < selectedY2 then
  667.                 if testx < selectedX2 then
  668.                     for iii = testx, selectedX22 do
  669.                         testx, testy = testx-1, testy-1
  670.                         if Figures[testy][testx][2] ~= 0 then
  671.                             test = false
  672.                         end
  673.                     end
  674.                 elseif testx > selectedX2 then
  675.                     for iii = selectedX2, testx do
  676.                         testx, testy = testx+1, testy-1
  677.                         if Figures[testy][testx][2] ~= 0 then
  678.                             test = false
  679.                         end
  680.                     end
  681.                 end
  682.             elseif testy > selectedY2 then
  683.                 if testx < selectedX2 then
  684.                     for iii = testx, selectedX22 do
  685.                         testx, testy = testx-1, testy+1
  686.                         if Figures[testy][testx][2] ~= 0 then
  687.                             test = false
  688.                         end
  689.                     end
  690.                 elseif testx > selectedX2 then
  691.                     for iii = selectedX2, testx do
  692.                         testx, testy = testx+1, testy+1
  693.                         if Figures[testy][testx][2] ~= 0 then
  694.                             test = false
  695.                         end
  696.                     end
  697.                 end
  698.             end
  699.             if Figures[selectedY2][selectedX2][2] == 16 then test = false end
  700.         end
  701.     end
  702.   end
  703. end
  704.  
  705. function move()
  706.     print("A")
  707.     --print(checkValid())
  708.     sleep(1)
  709.     --if checkValid() then
  710.         Figures[selectedY2][selectedX2][1] = Figures[selectedY][selectedX][1]
  711.         Figures[selectedY2][selectedX2][2] = Figures[selectedY][selectedX][2]
  712.         Figures[selectedY][selectedX][1] = " "
  713.         Figures[selectedY][selectedX][2] = 0
  714.         return true
  715.     --else
  716.     --  return false
  717.     --end
  718. end
  719.  
  720. function slect()
  721.   valid = false
  722.   while not valid do
  723.   loadBoard()
  724.   c, d, slectedX2, selectedY2, slectedX, selectedY,continue = 0, 0,0,0,0,0,0
  725.   while c < 1 or c > 8 or d < 1 or d > 8 or selectedX == 0 or selectedX2 == 0 or selectedY == 0 or selectedY2 == 0 or continue == 2 do
  726.     loadBoard()
  727.     a, b, c, d = os.pullEvent("mouse_click")
  728.     c, d = c-10, d-1
  729.     if b == "1" or b == 1 then
  730.     if currentTurn == "LightBlue / White" then
  731.     --print(c.." : "..d)
  732.     --print(Figures[c][d][2])
  733.     --print(Figures[5][8][2])
  734.     --sleep(1)
  735.     if Figures[d][c][2] == 1 then
  736.     selectedX = c
  737.     selectedY = d
  738.     if selectedX < 1 and selectedY < 1 then
  739.     continue = continue+1
  740.     end
  741.     end
  742.     elseif currentTurn == "Red / Black" then
  743.     if Figures[d][c][2] == 16 then
  744.     selectedX = c
  745.     selectedY = d
  746.     if selectedX < 1 and selectedY < 1 then
  747.     continue = continue+1
  748.     end
  749.     end
  750.     end
  751.     else
  752.     selectedX2 = c
  753.     selectedY2 = d
  754.     if selectedX2 < 1 and selectedY2 < 1 then
  755.     continue = continue+1
  756.     end
  757.     end
  758.     loadBoard()
  759.   end
  760.   sleep(1)
  761.   valid = move()
  762.   end
  763. end
  764.  
  765. insertFigures()
  766.  
  767. if args[1] == "debug" then
  768. loadBoard()
  769.   for i = 1, 8 do
  770.     for ii = 1, 8 do
  771.       selectedX = ii
  772.       selectedY = i
  773.       loadBoard()
  774.       print(i..":"..ii..":1 = "..Figures[i][ii][1])
  775.       print(i..":"..ii..":2 = "..Figures[i][ii][2])
  776.       sleep(0.1)
  777.     end
  778.   end
  779. end
  780.  
  781. while true do
  782. loadBoard()
  783. slect()
  784. sleep(5)
  785. end
Advertisement
Add Comment
Please, Sign In to add comment