Guest User

Crash Override

a guest
Nov 27th, 2012
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 28.41 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Collections;
  10. using System.Security.Cryptography;
  11.  
  12. namespace tetris
  13. {
  14.     public partial class Form1 : Form
  15.     {
  16.         int min_X = 14;
  17.         int max_X = 139;
  18.         int feld_X = 2;
  19.         int Punkte = 0;
  20.         bool start = true;
  21.         int RundenGespielt = 1;
  22.         int PunktePlus = 10;
  23.         int feld_Y = 0;
  24.         bool paused = true;
  25.         static int AnzahlPanels = 0;
  26.         int[,] Spielfeld = new int[6,13];
  27.         string[,] SpielfeldFarbe = new string[6, 13];
  28.         int[,] SpielfeldNummer = new int[6, 13];
  29.         static ArrayList Panels = new ArrayList();
  30.         Panel panel;
  31.         // Y Maximal
  32.         // 305
  33.  
  34.         // X Minimal
  35.         // 15
  36.  
  37.         // X Maximal
  38.         // 140
  39.  
  40.         // X/Y Spawn
  41.         // 65/5
  42.  
  43.         public Form1()
  44.         {
  45.             InitializeComponent();
  46.             comboBox1.Text = "Noob";
  47.             start = false;
  48.             for (int i = 0; i <= 5; i++)
  49.             {
  50.                 Spielfeld[i, 12] = 0;
  51.             }
  52.             for (int i = 0; i <= 5; i++)
  53.             {
  54.                 Spielfeld[i, 11] = 0;
  55.             }
  56.             PanelAdd();
  57.         }
  58.         private void NachRücken(int richtung1, int richtung2)
  59.         {
  60.             if (Spielfeld[feld_X,feld_Y -1] == 1)
  61.             {
  62.                 panel = (Panel)Panels[SpielfeldNummer[feld_X, feld_Y - 1] -1];
  63.                 panel.Location = new Point(panel.Location.X, panel.Location.Y + 25);
  64.                 Spielfeld[feld_X, feld_Y -1] = 0;
  65.                 SpielfeldFarbe[feld_X, feld_Y - 1] = "";
  66.                 SpielfeldNummer[feld_X, feld_Y - 1] = 0;
  67.             }
  68.             if (Spielfeld[feld_X + richtung1, feld_Y - 1] == 1)
  69.             {
  70.                 panel = (Panel)Panels[SpielfeldNummer[feld_X + richtung1, feld_Y - 1] - 1];
  71.                 panel.Location = new Point(panel.Location.X, panel.Location.Y + 25);
  72.                 Spielfeld[feld_X + richtung1, feld_Y] = 0;
  73.                 SpielfeldFarbe[feld_X + richtung1, feld_Y - 1] = "";
  74.                 SpielfeldNummer[feld_X + richtung1, feld_Y - 1] = 0;
  75.             }
  76.             if (Spielfeld[feld_X + richtung2, feld_Y - 1] == 1)
  77.             {
  78.                 panel = (Panel)Panels[SpielfeldNummer[feld_X + richtung2, feld_Y - 1] - 1];
  79.                 panel.Location = new Point(panel.Location.X, panel.Location.Y + 25);
  80.                 Spielfeld[feld_X + richtung2, feld_Y] = 0;
  81.                 SpielfeldFarbe[feld_X + richtung2, feld_Y - 1] = "";
  82.                 SpielfeldNummer[feld_X + richtung2, feld_Y - 1] = 0;
  83.             }
  84.         }
  85.         private bool DrunterPrüfen()
  86.         {
  87.             if (feld_Y <= 10)
  88.             {
  89.                 if (Spielfeld[feld_X, feld_Y + 1] == 1 && Spielfeld[feld_X, feld_Y + 2] == 1)
  90.                 {
  91.                     if (SpielfeldFarbe[feld_X, feld_Y + 1] == panel.BackColor.ToString() && SpielfeldFarbe[feld_X, feld_Y + 2] == panel.BackColor.ToString())
  92.                     {
  93.                         panel = (Panel)Panels[SpielfeldNummer[feld_X, feld_Y] - 1];
  94.                         Controls.Remove(panel);
  95.                         panel.Dispose();
  96.                         panel = (Panel)Panels[SpielfeldNummer[feld_X, feld_Y + 1] - 1];
  97.                         Controls.Remove(panel);
  98.                         panel.Dispose();
  99.                         panel = (Panel)Panels[SpielfeldNummer[feld_X, feld_Y + 2] - 1];
  100.                         Controls.Remove(panel);
  101.                         panel.Dispose();
  102.                         Spielfeld[feld_X, feld_Y] = 0;
  103.                         Spielfeld[feld_X, feld_Y + 1] = 0;
  104.                         Spielfeld[feld_X, feld_Y + 2] = 0;
  105.                         SpielfeldNummer[feld_X, feld_Y] = 0;
  106.                         SpielfeldNummer[feld_X, feld_Y + 1] = 0;
  107.                         SpielfeldNummer[feld_X, feld_Y + 2] = 0;
  108.                         SpielfeldFarbe[feld_X, feld_Y] = "";
  109.                         SpielfeldFarbe[feld_X, feld_Y + 1] = "";
  110.                         SpielfeldFarbe[feld_X, feld_Y + 2] = "";
  111.                     }
  112.                 }
  113.             }
  114.         }
  115.         private bool NebenPrüfen()
  116.         {
  117.             if (feld_X == 5)
  118.             {
  119.                 if (Spielfeld[feld_X - 1, feld_Y] == 1 && Spielfeld[feld_X - 2, feld_Y] == 1)
  120.                 {
  121.                     if (SpielfeldFarbe[feld_X - 1, feld_Y] == panel.BackColor.ToString() && SpielfeldFarbe[feld_X - 2, feld_Y] == panel.BackColor.ToString())
  122.                     {
  123.                         panel = (Panel)Panels[SpielfeldNummer[feld_X, feld_Y] - 1];
  124.                         Controls.Remove(panel);
  125.                         panel.Dispose();
  126.                         panel = (Panel)Panels[SpielfeldNummer[feld_X - 1, feld_Y] - 1];
  127.                         Controls.Remove(panel);
  128.                         panel.Dispose();
  129.                         panel = (Panel)Panels[SpielfeldNummer[feld_X - 2, feld_Y] - 1];
  130.                         Controls.Remove(panel);
  131.                         panel.Dispose();
  132.                         Spielfeld[feld_X, feld_Y] = 0;
  133.                         Spielfeld[feld_X - 1, feld_Y] = 0;
  134.                         Spielfeld[feld_X - 2, feld_Y] = 0;
  135.                         SpielfeldNummer[feld_X, feld_Y] = 0;
  136.                         SpielfeldNummer[feld_X - 1, feld_Y] = 0;
  137.                         SpielfeldNummer[feld_X - 2, feld_Y] = 0;
  138.                         SpielfeldFarbe[feld_X, feld_Y] = "";
  139.                         SpielfeldFarbe[feld_X - 1, feld_Y] = "";
  140.                         SpielfeldFarbe[feld_X - 2, feld_Y] = "";
  141.                         NachRücken(-1, -2);
  142.                         return true;
  143.                     }
  144.                 }
  145.             }
  146.  
  147.             if (feld_X == 4)
  148.             {
  149.                 if (Spielfeld[feld_X - 1, feld_Y] == 1 && Spielfeld[feld_X + 1, feld_Y] == 1)
  150.                 {
  151.                     if (SpielfeldFarbe[feld_X - 1, feld_Y] == panel.BackColor.ToString() && SpielfeldFarbe[feld_X + 1, feld_Y] == panel.BackColor.ToString())
  152.                     {
  153.                         panel = (Panel)Panels[SpielfeldNummer[feld_X, feld_Y] - 1];
  154.                         Controls.Remove(panel);
  155.                         panel.Dispose();
  156.                         panel = (Panel)Panels[SpielfeldNummer[feld_X - 1, feld_Y] - 1];
  157.                         Controls.Remove(panel);
  158.                         panel.Dispose();
  159.                         panel = (Panel)Panels[SpielfeldNummer[feld_X + 1, feld_Y] - 1];
  160.                         Controls.Remove(panel);
  161.                         panel.Dispose();
  162.                         Spielfeld[feld_X, feld_Y] = 0;
  163.                         Spielfeld[feld_X - 1, feld_Y] = 0;
  164.                         Spielfeld[feld_X + 1, feld_Y] = 0;
  165.                         SpielfeldNummer[feld_X, feld_Y] = 0;
  166.                         SpielfeldNummer[feld_X - 1, feld_Y] = 0;
  167.                         SpielfeldNummer[feld_X + 1, feld_Y] = 0;
  168.                         SpielfeldFarbe[feld_X, feld_Y] = "";
  169.                         SpielfeldFarbe[feld_X - 1, feld_Y] = "";
  170.                         SpielfeldFarbe[feld_X + 1, feld_Y] = "";
  171.                         NachRücken(-1, +1);
  172.                         return true;
  173.                     }
  174.                 }
  175.             }
  176.  
  177.             if (feld_X == 3 || feld_X == 2)
  178.             {
  179.                 // 2 Nach Rechts
  180.                 if (Spielfeld[feld_X + 1, feld_Y] == 1 && Spielfeld[feld_X + 2, feld_Y] == 1)
  181.                 {
  182.                     if (SpielfeldFarbe[feld_X + 1, feld_Y] == panel.BackColor.ToString() && SpielfeldFarbe[feld_X + 2, feld_Y] == panel.BackColor.ToString())
  183.                     {
  184.                         panel = (Panel)Panels[SpielfeldNummer[feld_X, feld_Y] - 1];
  185.                         Controls.Remove(panel);
  186.                         panel.Dispose();
  187.                         panel = (Panel)Panels[SpielfeldNummer[feld_X + 1, feld_Y] - 1];
  188.                         Controls.Remove(panel);
  189.                         panel.Dispose();
  190.                         panel = (Panel)Panels[SpielfeldNummer[feld_X + 2, feld_Y] - 1];
  191.                         Controls.Remove(panel);
  192.                         panel.Dispose();
  193.                         Spielfeld[feld_X, feld_Y] = 0;
  194.                         Spielfeld[feld_X + 1, feld_Y] = 0;
  195.                         Spielfeld[feld_X + 2, feld_Y] = 0;
  196.                         SpielfeldNummer[feld_X, feld_Y] = 0;
  197.                         SpielfeldNummer[feld_X + 1, feld_Y] = 0;
  198.                         SpielfeldNummer[feld_X + 2, feld_Y] = 0;
  199.                         SpielfeldFarbe[feld_X, feld_Y] = "";
  200.                         SpielfeldFarbe[feld_X + 1, feld_Y] = "";
  201.                         SpielfeldFarbe[feld_X + 2, feld_Y] = "";
  202.                         NachRücken(+1, +2);
  203.                         return true;
  204.                     }
  205.                 }
  206.                 // 2 Nach Links
  207.                 else if (Spielfeld[feld_X - 1, feld_Y] == 1 && Spielfeld[feld_X - 2, feld_Y] == 1)
  208.                 {
  209.                     if (SpielfeldFarbe[feld_X - 1, feld_Y] == panel.BackColor.ToString() && SpielfeldFarbe[feld_X - 2, feld_Y] == panel.BackColor.ToString())
  210.                     {
  211.                         panel = (Panel)Panels[SpielfeldNummer[feld_X, feld_Y] - 1];
  212.                         Controls.Remove(panel);
  213.                         panel.Dispose();
  214.                         panel = (Panel)Panels[SpielfeldNummer[feld_X - 1, feld_Y] - 1];
  215.                         Controls.Remove(panel);
  216.                         panel.Dispose();
  217.                         panel = (Panel)Panels[SpielfeldNummer[feld_X - 2, feld_Y] - 1];
  218.                         Controls.Remove(panel);
  219.                         panel.Dispose();
  220.                         Spielfeld[feld_X, feld_Y] = 0;
  221.                         Spielfeld[feld_X - 1, feld_Y] = 0;
  222.                         Spielfeld[feld_X - 2, feld_Y] = 0;
  223.                         SpielfeldNummer[feld_X, feld_Y] = 0;
  224.                         SpielfeldNummer[feld_X - 1, feld_Y] = 0;
  225.                         SpielfeldNummer[feld_X - 2, feld_Y] = 0;
  226.                         SpielfeldFarbe[feld_X, feld_Y] = "";
  227.                         SpielfeldFarbe[feld_X - 1, feld_Y] = "";
  228.                         SpielfeldFarbe[feld_X - 2, feld_Y] = "";
  229.                         NachRücken(-1, -2);
  230.                         return true;
  231.                     }
  232.                 }
  233.                     // 1 Nach Links & 1 Nach Rechts
  234.                 else if (Spielfeld[feld_X - 1, feld_Y] == 1 && Spielfeld[feld_X + 1, feld_Y] == 1)
  235.                 {
  236.                     if (SpielfeldFarbe[feld_X - 1, feld_Y] == panel.BackColor.ToString() && SpielfeldFarbe[feld_X + 1, feld_Y] == panel.BackColor.ToString())
  237.                     {
  238.                         panel = (Panel)Panels[SpielfeldNummer[feld_X, feld_Y] - 1];
  239.                         Controls.Remove(panel);
  240.                         panel.Dispose();
  241.                         panel = (Panel)Panels[SpielfeldNummer[feld_X - 1, feld_Y] - 1];
  242.                         Controls.Remove(panel);
  243.                         panel.Dispose();
  244.                         panel = (Panel)Panels[SpielfeldNummer[feld_X + 1, feld_Y] - 1];
  245.                         Controls.Remove(panel);
  246.                         panel.Dispose();
  247.                         Spielfeld[feld_X, feld_Y] = 0;
  248.                         Spielfeld[feld_X - 1, feld_Y] = 0;
  249.                         Spielfeld[feld_X + 1, feld_Y] = 0;
  250.                         SpielfeldNummer[feld_X, feld_Y] = 0;
  251.                         SpielfeldNummer[feld_X - 1, feld_Y] = 0;
  252.                         SpielfeldNummer[feld_X + 1, feld_Y] = 0;
  253.                         SpielfeldFarbe[feld_X, feld_Y] = "";
  254.                         SpielfeldFarbe[feld_X - 1, feld_Y] = "";
  255.                         SpielfeldFarbe[feld_X + 1, feld_Y] = "";
  256.                         NachRücken(-1, +1);
  257.                         return true;
  258.                     }
  259.                 }
  260.             }
  261.             if (feld_X == 0)
  262.             {
  263.                 // 2 Nach Rechts
  264.                 if (Spielfeld[feld_X + 1, feld_Y] == 1 && Spielfeld[feld_X + 2, feld_Y] == 1)
  265.                 {
  266.                     if (SpielfeldFarbe[feld_X + 1, feld_Y] == panel.BackColor.ToString() && SpielfeldFarbe[feld_X + 2, feld_Y] == panel.BackColor.ToString())
  267.                     {
  268.                         panel = (Panel)Panels[SpielfeldNummer[feld_X, feld_Y] - 1];
  269.                         Controls.Remove(panel);
  270.                         panel.Dispose();
  271.                         panel = (Panel)Panels[SpielfeldNummer[feld_X + 1, feld_Y] - 1];
  272.                         Controls.Remove(panel);
  273.                         panel.Dispose();
  274.                         panel = (Panel)Panels[SpielfeldNummer[feld_X + 2, feld_Y] - 1];
  275.                         Controls.Remove(panel);
  276.                         panel.Dispose();
  277.                         Spielfeld[feld_X, feld_Y] = 0;
  278.                         Spielfeld[feld_X + 1, feld_Y] = 0;
  279.                         Spielfeld[feld_X + 2, feld_Y] = 0;
  280.                         SpielfeldNummer[feld_X, feld_Y] = 0;
  281.                         SpielfeldNummer[feld_X + 1, feld_Y] = 0;
  282.                         SpielfeldNummer[feld_X + 2, feld_Y] = 0;
  283.                         SpielfeldFarbe[feld_X, feld_Y] = "";
  284.                         SpielfeldFarbe[feld_X + 1, feld_Y] = "";
  285.                         SpielfeldFarbe[feld_X + 2, feld_Y] = "";
  286.                         NachRücken(+1, +2);
  287.                         return true;
  288.                     }
  289.                 }
  290.             }
  291.  
  292.             if (feld_X == 1)
  293.             {
  294.                 // 1 Nach Links & 1 Nach Rechts
  295.                 if (Spielfeld[feld_X - 1, feld_Y] == 1 && Spielfeld[feld_X + 1, feld_Y] == 1)
  296.                 {
  297.                     if (SpielfeldFarbe[feld_X - 1, feld_Y] == panel.BackColor.ToString() && SpielfeldFarbe[feld_X + 1, feld_Y] == panel.BackColor.ToString())
  298.                     {
  299.                         panel = (Panel)Panels[SpielfeldNummer[feld_X, feld_Y] - 1];
  300.                         Controls.Remove(panel);
  301.                         panel.Dispose();
  302.                         panel = (Panel)Panels[SpielfeldNummer[feld_X - 1, feld_Y] - 1];
  303.                         Controls.Remove(panel);
  304.                         panel.Dispose();
  305.                         panel = (Panel)Panels[SpielfeldNummer[feld_X + 1, feld_Y] - 1];
  306.                         Controls.Remove(panel);
  307.                         panel.Dispose();
  308.                         Spielfeld[feld_X, feld_Y] = 0;
  309.                         Spielfeld[feld_X - 1, feld_Y] = 0;
  310.                         Spielfeld[feld_X + 1, feld_Y] = 0;
  311.                         SpielfeldNummer[feld_X, feld_Y] = 0;
  312.                         SpielfeldNummer[feld_X - 1, feld_Y] = 0;
  313.                         SpielfeldNummer[feld_X + 1, feld_Y] = 0;
  314.                         SpielfeldFarbe[feld_X, feld_Y] = "";
  315.                         SpielfeldFarbe[feld_X - 1, feld_Y] = "";
  316.                         SpielfeldFarbe[feld_X + 1, feld_Y] = "";
  317.                         NachRücken(-1, +1);
  318.                         return true;
  319.                     }
  320.                    
  321.                 }
  322.                     // 2 Nach Rechts
  323.                 else if (Spielfeld[feld_X + 1, feld_Y] == 1 && Spielfeld[feld_X + 2, feld_Y] == 1)
  324.                 {
  325.                     if (SpielfeldFarbe[feld_X + 1, feld_Y] == panel.BackColor.ToString() && SpielfeldFarbe[feld_X + 2, feld_Y] == panel.BackColor.ToString())
  326.                     {
  327.                         panel = (Panel)Panels[SpielfeldNummer[feld_X, feld_Y] - 1];
  328.                         Controls.Remove(panel);
  329.                         panel.Dispose();
  330.                         panel = (Panel)Panels[SpielfeldNummer[feld_X + 1, feld_Y] - 1];
  331.                         Controls.Remove(panel);
  332.                         panel.Dispose();
  333.                         panel = (Panel)Panels[SpielfeldNummer[feld_X + 2, feld_Y] - 1];
  334.                         Controls.Remove(panel);
  335.                         panel.Dispose();
  336.                         Spielfeld[feld_X, feld_Y] = 0;
  337.                         Spielfeld[feld_X + 1, feld_Y] = 0;
  338.                         Spielfeld[feld_X + 2, feld_Y] = 0;
  339.                         SpielfeldNummer[feld_X, feld_Y] = 0;
  340.                         SpielfeldNummer[feld_X + 1, feld_Y] = 0;
  341.                         SpielfeldNummer[feld_X + 2, feld_Y] = 0;
  342.                         SpielfeldFarbe[feld_X, feld_Y] = "";
  343.                         SpielfeldFarbe[feld_X + 1, feld_Y] = "";
  344.                         SpielfeldFarbe[feld_X + 2, feld_Y] = "";
  345.                         NachRücken(+1, +2);
  346.                         return true;
  347.                     }
  348.                 }
  349.             }
  350.         }
  351.         private void AllePrüfen()
  352.         {
  353.            
  354.             do
  355.             {
  356.                 DrunterPrüfen();
  357.                 NebenPrüfen();
  358.             }
  359.             while (DrunterPrüfen() == true && NebenPrüfen() == true);
  360.         }
  361.         private void Form1_KeyDown(object sender, KeyEventArgs e)
  362.         {
  363.             if (!paused)
  364.             {
  365.                 if (e.KeyCode == Keys.A)
  366.                 {
  367.                     if (panel.Location.X - 7 > min_X && Spielfeld[feld_X - 1, feld_Y] == 0)
  368.                     {
  369.                         panel.Location = new Point(panel.Location.X - 25, panel.Location.Y);
  370.                         feld_X--;
  371.                     }
  372.                 }
  373.             }
  374.             if (e.KeyCode == Keys.D)
  375.             {
  376.                 if (!paused)
  377.                 {
  378.                     if (panel.Location.X + 7 < max_X && Spielfeld[feld_X + 1, feld_Y] == 0)
  379.                     {
  380.                         panel.Location = new Point(panel.Location.X + 25, panel.Location.Y);
  381.                         feld_X++;
  382.                     }
  383.                 }
  384.             }
  385.             if (e.KeyCode == Keys.Q)
  386.             {
  387.                 if (!paused)
  388.                 {
  389.                     int position_X = 0;
  390.                     switch (feld_X)
  391.                     {
  392.                         case 0:
  393.                             position_X = 15;
  394.                             break;
  395.                         case 1:
  396.                             position_X = 40;
  397.                             break;
  398.                         case 2:
  399.                             position_X = 65;
  400.                             break;
  401.                         case 3:
  402.                             position_X = 90;
  403.                             break;
  404.                         case 4:
  405.                             position_X = 115;
  406.                             break;
  407.                         case 5:
  408.                             position_X = 140;
  409.                             break;
  410.                     }
  411.                     if (Spielfeld[feld_X, 12] == 0)
  412.                     {
  413.                         panel.Location = new Point(position_X, 305);
  414.                         feld_Y = 12;
  415.                         Anzeigen();
  416.                     }
  417.                     else if (Spielfeld[feld_X, 11] == 0)
  418.                     {
  419.                         panel.Location = new Point(position_X, 280);
  420.                         feld_Y = 11;
  421.                         Anzeigen();
  422.                     }
  423.                     else if (Spielfeld[feld_X, 10] == 0)
  424.                     {
  425.                         panel.Location = new Point(position_X, 255);
  426.                         feld_Y = 10;
  427.                         Anzeigen();
  428.                     }
  429.                     else if (Spielfeld[feld_X, 9] == 0)
  430.                     {
  431.                         panel.Location = new Point(position_X, 230);
  432.                         feld_Y = 9;
  433.                         Anzeigen();
  434.                     }
  435.                     else if (Spielfeld[feld_X, 8] == 0)
  436.                     {
  437.                         panel.Location = new Point(position_X, 205);
  438.                         feld_Y = 8;
  439.                         Anzeigen();
  440.                     }
  441.                     else if (Spielfeld[feld_X, 7] == 0)
  442.                     {
  443.                         panel.Location = new Point(position_X, 180);
  444.                         feld_Y = 7;
  445.                         Anzeigen();
  446.                     }
  447.                     else if (Spielfeld[feld_X, 6] == 0)
  448.                     {
  449.                         panel.Location = new Point(position_X, 155);
  450.                         feld_Y = 6;
  451.                         Anzeigen();
  452.                     }
  453.                     else if (Spielfeld[feld_X, 5] == 0)
  454.                     {
  455.                         panel.Location = new Point(position_X, 135);
  456.                         feld_Y = 5;
  457.                         Anzeigen();
  458.                     }
  459.                     else if (Spielfeld[feld_X, 4] == 0)
  460.                     {
  461.                         panel.Location = new Point(position_X, 110);
  462.                         feld_Y = 4;
  463.                         Anzeigen();
  464.                     }
  465.                     else if (Spielfeld[feld_X, 3] == 0)
  466.                     {
  467.                         panel.Location = new Point(position_X, 85);
  468.                         feld_Y = 3;
  469.                         Anzeigen();
  470.                     }
  471.                     else if (Spielfeld[feld_X, 2] == 0)
  472.                     {
  473.                         panel.Location = new Point(position_X, 60);
  474.                         feld_Y = 2;
  475.                         Anzeigen();
  476.                     }
  477.                     else if (Spielfeld[feld_X, 1] == 0)
  478.                     {
  479.                         panel.Location = new Point(position_X, 35);
  480.                         feld_Y = 1;
  481.                         Anzeigen();
  482.                     }
  483.                 }
  484.             }
  485.             if (e.KeyCode == Keys.E)
  486.             {
  487.                 Close();
  488.             }
  489.         }
  490.         private void Anzeigen()
  491.         {
  492.             Punkte += PunktePlus;
  493.             lblPunkte.Text = Punkte.ToString();
  494.             Spielfeld[feld_X, feld_Y] = 1;
  495.             SpielfeldFarbe[feld_X, feld_Y] = panel.BackColor.ToString();
  496.             SpielfeldNummer[feld_X, feld_Y] = AnzahlPanels;
  497.             if (feld_Y <= 10)
  498.             AllePrüfen();
  499.             feld_X = 2;
  500.             feld_Y = 0;
  501.             PanelAdd();
  502.         }
  503.         private void timer1_Tick(object sender, EventArgs e)
  504.         {
  505.             if (panel.Location.Y == 305)
  506.             {
  507.                 Punkte += PunktePlus;
  508.                 lblPunkte.Text = Punkte.ToString();
  509.                 Spielfeld[feld_X, feld_Y] = 1;
  510.                 SpielfeldFarbe[feld_X, feld_Y] = panel.BackColor.ToString();
  511.                 SpielfeldNummer[feld_X, feld_Y] = AnzahlPanels;
  512.                 NebenPrüfen();
  513.                 feld_X = 2;
  514.                 feld_Y = 0;
  515.                 PanelAdd();
  516.             }
  517.             else if (Spielfeld[feld_X, feld_Y +1] == 0)
  518.             {
  519.                 feld_Y++;
  520.                 panel.Location = new Point(panel.Location.X, panel.Location.Y + 25);
  521.             }
  522.             else
  523.             {
  524.                 if (Spielfeld[2, 0 + 1] == 1)
  525.                 {
  526.                     Verloren();
  527.                 }
  528.                 else
  529.                 {
  530.                     Punkte += PunktePlus;
  531.                     lblPunkte.Text = Punkte.ToString();
  532.                     Spielfeld[feld_X, feld_Y] = 1;
  533.                     SpielfeldFarbe[feld_X,feld_Y] = panel.BackColor.ToString();
  534.                     SpielfeldNummer[feld_X, feld_Y] = AnzahlPanels;
  535.                     if (feld_Y <= 10)
  536.                     AllePrüfen();
  537.                     if (Spielfeld[0, 0] == 1 && Spielfeld[0, 1] == 1 && Spielfeld[0, 2] == 1 && Spielfeld[0, 3] == 1 && Spielfeld[0, 4] == 1 && Spielfeld[0, 5] == 1 && Spielfeld[0, feld_Y] == 1)
  538.                     {
  539.                         timer1.Enabled = false;
  540.                         MessageBox.Show("Game Over");
  541.                     }
  542.                     feld_X = 2;
  543.                     feld_Y = 0;
  544.                     PanelAdd();
  545.                 }
  546.             }
  547.         }
  548.         private void Verloren()
  549.         {
  550.             timer1.Enabled = false;
  551.             MessageBox.Show("Game Over");
  552.             for (int i = 0; i < Panels.Count; i++)
  553.             {
  554.                 panel = (Panel)Panels[i];
  555.                 panel.Dispose();
  556.             }
  557.  
  558.             Array.Clear(Spielfeld, 0, Spielfeld.Length);
  559.             AnzahlPanels = 0;
  560.             Spielfeld[feld_X, feld_Y] = 1;
  561.             Panels.Clear();
  562.             btnStartoderPause.Text = "Start";
  563.             if (Punkte >= 1000 && Punkte < 10000)
  564.             {
  565.                 lbLast10.Text += "Runde " + RundenGespielt + ":" + Punkte.ToString().Remove(1, 3) + "," + Punkte.ToString().Remove(2, 2).Remove(0, 1) + "k" + "\n ";
  566.             }
  567.             else if (Punkte < 1000)
  568.                 lbLast10.Text += "Runde " + RundenGespielt + ":" + Punkte.ToString() + "\n ";
  569.             else
  570.                 lbLast10.Text += "Runde " + RundenGespielt + ":" + Punkte.ToString().Remove(2, 3) + "," + Punkte.ToString().Remove(3, 2).Remove(0, 2) + "k" + "\n ";
  571.  
  572.  
  573.             Punkte = 0;
  574.             AnzahlPanels = 0;
  575.             lblPunkte.Text = "0";
  576.             PanelAdd();
  577.             RundenGespielt++;
  578.         }
  579.         private void PanelAdd()
  580.         {
  581.             panel = new Panel();
  582.             panel.Size = new Size(25, 25);
  583.             panel.Location = new Point(65, 5);
  584.             int r = RandomNummer(1,3);
  585.             if ( r == 1)
  586.             panel.BackColor = Color.Yellow;
  587.             else if (r == 2)
  588.                 panel.BackColor = Color.Red;
  589.             else
  590.                 panel.BackColor = Color.Green;
  591.             Panels.Add(panel);
  592.             Controls.Add(panel);
  593.             panel = (Panel)Panels[AnzahlPanels];
  594.             AnzahlPanels++;
  595.         }
  596.         private void btnStartoderPause_Click(object sender, EventArgs e)
  597.         {
  598.             if (btnStartoderPause.Text == "Start")
  599.             {
  600.                 timer1.Enabled = true;
  601.                 paused = false;
  602.                 btnStartoderPause.Text = "Pause";
  603.             }
  604.             else if (btnStartoderPause.Text == "Pause")
  605.             {
  606.                 timer1.Enabled = false;
  607.                 paused = true;
  608.                 btnStartoderPause.Text = "Start";
  609.             }
  610.         }
  611.         static int RandomNummer(int min, int max)
  612.         {
  613.             RNGCryptoServiceProvider c = new RNGCryptoServiceProvider();
  614.             byte[] randomNumber = new byte[4];
  615.             c.GetBytes(randomNumber);
  616.             int result = Math.Abs(BitConverter.ToInt32(randomNumber, 0));
  617.             return result % max + min;
  618.         }
  619.         private void btnEnde_Click(object sender, EventArgs e)
  620.         {
  621.             Close();
  622.         }
  623.         private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
  624.         {
  625.             if (!start)
  626.             {
  627.                 switch (comboBox1.Text)
  628.                 {
  629.                     case "Experte":
  630.                         if (paused)
  631.                         MessageBox.Show("Modus zu \"Experte\" geändert.");
  632.  
  633.                         PunktePlus = 50;
  634.                         timer1.Interval = 32;
  635.                         break;
  636.                     case "Fortgeschritten":
  637.                         if (paused)
  638.                         MessageBox.Show("Modus zu \"Fortgeschritten\" geändert.");
  639.  
  640.                         PunktePlus = 40;
  641.                         timer1.Interval = 50;
  642.                         break;
  643.                     case "Amateur":
  644.                         if (paused)
  645.                         MessageBox.Show("Modus zu \"Amateur\" geändert.");
  646.  
  647.                         PunktePlus = 30;
  648.                         timer1.Interval = 73;
  649.                         break;
  650.                     case "Anfänger":
  651.                         if (paused)
  652.                         MessageBox.Show("Modus zu \"Anfänger\" geändert.");
  653.  
  654.                         PunktePlus = 20;
  655.                         timer1.Interval = 85;
  656.                         break;
  657.                     case "Noob":
  658.                         if (paused)
  659.                         MessageBox.Show("Modus zu \"Noob\" geändert.");
  660.  
  661.                         PunktePlus = 10;
  662.                         timer1.Interval = 120;
  663.                         break;
  664.                 }
  665.                 panel.Focus();
  666.             }
  667.         }
  668.        
  669.     }
  670. }
Advertisement
Add Comment
Please, Sign In to add comment