Advertisement
MatthijsFontys

Memory

Oct 5th, 2018
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.89 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.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.Threading;
  11.  
  12. namespace memory
  13. {
  14.  
  15.  
  16.     public partial class formMain : Form
  17.     {
  18.         public formMain()
  19.         {
  20.             InitializeComponent();
  21.             Random random = new Random();
  22.             string[] memoryPairs = new string[] {"0", "1", "2", "3", "4", "5"}; // De tags die toegekend kunnen worden
  23.             int[] memoryAmountLeft = new int[] {2, 2, 2, 2, 2, 2 }; //Hoeveel er nog van uitgedeeld kan worden
  24.  
  25.             // Voor elke picturebox die een labeltoegekend moet krijgen
  26.             for (int i = 0; i < 12; i++)
  27.             {
  28.                 PictureBox pb = this.Controls.Find("pbMemory"+i, true).FirstOrDefault() as PictureBox;
  29.                 int memoryIndex = random.Next(memoryPairs.Length);
  30.                 pb.Tag = null;
  31.                 while (pb.Tag == null)
  32.                 {
  33.                     if (memoryAmountLeft[memoryIndex] > 0)
  34.                     {   // Zet de tag
  35.                         pb.Tag = memoryPairs[memoryIndex];
  36.  
  37.                         // Verminder hoeveel er van deze tag over is met 1
  38.                         memoryAmountLeft[memoryIndex] -= 1;
  39.                     }
  40.                     else {
  41.                         memoryIndex = random.Next(memoryPairs.Length);
  42.                     }
  43.                 }
  44.  
  45.             }
  46.         }
  47.  
  48.         int clickCounter = 0;
  49.         PictureBox previousPictureBox;
  50.         private void memory_Click(object sender, EventArgs e)
  51.         {
  52.             PictureBox currentSender = sender as PictureBox;
  53.             if (currentSender.Image == null){
  54.                 clickCounter++;
  55.             }
  56.             string imagePath = Application.StartupPath + @"\memory_kaarten\";
  57.             currentSender.SizeMode = PictureBoxSizeMode.StretchImage;
  58.             currentSender.Image = Image.FromFile(imagePath + currentSender.Tag as string + ".png");
  59.             Application.DoEvents();
  60.  
  61.             if (clickCounter == 1){
  62.                 previousPictureBox = currentSender; // Eerst geklikte picturebox opslaan
  63.             }
  64.             if (clickCounter == 2) {
  65.                 if (previousPictureBox.Tag as string == currentSender.Tag as string){ // Als de memory kaarten gelijk zijn
  66.                 }
  67.                 else { // Als ze niet hetzelfde zijn de boxen terugdraaien
  68.                     Thread.Sleep(500);
  69.                     currentSender.Image = null;
  70.                     previousPictureBox.Image = null;
  71.                 }
  72.                 if (clickCounter > 2) {
  73.                     currentSender.Image = null;
  74.                     previousPictureBox.Image = null;
  75.                 }
  76.  
  77.                 clickCounter = 0;
  78.             }
  79.  
  80.         }
  81.  
  82.     }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement