p> 
 {kub: Block 
  {kub ()//конструктор 
  {= new Point (0, 0);=new Point [4]; [0] .X=0; [0] .Y=0; [1] .X=1; [ 1] .Y=0; [2] .X=0; [2] .Y=1; [3] .X=1; [3] .Y=1;=false; 
 } 
  public kub (int x, int y)//конструктор з координатами 
  {= new Point (x, y); =New Point [4]; 
  smes [0] .X=0;// заповнення особливого масиву зміщень 
  smes [0] .Y=0; [1] .X=1; [1] .Y=0; [2] .X=0; [2] .Y=1; [ 3] .X=1; [3] .Y=1;=false; 
 } override bool Is_V (int len) {return ((! stop) amp; (Koor.Y + ((smes [3] .Y) * l - 1) lt; len)); } 
 } 
 } 
  Модуль Z1.cs//буква ZSystem.Collections.Generic; System.Data; System.Drawing; System.Linq; System.Text; Друга 
  {
  class z1: Block//аналогічно попередньої фігурі 
  {pov=true; z1 () 
  {= new Point (0, 0);=new Point [4]; [0] .X=0; [0] .Y=0; [1] .X=1; [ 1] .Y=0; [2] .X=1; [2] .Y=1; [3] .X=2; [3] .Y=1; 
 } z1 (int x, int y) 
  {= new Point (x, y);=new Point [4]; [0] .X=0; [0] .Y=0; [1] .X=1; [ 1] .Y=0; [2] .X=1; [2] .Y=1; [3] .X=2; [3] .Y=1; 
 } override void povorot ()//поворот фігури 
  {
  if (! pov)//здійснюється зміною масиву 
  {// зміщень 
  smes [0] .X=0; [0] .Y=0; [1] .X=1; [1] .Y=0; [2] .X=1; [ 2] .Y=1; [3] .X=2; [3] .Y=1; 
 } 
  {[0] .X =0; [0] .Y=1; [1] .X=1; [1] .Y=0; [2] .X=1; [2] .Y=1; [3] .X=0 ; [3] .Y=2; 
 } =! pov; 
 } override bool Is_V (int len) 
  {((! stop) amp; (Koor.Y + ((smes [3] .Y) * (l - 1)) lt; len)); 
 } 
 } 
 } 
  Модуль Z2.cs//фігура Z розгорнута 
  using System.Collections.Generic; System.Data; System.Drawing; System.Linq; System.Text; Друга 
				
				
				
				
			  {z2: Block 
  {pov=true; z2 ()//** 
  {// **=new Point (0, 0);=new Point [4]; [0] .X=0; [0] .Y=1; [1] .X =1; [1] .Y=1; [2] .X=1; [2] .Y=0; [3] .X=2; [3] .Y=0; 
 } z2 (int x, int y) 
  {= new Point (x, y);=new Point [4]; [0] .X=0; [0] .Y=1; [1] .X=1; [ 1] .Y=1; [2] .X=1; [2] .Y=0; [3] .X=2; [3] .Y=0; 
 } override void povorot () 
  {(! pov) 
  {[0] .X=0; [0] .Y=1; [1] .X=1; [1] .Y=1; [2] .X=1; [ 2] .Y=0; [3] .X=2; [3] .Y=0; 
 } 
  {[0] .X=0; [0] .Y=0; [1] .X=0; [1] .Y=1; [2] .X=1; [ 2] .Y=1; [3] .X=1; [3] .Y=2; 
 } =! pov; 
 } override bool Is_V (int len) {return ((! stop) amp; (Koor.Y + ((smes [3] .Y) * (l - 1)) lt; len) ); } 
 } 
 } 
  Модуль G1.cs//фігура ГSystem.Collections.Generic; System.Data; System.Drawing; System.Linq; System.Text; Друга 
  {g1: Block 
  {pov=0; g1 () 
  {= new Point (0, 0);=new Point [4]; [0] .X=0; [0] .Y=0; [1] .X=0; [ 1] .Y=1; [2] .X=0; [2] .Y=2; [3] .X=1; [3] .Y=0; 
 } g1 (int x, int y) 
  {= new Point (x, y);=new Point [4]; [0] .X=0; [0] .Y=0; [1] .X=0; [ 1] .Y=1; [2] .X=1; [2] .Y=0; [3] .X=0; [3] .Y=2; 
 } override void povorot () 
  {(pov) 
  {3: [0] .X=0; [0] .Y=0; [1] .X=0; [1] .Y=1; [2] .X=1 ; [2] .Y=0; [3] .X=0; [3] .Y=2;=0 ;; 0: [0] .X=0; [0] .Y=0; [1].X=0; [1] .Y=1; [2] .X=1; [2] .Y=1; [3] .X=2; [3] .Y=1;=1 ;; 1:[0] .X=0; [0] .Y=2; [1] .X=1; [1] .Y=0; [2] .X=1; [2] .Y=1; [ 3] .X=1; [3] .Y=2;=2 ;; 2: [0] .X=0; [0] .Y=0; [1] .X=1; [1] .Y =0; [2] .X=2; [2] .Y=0; [3] .X=2; [3] .Y=1;=3 ;; 
 } 
 } override bool Is_V (int len) {return ((! stop) amp; (Koor.Y + ((smes [3] .Y) * (l - 1)) lt; len) ); } 
 } 
 } 
  Модуль G2.cs//фігура Г2System.Collections.Generic; System.Data; System.Drawing; System.Linq; System.Text; Друга 
  {g2: Block 
  {pov=0; g2 () 
  {= new Point (0, 0);=new Point [4]; [0] .X=0; [0] .Y=0; [1] .X=0; [ 1] .Y=1; [2] .X=0; [2] .Y=2; [3] .X=1; [3] .Y=0; 
 } g2 (int x, int y) 
  {= new Point (x, y); smes=new Point [4]; [0] .X=1; [0] .Y=0; [1] .X=1; [1] .Y=1; [2] ...