SHOW:
|
|
- or go back to the newest paste.
| 1 | - | state = 1 |
| 1 | + | local field= |
| 2 | - | colory = 0 |
| 2 | + | local chessFreq=4632 |
| 3 | - | piece = "" |
| 3 | + | local actions = {}
|
| 4 | actions['p'] = {"s16", "du", "ccs", "u", "du", "u", "u", "acu", "ac", "l", "ac", "l", "ac", "l", "ac", "l", "d", "d", "acu", "d", "s16", "pu"}
| |
| 5 | - | actions = {}
|
| 5 | + | actions['r'] = {"s16", "du", "ccs", "u", "u", "u", "f", "act", "acu", "acd", "di", "acm", "du", "u", "acu", "d", "acu", "acd", "r", "acm", "acu", "acd", "ac", "acm", "du", "u", "acu", "d", "acu", "acd", "r", "acm", "acu", "acd", "ac", "acm", "du", "u", "acu", "d", "acu", "acd", "r", "acm", "acu", "acd", "ac", "acm", "du", "u", "acu", "d", "acu", "acd", "r", "acm", "acu", "acd", "ac", "acx", "b", "d", "d", "d", "s16", "pu"}
|
| 6 | - | actions['pawn'] = {"s16", "du", "ccs", "u", "du", "u", "u", "acu", "ac", "l", "ac", "l", "ac", "l", "ac", "l", "d", "d", "acu", "d", "s16", "pu"}
|
| 6 | + | actions['h'] = {"s16", "du", "ccs", "u", "du", "u", "du", "u", "du", "u", "du", "u","tb", "ac","tb", "d", "l", "ac", "r", "r", "ac", "l", "acu", "d", "acu", "d", "ac", "acu", "l", "l", "ac", "l", "l", "d", "acu", "d", "s16", "pu"}
|
| 7 | - | actions['tower'] = {"s16", "du", "ccs", "u", "u", "u", "f", "act", "acu", "acd", "di", "acm", "du", "u", "acu", "d", "acu", "acd", "r", "acm", "acu", "acd", "ac", "acm", "du", "u", "acu", "d", "acu", "acd", "r", "acm", "acu", "acd", "ac", "acm", "du", "u", "acu", "d", "acu", "acd", "r", "acm", "acu", "acd", "ac", "acm", "du", "u", "acu", "d", "acu", "acd", "r", "acm", "acu", "acd", "ac", "acx", "b", "d", "d", "d", "s16", "pu"}
|
| 7 | + | actions['b'] = {"s16", "du", "ccs", "u", "u", "u", "u", 'acu', 'ac', 'l', 'ac', 'l', 'ac', 'l', 'ac', 'l', 'd', 'ac', 'l', 'ac', 'l', 'ac', 'l', 'ac', 'l', 'd', 'ac', 'l', 'ac', 'l', 'ac', 'l', 'ac', 'l', 'd', 'd', 's16', 'pu'}
|
| 8 | - | actions['horse'] = {"s16", "du", "ccs", "u", "du", "u", "du", "u", "du", "u", "du", "u", "ac", "d", "l", "ac", "r", "r", "ac", "l", "acu", "d", "acu", "d", "ac", "acu", "l", "l", "ac", "l", "l", "d", "acu", "d", "s16", "pu"}
|
| 8 | + | actions['k'] = {"s16", "du", "ccs", "u", 'du', 'u', 'u', 'du', 'u', 'u', 's5', 'acu', 'ccs', 'ac', 'l', 'l', 'ac', 'd', 'd', 'l', 'ac', 'l', 'l', 'ac', 'r', 'acu', 'd', 'd', 'acu', 'd', 's16', 'pu'}
|
| 9 | - | actions['bishop'] = {"s16", "du", "ccs", "u", "u", "u", "u", 'acu', 'ac', 'l', 'ac', 'l', 'ac', 'l', 'ac', 'l', 'd', 'ac', 'l', 'ac', 'l', 'ac', 'l', 'ac', 'l', 'd', 'ac', 'l', 'ac', 'l', 'ac', 'l', 'ac', 'l', 'd', 'd', 's16', 'pu'}
|
| 9 | + | actions['q'] = {"s16", "du", "ccs", "u", "du", "u", "u", "du", "u", "f", "l", "acd", "f", "acu", "l", "f", "acd", "f", "acu", "l", "f", "acd", "f", "acu", "l", "f", "acd", "f", "acu", "l", "f", "r", "b", "u", "s6", "acu", "ccs", "d", "d", "acu", "d", "d", "acu", "d", "s16", "pu"}
|
| 10 | - | actions['king'] = {"s16", "du", "ccs", "u", 'du', 'u', 'u', 'du', 'u', 'u', 's5', 'acu', 'ccs', 'ac', 'l', 'l', 'ac', 'd', 'd', 'l', 'ac', 'l', 'l', 'ac', 'r', 'acu', 'd', 'd', 'acu', 'd', 's16', 'pu'}
|
| 10 | + | |
| 11 | - | actions['queen'] = {"s16", "du", "ccs", "u", "du", "u", "u", "du", "u", "f", "l", "acd", "f", "acu", "l", "f", "acd", "f", "acu", "l", "f", "acd", "f", "acu", "l", "f", "acd", "f", "acu", "l", "f", "r", "b", "u", "s6", "acu", "ccs", "d", "d", "acu", "d", "d", "acu", "d", "s16", "pu"}
|
| 11 | + | local easyMoves={du=turtle.digUp,dd=turtle.digDown,u=function() repeat until turtle.up() end,f=function() repeat until turtle.forward() end,d=function() repeat until turtle.down() end,b=function() repeat until turtle.back() end, di=turtle.dig,l=turtle.turnLeft,r=turtle.turnRight,pu=turtle.placeUp,pl=turtle.place,pd=turtle.placeDown}
|
| 12 | ||
| 13 | - | function changeState() |
| 13 | + | local stateRegarding={ac={"di","pl"},acu={"du","pu"},acd={"dd","pd"},act={"r","l"},acx={"l","r"},acm={"f","b"}}
|
| 14 | - | if(state == 1)then |
| 14 | + | function doMove(move,state,isWhite) |
| 15 | - | state = 0 |
| 15 | + | if(move:sub(1,1) == "s")then |
| 16 | - | else |
| 16 | + | turtle.select(tonumber(move:sub(2))) |
| 17 | - | state = 1 |
| 17 | + | elseif(easyMoves[move])then |
| 18 | - | end |
| 18 | + | easyMoves[move]() |
| 19 | - | file = fs.open("state", "w")
|
| 19 | + | elseif(stateRegarding[move])then |
| 20 | - | file.write(state) |
| 20 | + | easyMoves[stateRegarding[move][state]]() |
| 21 | - | file.close() |
| 21 | + | elseif(move == "ccs")then |
| 22 | if(isWhite)then | |
| 23 | turtle.select(1) | |
| 24 | - | function readState() |
| 24 | + | else |
| 25 | - | file = fs.open("state", "r")
|
| 25 | + | turtle.select(2) |
| 26 | - | state = tonumber(file.readLine()) |
| 26 | + | end |
| 27 | - | file.close() |
| 27 | + | elseif(move=="tb")then |
| 28 | if(isWhite) then | |
| 29 | turtle.turnLeft() | |
| 30 | - | function doMove(move) |
| 30 | + | turtle.turnLeft() |
| 31 | - | if(move == "s16")then |
| 31 | + | end |
| 32 | - | turtle.select(16) |
| 32 | + | end |
| 33 | - | elseif(move == "s5")then |
| 33 | + | |
| 34 | - | turtle.select(5) |
| 34 | + | |
| 35 | - | elseif(move == "s6")then |
| 35 | + | |
| 36 | - | turtle.select(6) |
| 36 | + | term.setBackgroundColor(colors.black) |
| 37 | - | elseif(move == "du")then |
| 37 | + | term.clear() |
| 38 | - | turtle.digUp() |
| 38 | + | term.setCursorPos(1,1) |
| 39 | - | elseif(move == "dd")then |
| 39 | + | |
| 40 | - | turtle.digDown() |
| 40 | + | modem=peripheral.wrap("right")
|
| 41 | - | elseif(move == "di")then |
| 41 | + | modem.open(chessFreq) |
| 42 | - | turtle.dig() |
| 42 | + | while true do |
| 43 | - | elseif(move == "u")then |
| 43 | + | local event={os.pullEvent("modem_message")}
|
| 44 | - | turtle.up() |
| 44 | + | if event[5] and #event[5]==11 and event[5]:sub(1,2)==field then |
| 45 | - | elseif(move == "d")then |
| 45 | + | local tempState=event[5]:sub(4,8)=="build" and 2 or 1 |
| 46 | - | turtle.down() |
| 46 | + | local color=event[5]:sub(11,11)=="w" |
| 47 | - | elseif(move == "l")then |
| 47 | + | print(event[5]) |
| 48 | - | turtle.turnLeft() |
| 48 | + | for i=1,#actions[event[5]:sub(10,10)] do |
| 49 | - | elseif(move == "r")then |
| 49 | + | doMove(actions[event[5]:sub(10,10)][i],tempState,color) |
| 50 | - | turtle.turnRight() |
| 50 | + | end |
| 51 | - | elseif(move == "f")then |
| 51 | + | modem.transmit(chessFreq,chessFreq,field.." done") |
| 52 | - | turtle.forward() |
| 52 | + | end |
| 53 | - | elseif(move == "b")then |
| 53 | + |