SHARE
TWEET

Untitled

a guest Oct 30th, 2014 259 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2.  
  3. using System.Collections.Generic;
  4.  
  5. using System.Drawing;
  6.  
  7. using System.Windows.Forms;
  8.  
  9. using System.Threading;
  10.  
  11. namespace mirror
  12. {
  13.     partial class Form1 : Form
  14.     {
  15.         public Form1()
  16.         {
  17.             InitializeComponent();
  18.             this.Load += l;
  19.         }
  20.         int[,] g = new int[1, 1];
  21.         int i;
  22.         List<int[]> d = new List<int[]>();
  23.         void l(object ss, EventArgs k)
  24.         {
  25.             SetStyle(ControlStyles.AllPaintingInWmPaint, true);
  26.             SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
  27.             this.Width = this.Height = 800;
  28.             TextBox t = new TextBox();
  29.             this.Controls.Add(t);
  30.             this.Click += (p, e) =>
  31.             {
  32.                 t.Hide();
  33.                 string[] s = t.Text.Split(' ');
  34.                 i = o(s[0]);
  35.                 g = new int[i, i];
  36.                 d.Add(new int[] { o(s[1]), o(s[2]), o(s[3]), 0 }
  37.                );
  38.                 g[d[0][1], d[0][2]] = 1;
  39.                 for (int j = 4;
  40.                 j < s.Length;
  41.                 ) g[o(s[j++]), o(s[j++])] = o(s[j++]);
  42.                 Thread x = new Thread(r =>
  43.                 {
  44.                     while (true)
  45.                     {
  46.                         for (int c = 0;
  47.                             c < d.Count;
  48.                             c++)
  49.                         {
  50.                             try
  51.                             {
  52.                             got: if (d[c][0] == 0) d[c][1]--;
  53.                                 if (d[c][0] == 1) d[c][2]--;
  54.                                 if (d[c][0] == 2) d[c][1]++;
  55.                                 if (d[c][0] == 3) d[c][2]++;
  56.                                 if (d[c][3] == 0)
  57.                                 {
  58.                                     int l = d[c][0];
  59.                                     int z = g[d[c][1], d[c][2]];
  60.                                     if (z == 2) d[c][0] = l == 0 ? 3 : l == 1 ? 2 : l == 2 ? 1 : 0;
  61.                                     if (z == 3) d[c][0] = l == 0 ? 1 : l == 1 ? 0 : l == 2 ? 3 : 2;
  62.                                     if (z == 4) d.Add(new int[] { l == 0 ? 3 : l == 1 ? 2 : l == 2 ? 1 : 0, d[c][1], d[c][2], 0 }
  63.                                     );
  64.                                     if (z == 5) d.Add(new int[] { l == 0 ? 1 : l == 1 ? 0 : l == 2 ? 3 : 2, d[c][1], d[c][2], 0 }
  65.                                     );
  66.                                     if (z == 6)
  67.                                     {
  68.                                         d.RemoveAt(c);
  69.                                         continue;
  70.                                     }
  71.                                     if (z == 7) d[c][3] = 1;
  72.                                     if (z == 8)
  73.                                     {
  74.                                         Random rr = new Random();
  75.                                         d[c][1] = rr.Next(i);
  76.                                         d[c][2] = rr.Next(i);
  77.                                     }
  78.                                     if (z > 1) goto got;
  79.                                 }
  80.                                 g[d[c][1], d[c][2]] = 1;
  81.                             }
  82.                             catch (Exception) { }
  83.                         }
  84.                         this.Invalidate();
  85.                         Thread.Sleep(100);
  86.                     }
  87.                 }
  88.                );
  89.                 x.Start();
  90.             }
  91.            ;
  92.             string[] ar = new string[] { " ", "*", "/", @"\", "//", @"\\", "O", "X", "T" }
  93.            ;
  94.             this.Paint += (h, v) =>
  95.             {
  96.                 Graphics z = v.Graphics;
  97.                 for (int q = 0;
  98.                 q < i;
  99.                 q++) for (int w = 0;
  100.                  w < i;
  101.                  w++)
  102.                     {
  103.                         z.DrawRectangle(Pens.Black, new Rectangle(q * 20, w * 20, 20, 20));
  104.                         z.DrawString(ar[g[q, w]], this.Font, Brushes.Black, new Point(q * 20 + 8, w * 20 + 8));
  105.                     }
  106.             }
  107.            ;
  108.         }
  109.         int o(string s)
  110.         {
  111.             return int.Parse(s);
  112.         }
  113.     }
  114. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top