SHOW:
|
|
- or go back to the newest paste.
| 1 | - | lang={ |
| 1 | + | lang={
|
| 2 | - | ru={ |
| 2 | + | ru={
|
| 3 | - | rock= "[ камень ]", |
| 3 | + | rock= "[ камень ]", |
| 4 | - | scissors="[ножницы ]", |
| 4 | + | scissors="[ножницы ]", |
| 5 | - | paper= "[ бумага ]", |
| 5 | + | paper= "[ бумага ]", |
| 6 | - | rock2="камень", |
| 6 | + | rock2="камень", |
| 7 | - | scissors2="ножницы", |
| 7 | + | scissors2="ножницы", |
| 8 | - | paper2="бумага", |
| 8 | + | paper2="бумага", |
| 9 | - | win1="выиграл игрок 1: ", |
| 9 | + | win1="выиграл игрок 1: ", |
| 10 | - | win2="выиграл игрок 2: ", |
| 10 | + | win2="выиграл игрок 2: ", |
| 11 | - | wins="побед: ", |
| 11 | + | wins="побед: ", |
| 12 | - | draw="НИЧЬЯ!!", |
| 12 | + | draw="НИЧЬЯ!!", |
| 13 | - | }, |
| 13 | + | }, |
| 14 | - | en={ |
| 14 | + | en={
|
| 15 | - | rock= "[ rock ]", |
| 15 | + | rock= "[ rock ]", |
| 16 | - | scissors="[scissors]", |
| 16 | + | scissors="[scissors]", |
| 17 | - | paper= "[ paper ]", |
| 17 | + | paper= "[ paper ]", |
| 18 | - | rock="rock", |
| 18 | + | rock="rock", |
| 19 | - | scissors="scissors", |
| 19 | + | scissors="scissors", |
| 20 | - | paper="paper", |
| 20 | + | paper="paper", |
| 21 | - | win1="WIN player 1: ", |
| 21 | + | win1="WIN player 1: ", |
| 22 | - | win2="WIN player 2: ", |
| 22 | + | win2="WIN player 2: ", |
| 23 | - | wins="wins: ", |
| 23 | + | wins="wins: ", |
| 24 | - | draw="DRAW!!", |
| 24 | + | draw="DRAW!!", |
| 25 | - | } |
| 25 | + | } |
| 26 | - | } |
| 26 | + | } |
| 27 | - | slang="ru" |
| 27 | + | slang="ru" |
| 28 | - | |
| 28 | + | |
| 29 | - | local gpu=require("component").gpu |
| 29 | + | local gpu=require("component").gpu
|
| 30 | - | local event=require("event") |
| 30 | + | local event=require("event")
|
| 31 | - | require("term").clear() |
| 31 | + | require("term").clear()
|
| 32 | - | |
| 32 | + | |
| 33 | - | local gameCount=2 |
| 33 | + | local gameCount=2 |
| 34 | - | local obj={} |
| 34 | + | local obj={}
|
| 35 | - | local player={} |
| 35 | + | local player={}
|
| 36 | - | |
| 36 | + | |
| 37 | - | function testClick(self,x,y) |
| 37 | + | function testClick(self,x,y) |
| 38 | - | return (x>=self.x)and(y>=self.y)and(x<self.x+self.w)and(y<self.y+self.h) |
| 38 | + | return (x>=self.x)and(y>=self.y)and(x<self.x+self.w)and(y<self.y+self.h) |
| 39 | - | end |
| 39 | + | end |
| 40 | - | |
| 40 | + | |
| 41 | - | function offObj() |
| 41 | + | function offObj() |
| 42 | - | return false |
| 42 | + | return false |
| 43 | - | end |
| 43 | + | end |
| 44 | - | |
| 44 | + | |
| 45 | - | function newButton(x,y,w,h,id) |
| 45 | + | function newButton(x,y,w,h,id) |
| 46 | - | table.insert(obj,{x=x,y=y,w=w,h=h,isClicked=testClick,id=id}) |
| 46 | + | table.insert(obj,{x=x,y=y,w=w,h=h,isClicked=testClick,id=id})
|
| 47 | - | end |
| 47 | + | end |
| 48 | - | |
| 48 | + | |
| 49 | - | function drawPlayer(x,y,id) |
| 49 | + | function drawPlayer(x,y,id) |
| 50 | - | newButton(x,y+1,10,1,id) |
| 50 | + | newButton(x,y+1,10,1,id) |
| 51 | - | newButton(x,y+2,10,1,id) |
| 51 | + | newButton(x,y+2,10,1,id) |
| 52 | - | newButton(x,y+3,10,1,id) |
| 52 | + | newButton(x,y+3,10,1,id) |
| 53 | - | gpu.fill(x,y,10,4," ") |
| 53 | + | gpu.fill(x,y,10,4," ") |
| 54 | - | gpu.set(x,y,player[id].name) |
| 54 | + | gpu.set(x,y,player[id].name) |
| 55 | - | gpu.set(x,y+1,lang[slang]["rock"]) |
| 55 | + | gpu.set(x,y+1,lang[slang]["rock"]) |
| 56 | - | gpu.set(x,y+2,lang[slang]["scissors"]) |
| 56 | + | gpu.set(x,y+2,lang[slang]["scissors"]) |
| 57 | - | gpu.set(x,y+3,lang[slang]["paper"]) |
| 57 | + | gpu.set(x,y+3,lang[slang]["paper"]) |
| 58 | - | gpu.set(x,y+4,lang[slang]["wins"]..player[id].win) |
| 58 | + | gpu.set(x,y+4,lang[slang]["wins"]..player[id].win) |
| 59 | - | end |
| 59 | + | end |
| 60 | - | |
| 60 | + | |
| 61 | - | gpu.setBackground(0x999999) |
| 61 | + | gpu.setBackground(0x999999) |
| 62 | - | gpu.fill(1,1,10,4," ") |
| 62 | + | gpu.fill(1,1,10,4," ") |
| 63 | - | gpu.fill(15,1,10,4," ") |
| 63 | + | gpu.fill(15,1,10,4," ") |
| 64 | - | newButton(1,1,10,4) |
| 64 | + | newButton(1,1,10,4) |
| 65 | - | newButton(15,1,10,4) |
| 65 | + | newButton(15,1,10,4) |
| 66 | - | isRunning=true |
| 66 | + | isRunning=true |
| 67 | - | tmp=2 |
| 67 | + | tmp=2 |
| 68 | - | while isRunning do |
| 68 | + | while isRunning do |
| 69 | - | _,_,x,y,_,name=event.pull("touch") |
| 69 | + | _,_,x,y,_,name=event.pull("touch")
|
| 70 | - | for i=1,#obj do |
| 70 | + | for i=1,#obj do |
| 71 | - | if obj[i]:isClicked(x,y) then |
| 71 | + | if obj[i]:isClicked(x,y) then |
| 72 | - | player[i]={} |
| 72 | + | player[i]={}
|
| 73 | - | player[i].name=name |
| 73 | + | player[i].name=name |
| 74 | - | player[i].bit=-1 |
| 74 | + | player[i].bit=-1 |
| 75 | - | player[i].win=0 |
| 75 | + | player[i].win=0 |
| 76 | - | gpu.setBackground(0x009900) |
| 76 | + | gpu.setBackground(0x009900) |
| 77 | - | gpu.fill(obj[i].x,obj[i].y,obj[i].w,obj[i].h," ") |
| 77 | + | gpu.fill(obj[i].x,obj[i].y,obj[i].w,obj[i].h," ") |
| 78 | - | gpu.set(obj[i].x,obj[i].y,player[i].name) |
| 78 | + | gpu.set(obj[i].x,obj[i].y,player[i].name) |
| 79 | - | obj[i].isClicked=offObj |
| 79 | + | obj[i].isClicked=offObj |
| 80 | - | tmp=tmp-1 |
| 80 | + | tmp=tmp-1 |
| 81 | - | end |
| 81 | + | end |
| 82 | - | end |
| 82 | + | end |
| 83 | - | if tmp==0 then |
| 83 | + | if tmp==0 then |
| 84 | - | isRunning=false |
| 84 | + | isRunning=false |
| 85 | - | end |
| 85 | + | end |
| 86 | - | end |
| 86 | + | end |
| 87 | - | |
| 87 | + | |
| 88 | - | gpu.setBackground(0x000000) |
| 88 | + | gpu.setBackground(0x000000) |
| 89 | - | --os.exit() |
| 89 | + | --os.exit() |
| 90 | - | --for _=1,gameCount do |
| 90 | + | --for _=1,gameCount do |
| 91 | - | while (player[1].win~=2)and(player[2].win~=2) do |
| 91 | + | while (player[1].win~=2)and(player[2].win~=2) do |
| 92 | - | obj={} |
| 92 | + | obj={}
|
| 93 | - | require("term").clear() |
| 93 | + | require("term").clear()
|
| 94 | - | drawPlayer(1,1,1) |
| 94 | + | drawPlayer(1,1,1) |
| 95 | - | drawPlayer(15,1,2) |
| 95 | + | drawPlayer(15,1,2) |
| 96 | - | |
| 96 | + | |
| 97 | - | isRunning=true |
| 97 | + | isRunning=true |
| 98 | - | |
| 98 | + | |
| 99 | - | tmp=0 |
| 99 | + | tmp=0 |
| 100 | - | |
| 100 | + | |
| 101 | - | while isRunning do |
| 101 | + | while isRunning do |
| 102 | - | _,_,x,y,_,name=event.pull("touch") |
| 102 | + | _,_,x,y,_,name=event.pull("touch")
|
| 103 | - | for i=1,#obj do |
| 103 | + | for i=1,#obj do |
| 104 | - | if obj[i]:isClicked(x,y) then |
| 104 | + | if obj[i]:isClicked(x,y) then |
| 105 | - | --print(i,obj[i].id) |
| 105 | + | --print(i,obj[i].id) |
| 106 | - | if name==player[obj[i].id].name then |
| 106 | + | if name==player[obj[i].id].name then |
| 107 | - | tmp=tmp+1 |
| 107 | + | tmp=tmp+1 |
| 108 | - | -- gpu.set(149,49,i.."") |
| 108 | + | -- gpu.set(149,49,i.."") |
| 109 | - | pos=(i-1)%3+1 |
| 109 | + | pos=(i-1)%3+1 |
| 110 | - | player[obj[i].id].bit=pos |
| 110 | + | player[obj[i].id].bit=pos |
| 111 | - | pos=math.floor((i-1)/3) |
| 111 | + | pos=math.floor((i-1)/3) |
| 112 | - | if pos==0 then |
| 112 | + | if pos==0 then |
| 113 | - | gpu.fill(1,2,10,3," ") |
| 113 | + | gpu.fill(1,2,10,3," ") |
| 114 | - | else |
| 114 | + | else |
| 115 | - | gpu.fill(15,2,10,3," ") |
| 115 | + | gpu.fill(15,2,10,3," ") |
| 116 | - | end |
| 116 | + | end |
| 117 | - | obj[pos*3+1].isClicked=offObj;obj[pos*3+2].isClicked=offObj;obj[pos*3+3].isClicked=offObj |
| 117 | + | obj[pos*3+1].isClicked=offObj;obj[pos*3+2].isClicked=offObj;obj[pos*3+3].isClicked=offObj |
| 118 | - | end |
| 118 | + | end |
| 119 | - | end |
| 119 | + | end |
| 120 | - | end |
| 120 | + | end |
| 121 | - | if tmp==2 then |
| 121 | + | if tmp==2 then |
| 122 | - | isRunning=false |
| 122 | + | isRunning=false |
| 123 | - | end |
| 123 | + | end |
| 124 | - | end |
| 124 | + | end |
| 125 | - | --print(player[1].bit,player[2].bit) |
| 125 | + | --print(player[1].bit,player[2].bit) |
| 126 | - | require("term").clear() |
| 126 | + | require("term").clear()
|
| 127 | - | if player[1].bit==player[2].bit then |
| 127 | + | if player[1].bit==player[2].bit then |
| 128 | - | print(lang[slang]["draw"]) |
| 128 | + | print(lang[slang]["draw"]) |
| 129 | - | --elseif ((player[1].bit==1)and(player[2].bit==2))or((player[1].bit==2)and(player[1]) |
| 129 | + | --elseif ((player[1].bit==1)and(player[2].bit==2))or((player[1].bit==2)and(player[1]) |
| 130 | - | elseif (player[1].bit==player[2].bit-1)or(player[1].bit==player[2].bit+2)then |
| 130 | + | elseif (player[1].bit==player[2].bit-1)or(player[1].bit==player[2].bit+2)then |
| 131 | - | print(lang[slang]["win1"]..player[1].name) |
| 131 | + | print(lang[slang]["win1"]..player[1].name) |
| 132 | - | player[1].win=player[1].win+1 |
| 132 | + | player[1].win=player[1].win+1 |
| 133 | - | else |
| 133 | + | else |
| 134 | - | print(lang[slang]["win2"]..player[2].name) |
| 134 | + | print(lang[slang]["win2"]..player[2].name) |
| 135 | - | player[2].win=player[2].win+1 |
| 135 | + | player[2].win=player[2].win+1 |
| 136 | - | end |
| 136 | + | end |
| 137 | - | ms={lang[slang]["rock2"],lang[slang]["scissors2"],lang[slang]["paper2"]} |
| 137 | + | ms={lang[slang]["rock2"],lang[slang]["scissors2"],lang[slang]["paper2"]}
|
| 138 | - | print(ms[player[1].bit],ms[player[2].bit]) |
| 138 | + | print(ms[player[1].bit],ms[player[2].bit]) |
| 139 | - | event.pull("key_down") |
| 139 | + | event.pull("key_down")
|
| 140 | - | end |
| 140 | + | end |
| 141 | - | if player[1].win>player[2].win then |
| 141 | + | if player[1].win>player[2].win then |
| 142 | - | io.write(lang[slang]["win1"]) |
| 142 | + | io.write(lang[slang]["win1"]) |
| 143 | - | else |
| 143 | + | else |
| 144 | - | io.write(lang[slang]["win2"]) |
| 144 | + | io.write(lang[slang]["win2"]) |
| 145 | - | end |
| 145 | + | end |
| 146 | io.write(player[1].win.." VS "..player[2].win) |