Advertisement
Guest User

Untitled

a guest
Oct 21st, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.12 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.Drawing.Drawing2D;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11.  
  12. namespace ReversiRaiz
  13. {
  14.     public partial class Form1 : Form
  15.     {
  16.         int zetten = 0;
  17.         const int rijen = 6; //breedte
  18.         const int kolommen = 6; //hoogte
  19.         const int kleur = 3; //kleuren
  20.         int[,,] bordstand = new int[kolommen, rijen, kleur];
  21.         Rectangle[,] posities = new Rectangle[kolommen, rijen];
  22.  
  23.         public Form1()
  24.         {
  25.             InitializeComponent();
  26.             panel1.Paint += TekenSteen;
  27.             this.DoubleBuffered = true;
  28.         }
  29.  
  30.         private void Form1_Load(object sender, EventArgs e)
  31.         {
  32.         }
  33.  
  34.         private void panel1_Paint(object sender, PaintEventArgs e)
  35.         {
  36.             // tekent de kolommen
  37.             for (int x = 0; x <= kolommen; x++)
  38.             {
  39.                 e.Graphics.DrawLine(Pens.Gray, x * ((panel1.Width) / kolommen), 0, x * ((panel1.Width) / kolommen), panel1.Height);
  40.             }
  41.  
  42.             // tekent de rijen
  43.             for (int y = 0; y <= rijen; y++)
  44.             {
  45.                 e.Graphics.DrawLine(Pens.Gray, 0, y * ((panel1.Height) / rijen), panel1.Width, y * ((panel1.Height) / rijen));
  46.             }
  47.  
  48.             // zorgt ervoor dat de juiste stenen op het bord staan
  49.             for (int x = 0; x < kolommen; x++)
  50.             {
  51.                 for (int y = 0; y < rijen; y++)
  52.                 {
  53.                     int lenhoog = panel1.Height / kolommen;
  54.                     int lenbreedt = panel1.Width / rijen;
  55.                     posities[x, y] = new Rectangle(x * lenhoog, y * lenbreedt, lenhoog, lenbreedt);
  56.                 }
  57.             }
  58.         }
  59.  
  60.         public void TekenSteen(object o, PaintEventArgs e)
  61.         {
  62.             e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
  63.             try
  64.             {
  65.                 for (int x = 0; x < rijen; x++)
  66.                 {
  67.                     for (int y = 0; y < kolommen; y++)
  68.                     {
  69.                         if (!(bordstand[x, y, 1] == 0))
  70.                         {
  71.                             Brush kleur = GenereerKleur(bordstand[x, y, 1]);
  72.                             e.Graphics.FillEllipse(kleur, posities[x, y]);
  73.                         }
  74.                     }
  75.                 }
  76.  
  77.             }
  78.             catch (Exception ex)
  79.             {
  80.             }
  81.  
  82.         }
  83.  
  84.         public void GetBoxClicked(int mouseX, int mouseY)
  85.         {
  86.  
  87.             int stapX = panel1.Width / rijen;
  88.             int stapY = panel1.Height / kolommen;
  89.             int countX = 0;
  90.             int countY = 0;
  91.  
  92.             for (int x = 0; x < mouseX; x += stapX)
  93.             {
  94.                 countX++;
  95.             }
  96.  
  97.             for (int y = 0; y < mouseY; y += stapY)
  98.             {
  99.                 countY++;
  100.             }
  101.             countX -= 1;
  102.             countY -= 1;
  103.  
  104.             bordstand[countX, countY, 1] = BepaalKleur();
  105.  
  106.             //boxcount++;
  107.         }
  108.  
  109.         public Brush GenereerKleur(int nummer)
  110.         {
  111.             switch (nummer)
  112.             {
  113.                 default:
  114.                     return Brushes.Blue;
  115.                 case 1:
  116.                     return Brushes.Blue;
  117.                 case 2:
  118.                     return Brushes.Red;
  119.             }
  120.  
  121.         }
  122.  
  123.         public int BepaalKleur()
  124.         {
  125.             if (zetten == 0)
  126.             {
  127.                 return 1;
  128.             }
  129.             if (zetten % 2 == 0)
  130.             {
  131.                 //even
  132.                 return 1;
  133.             }
  134.             else
  135.                 return 2;
  136.         }
  137.  
  138.         private void button1_Click(object sender, EventArgs e)
  139.         {
  140.         }
  141.  
  142.         private void panel1_MouseClick(object sender, MouseEventArgs e)
  143.         {
  144.             panel1.Invalidate();
  145.             GetBoxClicked(e.X, e.Y);
  146.             zetten++;
  147.             //MessageBox.Show(box.x.ToString() + "; " + box.y.ToString());
  148.         }
  149.     }
  150. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement