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) |