#N struct rect float x float y float h float w float color; #N canvas 204 92 940 646 10; #N canvas 0 0 450 300 field 0; #X scalar rect 0 0 300 400 0 \;; #X scalar rect 200 0 300 2 999 \;; #X coords 0 0 400 300 400 300 1; #X restore 467 24 pd field; #N canvas 378 603 568 292 rect 0; #X obj 63 130 filledpolygon color color 1 w 0 w h 0 h 0 0; #X obj 63 57 struct rect float x float y float h float w float color ; #X restore 32 44 pd rect; #N canvas 323 357 506 523 make_pad1 0; #X obj 166 148 t b b b; #X msg 166 117 bang; #X obj 220 218 pointer; #X msg 219 198 traverse pd-game \, bang; #X msg 161 203 100; #X msg 116 200 10; #X msg 40 196 200; #X obj 87 252 append rect x w h color; #X obj 230 112 r \$0-create; #X obj 87 283 s \$0-pad1pointer; #X msg 193 201 999; #X msg 78 197 1; #X connect 0 0 11 0; #X connect 0 1 4 0; #X connect 0 1 10 0; #X connect 0 1 5 0; #X connect 0 2 3 0; #X connect 1 0 0 0; #X connect 2 0 7 4; #X connect 3 0 2 0; #X connect 4 0 7 2; #X connect 5 0 7 1; #X connect 6 0 7 0; #X connect 7 0 9 0; #X connect 8 0 0 0; #X connect 10 0 7 3; #X connect 11 0 7 0; #X restore 26 191 pd make_pad1; #N canvas 0 0 601 569 make_pad2 0; #X obj 166 148 t b b b; #X msg 166 117 bang; #X obj 220 218 pointer; #X msg 219 198 traverse pd-game \, bang; #X msg 161 203 100; #X msg 116 200 10; #X obj 87 252 append rect x w h color; #X obj 230 112 r \$0-create; #X obj 87 283 s \$0-pad2pointer; #X msg 193 201 999; #X msg 80 197 389; #X connect 0 0 10 0; #X connect 0 1 4 0; #X connect 0 1 9 0; #X connect 0 1 5 0; #X connect 0 2 3 0; #X connect 1 0 0 0; #X connect 2 0 6 4; #X connect 3 0 2 0; #X connect 4 0 6 2; #X connect 5 0 6 1; #X connect 6 0 8 0; #X connect 7 0 0 0; #X connect 9 0 6 3; #X connect 10 0 6 0; #X restore 29 225 pd make_pad2; #N canvas 0 0 450 300 make_ball 0; #X obj 182 86 t b b b; #X msg 182 55 bang; #X obj 236 156 pointer; #X msg 235 136 traverse pd-game \, bang; #X msg 132 138 10; #X obj 103 190 append rect x w h color; #X msg 177 141 10; #X msg 96 135 200; #X obj 238 40 r \$0-create; #X obj 103 217 s \$0-ballpointer; #X msg 209 139 999; #X connect 0 0 7 0; #X connect 0 1 6 0; #X connect 0 1 10 0; #X connect 0 1 4 0; #X connect 0 2 3 0; #X connect 1 0 0 0; #X connect 2 0 5 4; #X connect 3 0 2 0; #X connect 4 0 5 1; #X connect 5 0 9 0; #X connect 6 0 5 2; #X connect 7 0 5 0; #X connect 8 0 0 0; #X connect 10 0 5 3; #X restore 27 251 pd make_ball; #N canvas 0 0 583 497 make_borders 0; #X obj 182 86 t b b b; #X msg 182 55 bang; #X obj 236 156 pointer; #X obj 103 190 append rect x w h color; #X obj 103 221 outlet; #X obj 238 40 r \$0-create; #X msg 237 132 traverse pd-field \, bang; #X msg 209 139 0; #X msg 95 141 0; #X msg 177 141 300; #X msg 132 138 400; #X msg 241 325 300; #X msg 273 323 999; #X msg 196 322 2; #X msg 119 323 200; #X obj 190 281 t b b; #X connect 0 0 8 0; #X connect 0 0 15 0; #X connect 0 1 9 0; #X connect 0 1 7 0; #X connect 0 1 10 0; #X connect 0 2 6 0; #X connect 1 0 0 0; #X connect 2 0 3 4; #X connect 3 0 4 0; #X connect 5 0 0 0; #X connect 6 0 2 0; #X connect 7 0 3 3; #X connect 8 0 3 0; #X connect 9 0 3 2; #X connect 10 0 3 1; #X connect 11 0 3 2; #X connect 12 0 3 3; #X connect 13 0 3 1; #X connect 14 0 3 0; #X connect 15 0 14 0; #X connect 15 1 12 0; #X connect 15 1 11 0; #X connect 15 1 13 0; #X restore 21 322 pd make_borders; #X msg 51 386 bang; #X obj 51 506 s \$0-create; #X msg 81 443 \; pd-game clear \; pd-field clear \;; #N canvas 577 216 450 300 game 0; #X scalar rect 1 160 100 10 999 \;; #X scalar rect 389 200 100 10 999 \;; #X scalar rect -0.000484586 140.075 10 10 999 \;; #X coords 0 0 400 300 400 300 1; #X restore 467 24 pd game; #X obj 51 415 t b b; #N canvas 626 190 509 461 move_ball 0; #X obj 155 74 r \$0-ball_vector; #X text 262 176 ball vector: (angle \, speed); #X obj 103 285 cos; #X obj 152 286 sin; #X obj 103 325 *; #X obj 152 324 *; #X text 260 347 send x \, y-changes of ball; #X obj 103 375 outlet; #X obj 152 377 outlet; #X obj 62 106 r \$0-update; #X obj 155 111 unpack 0 0; #X obj 132 159 f; #X obj 168 158 f; #X connect 0 0 10 0; #X connect 2 0 4 0; #X connect 3 0 5 0; #X connect 4 0 7 0; #X connect 5 0 8 0; #X connect 9 0 11 0; #X connect 10 0 11 1; #X connect 10 1 12 0; #X connect 11 0 3 0; #X connect 11 0 2 0; #X connect 12 0 5 1; #X connect 12 0 4 1; #X restore 144 84 pd move_ball; #X obj 50 113 s \$0-ball_dx; #X obj 244 110 s \$0-ball_dy; #N canvas 432 239 637 678 collisions 0; #X obj 52 67 r \$0-ball_x; #X obj 356 74 r \$0-ball_y; #X obj 356 119 < 0; #X obj 372 214 r \$0-ball_vector; #X obj 372 243 unpack 0 0; #X msg 356 271 -1; #X obj 356 332 *; #X obj 356 360 pack 0 0; #X obj 356 396 s \$0-ball_vector; #X obj 67 226 r \$0-ball_vector; #X obj 67 259 unpack 0 0; #X obj 52 382 -; #X text 371 434 angle = -angle \; if outside y-screen; #X text 52 500 angle = pi - angle \; if outside x-screen; #X obj 52 181 select 1; #X obj 356 191 select 1; #X obj 52 436 pack 0 0; #X obj 52 472 s \$0-ball_vector; #X obj 52 322 f 3.14159; #X obj 52 109 < 0; #X obj 100 144 change; #X obj 52 144 change; #X obj 408 146 change; #X obj 356 146 change; #X obj 142 194 s \$0-pad1_out?; #X obj 142 172 s \$0-pad2_out?; #X obj 240 248 print whwerr; #X obj 100 106 > 390; #X obj 408 119 > 290; #X connect 0 0 19 0; #X connect 0 0 27 0; #X connect 1 0 2 0; #X connect 1 0 28 0; #X connect 2 0 23 0; #X connect 3 0 4 0; #X connect 4 0 6 1; #X connect 4 1 7 1; #X connect 5 0 6 0; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 9 0 10 0; #X connect 10 0 11 1; #X connect 10 1 16 1; #X connect 11 0 16 0; #X connect 14 0 18 0; #X connect 15 0 5 0; #X connect 16 0 17 0; #X connect 18 0 11 0; #X connect 19 0 21 0; #X connect 20 0 14 0; #X connect 20 0 25 0; #X connect 21 0 14 0; #X connect 21 0 24 0; #X connect 22 0 15 0; #X connect 23 0 15 0; #X connect 27 0 20 0; #X connect 28 0 22 0; #X restore 141 145 pd collisions; #X obj 181 380 s \$0-ball_vector; #X obj 180 343 pack 0 0; #X obj 410 478 tgl 15 0 empty empty empty 0 -6 0 8 -260818 -1 -1 0 1; #X obj 410 537 s \$0-update; #N canvas 47 578 450 300 set_ball 0; #X obj 231 52 r \$0-ballpointer; #X obj 39 32 r \$0-ball_dx; #X obj 133 32 r \$0-ball_dy; #X obj 135 62 t b f; #X obj 160 105 +; #X obj 40 82 t b f; #X obj 65 125 +; #X floatatom 189 210 5 0 0 0 - - -; #X floatatom 149 216 5 0 0 0 - - -; #X obj 133 242 set rect x y; #X obj 127 103 f 0; #X obj 32 123 f 0; #X msg 266 140 0; #X obj 279 113 r \$0-create; #X obj 32 207 s \$0-ball_x; #X obj 76 164 s \$0-ball_y; #X connect 0 0 9 2; #X connect 1 0 5 0; #X connect 2 0 3 0; #X connect 3 0 10 0; #X connect 3 1 4 1; #X connect 4 0 10 1; #X connect 5 0 11 0; #X connect 5 1 6 1; #X connect 6 0 11 1; #X connect 7 0 9 1; #X connect 8 0 9 0; #X connect 10 0 4 0; #X connect 10 0 9 1; #X connect 10 0 15 0; #X connect 11 0 6 0; #X connect 11 0 9 0; #X connect 11 0 14 0; #X connect 12 0 10 1; #X connect 12 0 11 1; #X connect 13 0 12 0; #X restore 256 149 pd set_ball; #X floatatom 190 119 5 0 0 0 - - -; #X floatatom 151 118 5 0 0 0 - - -; #X obj 138 520 r \$0-ball_vector; #X obj 135 558 unpack 0 0; #X floatatom 133 582 5 0 0 0 - - -; #X floatatom 191 584 5 0 0 0 - - -; #X msg 225 319 1; #X obj 410 500 metro 5; #X floatatom 460 475 5 0 0 0 - - -; #N canvas 64 534 731 428 checkpads 0; #X obj 37 41 r \$0-pad1_out?; #X obj 37 74 select 1; #X obj 191 123 r \$0-pad1pointer; #X obj 147 145 pointer; #X obj 147 201 +; #X obj 147 168 get rect y h; #X obj 53 146 r \$0-ball_y; #X obj 37 189 f; #X obj 37 104 t b b; #X obj 357 75 select 1; #X obj 467 146 pointer; #X obj 467 202 +; #X obj 467 169 get rect y h; #X obj 373 147 r \$0-ball_y; #X obj 357 190 f; #X obj 357 105 t b b; #X obj 511 124 r \$0-pad2pointer; #X obj 357 42 r \$0-pad2_out?; #X obj 357 390 s \$0-PAD2_OUT; #X obj 37 381 s \$0-PAD1_OUT; #X floatatom 532 259 5 0 0 0 - - -; #X floatatom 486 257 5 0 0 0 - - -; #X floatatom 442 257 5 0 0 0 - - -; #X floatatom 207 250 5 0 0 0 - - -; #X floatatom 161 248 5 0 0 0 - - -; #X floatatom 117 248 5 0 0 0 - - -; #X obj 332 359 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 15 345 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 357 249 <; #X obj 399 249 >; #X obj 37 248 <; #X obj 79 248 >; #X obj 37 357 select 1; #X obj 357 366 select 1; #X obj 37 324 ||; #X obj 357 333 ||; #X obj 355 217 clip 0 300; #X obj 37 215 clip 0 300; #X obj 400 277 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 324 269 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 94 285 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; #X obj 16 271 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 48 284 t b f; #X obj 367 302 t b f; #X connect 0 0 1 0; #X connect 1 0 8 0; #X connect 2 0 3 1; #X connect 3 0 5 0; #X connect 4 0 23 0; #X connect 4 0 31 1; #X connect 5 0 4 0; #X connect 5 0 24 0; #X connect 5 0 30 1; #X connect 5 1 4 1; #X connect 6 0 7 1; #X connect 7 0 37 0; #X connect 8 0 7 0; #X connect 8 1 3 0; #X connect 9 0 15 0; #X connect 10 0 12 0; #X connect 11 0 20 0; #X connect 11 0 29 1; #X connect 12 0 11 0; #X connect 12 0 21 0; #X connect 12 0 28 1; #X connect 12 1 11 1; #X connect 13 0 14 1; #X connect 14 0 36 0; #X connect 15 0 14 0; #X connect 15 1 10 0; #X connect 16 0 10 1; #X connect 17 0 9 0; #X connect 28 0 35 0; #X connect 28 0 39 0; #X connect 29 0 38 0; #X connect 29 0 43 0; #X connect 30 0 34 0; #X connect 30 0 41 0; #X connect 31 0 40 0; #X connect 31 0 42 0; #X connect 32 0 19 0; #X connect 33 0 18 0; #X connect 34 0 27 0; #X connect 34 0 32 0; #X connect 35 0 26 0; #X connect 35 0 33 0; #X connect 36 0 28 0; #X connect 36 0 29 0; #X connect 36 0 22 0; #X connect 37 0 30 0; #X connect 37 0 31 0; #X connect 37 0 25 0; #X connect 42 0 34 0; #X connect 42 1 34 1; #X connect 43 0 35 0; #X connect 43 1 35 1; #X restore 143 168 pd checkpads; #N canvas 162 474 598 475 movepads 0; #X obj 92 329 r \$0-pad1pointer; #X obj 27 357 set rect y; #X obj 27 296 r \$0-player1; #X obj 17 10 keyname; #X obj 17 35 pack 0 s; #X obj 17 58 route 1; #X obj 17 84 symbol; #X obj 17 174 s \$0-y1+; #X obj 47 142 s \$0-y1-; #X obj 276 51 clip 0 200; #X obj 171 74 f 0; #X obj 236 75 f 0; #X obj 193 165 f; #X obj 219 95 - 10; #X obj 266 101 + 10; #X obj 166 27 r \$0-y1-; #X obj 237 28 r \$0-y1+; #X obj 194 195 s \$0-player1; #X obj 195 54 clip 0 200; #X obj 17 105 select a q Up Down; #X obj 485 53 clip 0 200; #X obj 380 76 f 0; #X obj 445 77 f 0; #X obj 402 167 f; #X obj 428 97 - 10; #X obj 475 103 + 10; #X obj 404 56 clip 0 200; #X obj 446 30 r \$0-y2+; #X obj 403 197 s \$0-player2; #X obj 298 351 set rect y; #X obj 363 323 r \$0-pad2pointer; #X obj 298 290 r \$0-player2; #X obj 375 29 r \$0-y2-; #X obj 107 142 s \$0-y2+; #X obj 77 174 s \$0-y2-; #X obj 312 90 r \$0-padspeed; #X connect 0 0 1 1; #X connect 2 0 1 0; #X connect 3 0 4 0; #X connect 3 1 4 1; #X connect 4 0 5 0; #X connect 5 0 6 0; #X connect 6 0 19 0; #X connect 9 0 11 1; #X connect 10 0 13 0; #X connect 10 0 14 0; #X connect 10 0 12 0; #X connect 11 0 12 0; #X connect 11 0 13 0; #X connect 11 0 14 0; #X connect 12 0 17 0; #X connect 13 0 18 0; #X connect 14 0 9 0; #X connect 15 0 10 0; #X connect 16 0 11 0; #X connect 18 0 10 1; #X connect 19 0 7 0; #X connect 19 1 8 0; #X connect 19 2 34 0; #X connect 19 3 33 0; #X connect 20 0 22 1; #X connect 21 0 24 0; #X connect 21 0 25 0; #X connect 21 0 23 0; #X connect 22 0 23 0; #X connect 22 0 24 0; #X connect 22 0 25 0; #X connect 23 0 28 0; #X connect 24 0 26 0; #X connect 25 0 20 0; #X connect 26 0 21 1; #X connect 27 0 22 0; #X connect 30 0 29 1; #X connect 31 0 29 0; #X connect 32 0 21 0; #X connect 35 0 14 1; #X connect 35 0 13 1; #X connect 35 0 24 1; #X connect 35 0 25 1; #X restore 251 173 pd movepads; #X obj 348 362 nbx 5 14 -1e+37 1e+37 0 0 \$0-padspeed empty padspeed 0 -6 0 10 -262144 -1 -1 0 256; #X msg 178 319 0.3; #X obj 335 403 r \$0-PAD1_OUT; #X obj 436 404 r \$0-PAD2_OUT; #X msg 332 433 0; #X msg 434 431 0; #X obj 546 472 + 1; #X obj 345 470 + 1; #X obj 310 497 s \$0-score1; #X obj 508 497 s \$0-score2; #X obj 538 34 nbx 5 14 -1e+37 1e+37 0 0 empty \$0-score2 empty 0 -6 0 10 -1 -262144 -1 8 256; #X obj 732 33 nbx 5 14 -1e+37 1e+37 0 0 empty \$0-score1 empty 0 -6 0 10 -1 -262144 -1 6 256; #X obj 494 436 print pad2; #X obj 219 432 print pad1; #X obj 516 522 key; #X obj 514 594 select 32; #X obj 177 271 loadbang; #X text 664 392 Move pads with (q \, a) and (Up \, Down); #X text 664 414 Restart ball with ; #X obj 561 393 bng 32 250 50 0 empty empty RESET_SCORE 0 -6 0 8 -258699 -1 -1; #X msg 586 436 0; #X obj 512 472 f 0; #X obj 311 470 f 0; #X connect 6 0 10 0; #X connect 10 0 7 0; #X connect 10 1 8 0; #X connect 11 0 12 0; #X connect 11 0 21 0; #X connect 11 1 13 0; #X connect 11 1 20 0; #X connect 16 0 15 0; #X connect 17 0 27 0; #X connect 22 0 23 0; #X connect 23 0 24 0; #X connect 23 1 25 0; #X connect 26 0 16 1; #X connect 27 0 18 0; #X connect 28 0 27 1; #X connect 32 0 16 0; #X connect 33 0 35 0; #X connect 33 0 44 0; #X connect 33 0 52 0; #X connect 34 0 36 0; #X connect 34 0 43 0; #X connect 34 0 53 0; #X connect 35 0 17 0; #X connect 36 0 17 0; #X connect 37 0 52 1; #X connect 38 0 53 1; #X connect 45 0 46 0; #X connect 46 0 17 0; #X connect 47 0 10 0; #X connect 47 0 26 0; #X connect 47 0 32 0; #X connect 50 0 51 0; #X connect 50 0 39 0; #X connect 51 0 52 1; #X connect 51 0 53 1; #X connect 51 0 40 0; #X connect 51 0 39 0; #X connect 52 0 37 0; #X connect 52 0 40 0; #X connect 53 0 38 0; #X connect 53 0 39 0;