Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- *** VARIABLES ***
- -- Do not alter
- credits = 0
- -- Monitor and Redstone Sides
- p1monside = "left"
- p2monside = "right"
- detectside = "back"
- stopperside = "bottom"
- -- Draw RPS symbols
- drawRA = " _ "
- drawRB = "/ \\"
- drawRC = "\\_/"
- drawPA = " _ "
- drawPB = "| |"
- drawPC = "|_|"
- drawSA = "\\ /"
- drawSB = " X "
- drawSC = "O O"
- -- Misc. Variables
- pointstowin = 5
- p1attack = "N"
- p2attack = "N"
- p1score = 0
- p2score = 0
- creditspercoin = 1
- -- *** CODING ***
- mon1 = peripheral.wrap(p1monside)
- mon2 = peripheral.wrap(p2monside)
- redstone.setOutput(stopperside,true)
- shell.run("clear",1)
- print("Rock Paper Scissors BATTLE 2P activated. Ctrl + T to terminate!")
- mon1.setCursorPos(1,1)
- mon1.write(" "..drawRA.." "..drawPA.." "..drawSA.." ")
- mon1.setCursorPos(1,2)
- mon1.write(" "..drawRB.." "..drawPB.." "..drawSB.." ")
- mon1.setCursorPos(1,3)
- mon1.write(" "..drawRC.." "..drawPC.." "..drawSC.." ")
- mon1.setCursorPos(1,4)
- mon1.write("- - - - - - - - -")
- mon1.setCursorPos(1,5)
- mon1.write(" Insert Credit ")
- mon2.setCursorPos(1,1)
- mon2.write(" "..drawRA.." "..drawPA.." "..drawSA.." ")
- mon2.setCursorPos(1,2)
- mon2.write(" "..drawRB.." "..drawPB.." "..drawSB.." ")
- mon2.setCursorPos(1,3)
- mon2.write(" "..drawRC.." "..drawPC.." "..drawSC.." ")
- mon2.setCursorPos(1,4)
- mon2.write("- - - - - - - - -")
- mon2.setCursorPos(1,5)
- mon2.write(" Insert Credit ")
- function roll()
- -- Start part, suspense and stuff.
- mon1.setCursorPos(1,5)
- mon1.write(" THREE 3 THREE ")
- mon2.setCursorPos(1,5)
- mon2.write(" THREE 3 THREE ")
- sleep(1)
- mon1.setCursorPos(1,5)
- mon1.write(" TWO 2 TWO ")
- mon2.setCursorPos(1,5)
- mon2.write(" TWO 2 TWO ")
- sleep(1)
- mon1.setCursorPos(1,5)
- mon1.write(" ONE 1 ONE ")
- mon2.setCursorPos(1,5)
- mon2.write(" ONE 1 ONE ")
- sleep(1)
- -- Show players their opponent's result
- if p1attack == "R" then
- mon2.setCursorPos(3,1)
- mon2.write(drawRA)
- mon2.setCursorPos(3,2)
- mon2.write(drawRB)
- mon2.setCursorPos(3,3)
- mon2.write(drawRC)
- elseif p1attack == "P" then
- mon2.setCursorPos(3,1)
- mon2.write(drawPA)
- mon2.setCursorPos(3,2)
- mon2.write(drawPB)
- mon2.setCursorPos(3,3)
- mon2.write(drawPC)
- elseif p1attack == "S" then
- mon2.setCursorPos(3,1)
- mon2.write(drawSA)
- mon2.setCursorPos(3,2)
- mon2.write(drawSB)
- mon2.setCursorPos(3,3)
- mon2.write(drawSC)
- end
- if p2attack == "R" then
- mon1.setCursorPos(13,1)
- mon1.write(drawRA)
- mon1.setCursorPos(13,2)
- mon1.write(drawRB)
- mon1.setCursorPos(13,3)
- mon1.write(drawRC)
- elseif p2attack == "P" then
- mon1.setCursorPos(13,1)
- mon1.write(drawPA)
- mon1.setCursorPos(13,2)
- mon1.write(drawPB)
- mon1.setCursorPos(13,3)
- mon1.write(drawPC)
- elseif p2attack == "S" then
- mon1.setCursorPos(13,1)
- mon1.write(drawSA)
- mon1.setCursorPos(13,2)
- mon1.write(drawSB)
- mon1.setCursorPos(13,3)
- mon1.write(drawSC)
- end
- mon1.setCursorPos(1,5)
- mon1.write(" FIGHT ! FIGHT ")
- mon2.setCursorPos(1,5)
- mon2.write(" FIGHT ! FIGHT ")
- sleep(2)
- -- Who won?
- winner = 0
- if p1attack == "R" then
- if p2attack == "R" then
- mon1.setCursorPos(1,5)
- mon1.write(" TIE ")
- mon2.setCursorPos(1,5)
- mon2.write(" TIE ")
- elseif p2attack == "P" then
- mon1.setCursorPos(1,5)
- mon1.write(" P2 SCORE! ")
- mon2.setCursorPos(1,5)
- mon2.write(" P2 SCORE! ")
- p2score = p2score + 1
- elseif p2attack == "S" then
- mon1.setCursorPos(1,5)
- mon1.write(" P1 SCORE! ")
- mon2.setCursorPos(1,5)
- mon2.write(" P1 SCORE! ")
- p1score = p1score + 1
- end
- elseif p1attack == "P" then
- if p2attack == "R" then
- mon1.setCursorPos(1,5)
- mon1.write(" P1 SCORE! ")
- mon2.setCursorPos(1,5)
- mon2.write(" P1 SCORE! ")
- p1score = p1score + 1
- elseif p2attack == "P" then
- mon1.setCursorPos(1,5)
- mon1.write(" TIE ")
- mon2.setCursorPos(1,5)
- mon2.write(" TIE ")
- elseif p2attack == "S" then
- mon1.setCursorPos(1,5)
- mon1.write(" P2 SCORE! ")
- mon2.setCursorPos(1,5)
- mon2.write(" P2 SCORE! ")
- p2score = p2score + 1
- end
- elseif p1attack == "S" then
- if p2attack == "R" then
- mon1.setCursorPos(1,5)
- mon1.write(" P2 SCORE! ")
- mon2.setCursorPos(1,5)
- mon2.write(" P2 SCORE! ")
- p2score = p2score + 1
- elseif p2attack == "P" then
- mon1.setCursorPos(1,5)
- mon1.write(" P1 SCORE! ")
- mon2.setCursorPos(1,5)
- mon2.write(" P1 SCORE! ")
- p1score = p1score + 1
- elseif p2attack == "S" then
- mon1.setCursorPos(1,5)
- mon1.write(" TIE ")
- mon2.setCursorPos(1,5)
- mon2.write(" TIE ")
- end
- end
- sleep(2)
- -- Check if the fight should continue
- if p1score == pointstowin then
- mon1.setCursorPos(7,3)
- mon1.write(p1score.." : "..p2score)
- mon2.setCursorPos(7,3)
- mon2.write(p1score.." : "..p2score)
- mon1.setCursorPos(1,5)
- mon1.write("* * YOU WIN * *")
- mon2.setCursorPos(1,5)
- mon2.write("* * TRY AGAIN * *")
- credits = credits - 1
- p1score = 0
- p2score = 0
- sleep(2)
- elseif p2score == pointstowin then
- mon1.setCursorPos(7,3)
- mon1.write(p1score.." : "..p2score)
- mon2.setCursorPos(7,3)
- mon2.write(p1score.." : "..p2score)
- mon1.setCursorPos(1,5)
- mon1.write("* * TRY AGAIN * *")
- mon2.setCursorPos(1,5)
- mon2.write("* * YOU WIN * *")
- credits = credits - 1
- p1score = 0
- p2score = 0
- sleep(2)
- end
- p1attack = "N"
- p2attack = "N"
- mon1.setCursorPos(1,1)
- mon1.write(" ### V S ### ")
- mon1.setCursorPos(1,2)
- mon1.write(" ### ### ")
- mon1.setCursorPos(1,3)
- mon1.write(" ### "..p1score.." : "..p2score.." ### ")
- mon2.setCursorPos(1,1)
- mon2.write(" ### V S ### ")
- mon2.setCursorPos(1,2)
- mon2.write(" ### ### ")
- mon2.setCursorPos(1,3)
- mon2.write(" ### "..p1score.." : "..p2score.." ### ")
- if credits == 0 then
- mon1.setCursorPos(1,1)
- mon1.write(" "..drawRA.." "..drawPA.." "..drawSA.." ")
- mon1.setCursorPos(1,2)
- mon1.write(" "..drawRB.." "..drawPB.." "..drawSB.." ")
- mon1.setCursorPos(1,3)
- mon1.write(" "..drawRC.." "..drawPC.." "..drawSC.." ")
- mon2.setCursorPos(1,1)
- mon2.write(" "..drawRA.." "..drawPA.." "..drawSA.." ")
- mon2.setCursorPos(1,2)
- mon2.write(" "..drawRB.." "..drawPB.." "..drawSB.." ")
- mon2.setCursorPos(1,3)
- mon2.write(" "..drawRC.." "..drawPC.." "..drawSC.." ")
- mon1.setCursorPos(1,5)
- mon1.write(" Insert Credit ")
- mon2.setCursorPos(1,5)
- mon2.write(" Insert Credit ")
- else
- mon1.setCursorPos(1,5)
- mon1.write(" Select Attack ")
- mon2.setCursorPos(1,5)
- mon2.write(" Select Attack ")
- end
- end
- local rRunning = true
- print("Activating rRunning Loop.")
- while rRunning do
- sleep(0.05)
- local rEvent, param = os.pullEvent()
- redstone.setOutput(stopperside, true)
- if rEvent == "redstone" then
- if redstone.getBundledInput(detectside) then
- if redstone.testBundledInput(detectside, colors.yellow) then -- P1 ROCK
- redstone.setOutput(stopperside, false)
- if credits > 0 then
- p1attack = "R"
- mon1.setCursorPos(1,5)
- mon1.write(" Waiting for P2! ")
- mon1.setCursorPos(1,1)
- mon1.write(" "..drawRA.." V S ### ")
- mon1.setCursorPos(1,2)
- mon1.write(" "..drawRB.." ### ")
- mon1.setCursorPos(1,3)
- mon1.write(" "..drawRC.." "..p1score.." : "..p2score.." ### ")
- if p2attack ~= "N" then
- roll()
- end
- end
- redstone.setOutput(stopperside, true)
- elseif redstone.testBundledInput(detectside, colors.red) then -- P1 PAPER
- redstone.setOutput(stopperside, false)
- if credits > 0 then
- p1attack = "P"
- mon1.setCursorPos(1,5)
- mon1.write(" Waiting for P2! ")
- mon1.setCursorPos(1,1)
- mon1.write(" "..drawPA.." V S ### ")
- mon1.setCursorPos(1,2)
- mon1.write(" "..drawPB.." ### ")
- mon1.setCursorPos(1,3)
- mon1.write(" "..drawPC.." "..p1score.." : "..p2score.." ### ")
- if p2attack ~= "N" then
- roll()
- end
- end
- redstone.setOutput(stopperside, true)
- elseif redstone.testBundledInput(detectside, colors.orange) then -- P1 SCISSORS
- redstone.setOutput(stopperside, false)
- if credits > 0 then
- p1attack = "S"
- mon1.setCursorPos(1,5)
- mon1.write(" Waiting for P2! ")
- mon1.setCursorPos(1,1)
- mon1.write(" "..drawSA.." V S ### ")
- mon1.setCursorPos(1,2)
- mon1.write(" "..drawSB.." ### ")
- mon1.setCursorPos(1,3)
- mon1.write(" "..drawSC.." "..p1score.." : "..p2score.." ### ")
- if p2attack ~= "N" then
- roll()
- end
- end
- redstone.setOutput(stopperside, true)
- elseif redstone.testBundledInput(detectside, colors.green) then -- Coin
- if credits == 0 then
- mon1.setCursorPos(1,1)
- mon1.write(" ### V S ### ")
- mon1.setCursorPos(1,2)
- mon1.write(" ### ### ")
- mon1.setCursorPos(1,3)
- mon1.write(" ### "..p1score.." : "..p2score.." ### ")
- mon2.setCursorPos(1,1)
- mon2.write(" ### V S ### ")
- mon2.setCursorPos(1,2)
- mon2.write(" ### ### ")
- mon2.setCursorPos(1,3)
- mon2.write(" ### "..p1score.." : "..p2score.." ### ")
- p1attack = "N"
- p2attack = "N"
- end
- credits = credits + creditspercoin
- if p1attack == "N" then
- mon1.setCursorPos(1,5)
- mon1.write(" Select Attack ")
- end
- if p2attack == "N" then
- mon2.setCursorPos(1,5)
- mon2.write(" Select Attack ")
- end
- elseif redstone.testBundledInput(detectside, colors.blue) then -- P2 ROCK
- redstone.setOutput(stopperside, false)
- if credits > 0 then
- p2attack = "R"
- mon2.setCursorPos(1,5)
- mon2.write(" Waiting for P1! ")
- mon2.setCursorPos(1,1)
- mon2.write(" ### V S "..drawRA.." ")
- mon2.setCursorPos(1,2)
- mon2.write(" ### "..drawRB.." ")
- mon2.setCursorPos(1,3)
- mon2.write(" ### "..p1score.." : "..p2score.." "..drawRC.." ")
- if p1attack ~= "N" then
- roll()
- end
- end
- redstone.setOutput(stopperside, true)
- elseif redstone.testBundledInput(detectside, colors.black) then -- P2 PAPER
- redstone.setOutput(stopperside, false)
- if credits > 0 then
- p2attack = "P"
- mon2.setCursorPos(1,5)
- mon2.write(" Waiting for P1! ")
- mon2.setCursorPos(1,1)
- mon2.write(" ### V S "..drawPA.." ")
- mon2.setCursorPos(1,2)
- mon2.write(" ### "..drawPB.." ")
- mon2.setCursorPos(1,3)
- mon2.write(" ### "..p1score.." : "..p2score.." "..drawPC.." ")
- if p1attack ~= "N" then
- roll()
- end
- end
- redstone.setOutput(stopperside, true)
- elseif redstone.testBundledInput(detectside, colors.white) then -- P2 SCISSORS
- redstone.setOutput(stopperside, false)
- if credits > 0 then
- p2attack = "S"
- mon2.setCursorPos(1,5)
- mon2.write(" Waiting for P1! ")
- mon2.setCursorPos(1,1)
- mon2.write(" ### V S "..drawSA.." ")
- mon2.setCursorPos(1,2)
- mon2.write(" ### "..drawSB.." ")
- mon2.setCursorPos(1,3)
- mon2.write(" ### "..p1score.." : "..p2score.." "..drawSC.." ")
- if p1attack ~= "N" then
- roll()
- end
- end
- redstone.setOutput(stopperside, true)
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement