robot wars

This commit is contained in:
kepler155c
2018-02-05 06:17:26 -05:00
parent 2343823734
commit fc394801a1
2 changed files with 81 additions and 0 deletions

46
apps/neural.lua Normal file
View File

@@ -0,0 +1,46 @@
_G.requireInjector(_ENV)
local GPS = require('gps')
local Util = require('util')
local Peripheral = require('peripheral')
local Point = require('point')
local p = Peripheral.lookup('594://name/neuralInterface')
_G._p = p
if not p then
error('failed to connect')
end
local lpt = nil
while true do
local pt = GPS.locate(2)
if not pt then
print('No GPS')
else
local gpt = Util.shallowCopy(pt)
if pt and lpt and Point.same(pt, lpt) then
-- havent moved
print('no move')
else
if not lpt then
gpt.x = gpt.x - 2
else
local dx = lpt.x - pt.x
local dz = lpt.z - pt.z
local angle = math.atan2(dx, dz)
gpt.x = pt.x + 2.5 * math.sin(angle)
gpt.z = pt.z + 2.5 * math.cos(angle)
end
lpt = pt
local s, m = p.goTo(gpt.x, gpt.y + 1, gpt.z)
if not s then
print(m)
end
end
end
os.sleep(.5)
end

35
apps/robotWars.lua Normal file
View File

@@ -0,0 +1,35 @@
_G.requireInjector(_ENV)
local Event = require('event')
local Util = require('util')
local os = _G.os
local peripheral = _G.peripheral
local ni = peripheral.find("neuralInterface")
if not ni then
error("Cannot find neuralInterface")
end
local TARGET = 'joebodo'
local function look(entity)
local x, y, z = entity.x, entity.y, entity.z
local pitch = -math.atan2(y, math.sqrt(x * x + z * z))
local yaw = math.atan2(-x, z)
ni.look(math.deg(yaw), math.deg(pitch))
end
Event.addRoutine(function()
while true do
local target = Util.find(ni.sense(), 'name', TARGET)
if target then
look(target)
ni.shoot()
end
os.sleep(0)
end
end)
Event.pullEvents()