Initially, I copied the build in mc1.6.4 with CC 1.58, converting to use rednet and buildcraft, and all was well. I've now recreated it in MC1.7.10 with CC 1.73, which has taken a switch in wiring to use Red Power's cables. I was able to rework the redstone aspects of the code to work, currently, it acknowledges that a coin is inserted, and pulls it out to find the stake, gets the signal identifying the stake, then nothing. The computer only gives the error "Java Exception Thrown: java.lang.IllegalArgumentException: number expected"
I've tried to diagnose where the error is by inserting print commands into the various functions, which have since been deleted to start fresh with the original code. From that, I can tell it's calling the fruitdrop function, but something in that must be throwing the error, since no print commands after that appear, but that's only a guess on my part.
Here's what I'm running currently:
grid = { {"red", "blue", "lightGray"}, {"black", "brown", "green"}, {"white", "cyan", "purple"} } function sndBum() rs.setBundledOutput("left", colors.white) sleep(0.1) rs.setBundledOutput("left", 0) end function sndTick() rs.setBundledOutput("left", colors.orange) sleep(0.1) rs.setBundledOutput("left", 0) end function sndDing() rs.setBundledOutput("left", colors.magenta) sleep(0.1) rs.setBundledOutput("left", 0) end function draw() local out = 0 local i for i=1,3 do if gfx[i] >= 1 and gfx[i] <= 3 then out = colors.combine(out, grid[i][gfx[i]]) end end if win then out = colors.combine(out, colors.orange) end rs.setBundledOutput("top", out) end function resetGame() win = false gfx = {0,0,0} draw() sleep(1) end function fruitDrop(gfx, mov, ed, decr) local i for i=1,3 do if mov[i] then gfx[i] = gfx[i] + 1 if gfx[i] > 3 then gfx[i] = 1 end if gfx[i] == ed[i] and decr[i] < 0 then mov[i] = false end decr[i] = decr[i] - 1 end end sndTick() end function r3(max) return {math.random(max),math.random(max),math.random(max)} end function playGame(stake) gfx = r3(3) local mov = {true, true, true} local ed = r3(3) local decr = r3(10) -- at least 1/4 plays will win if math.random() < 0.25 then local wl = math.random(3) ed = {wl,wl,wl} end while true do fruitDrop(gfx, mov, ed, decr) if mov[1] == false and mov[2] == false and mov[3] == false then break end draw() sleep(0.5) end if gfx[1] == gfx[2] and gfx[2] == gfx[3] then win = true draw() if stake == 1 then payOut(10) elseif stake == 2 then payOut(1) end sleep(3) end draw() end function payOut(amt) for _=1,amt do rs.setBundledOutput("top", colors.gray) sleep(0.5) rs.setBundledOutput("top", 0) sleep(0.3) sndDing() end end function evCoinInserted() if rs.testBundledInput("top", colors.pink) then return 1 elseif rs.testBundledInput("top", colors.lime) then return 2 end return false end function jumpstart() rs.setBundledOutput("top", colors.yellow) sleep(0.2) rs.setBundledOutput("top",0) end function evJumpstart() if rs.testBundledInput("top", colors.lightBlue) then sleep(2) jumpstart() end end jumpstart() while true do if os.pullEvent() == "redstone" then coin = evCoinInserted() if coin ~=false then playGame(coin) sleep(2) if win == false then sndBum() end resetGame() jumpstart() end evJumpstart() end end