Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace ttfegame
- {
- public partial class Form1 : Form
- {
- int[] Value = new int[16];
- Image[] Block = new Image[16];
- int blockTag = 0;
- int block = 0;
- bool tileMoved_or_Merged = false;
- int[] tileAvailability = new int[16];
- int emptyTiles = 0;
- int tileTag = 0;
- int randomIndex = 0;
- Random random = new Random();
- string backImage = @"C:\Users\Raz\Documents\2048 Game\Background.png";
- public Form1()
- {
- InitializeComponent();
- this.BackgroundImage = new Bitmap(backImage);
- addNewTile();
- }
- private void changeAllBackColors()
- {
- for (int Tag = 0; Tag < 16; Tag += 1)
- {
- switch (Value[Tag])
- {
- case 0:
- Block[Tag] = new Bitmap(@"C:\Users\Raz\Documents\2048 Game\tile0.png");
- break;
- case 2:
- Block[Tag] = new Bitmap(@"C:\Users\Raz\Documents\2048 Game\tile2.png");
- break;
- case 4:
- Block[Tag] = new Bitmap(@"C:\Users\Raz\Documents\2048 Game\tile4.png");
- break;
- case 8:
- Block[Tag] = new Bitmap(@"C:\Users\Raz\Documents\2048 Game\tile8.png");
- break;
- case 16:
- Block[Tag] = new Bitmap(@"C:\Users\Raz\Documents\2048 Game\tile16.png");
- break;
- case 32:
- Block[Tag] = new Bitmap(@"C:\Users\Raz\Documents\2048 Game\tile32.png");
- break;
- case 64:
- Block[Tag] = new Bitmap(@"C:\Users\Raz\Documents\2048 Game\tile64.png");
- break;
- case 128:
- Block[Tag] = new Bitmap(@"C:\Users\Raz\Documents\2048 Game\tile128.png");
- break;
- case 256:
- Block[Tag] = new Bitmap(@"C:\Users\Raz\Documents\2048 Game\tile256.png");
- break;
- case 512:
- Block[Tag] = new Bitmap(@"C:\Users\Raz\Documents\2048 Game\tile512.png");
- break;
- case 1024:
- Block[Tag] = new Bitmap(@"C:\Users\Raz\Documents\2048 Game\tile1024.png");
- break;
- case 2048:
- Block[Tag] = new Bitmap(@"C:\Users\Raz\Documents\2048 Game\tile2048.png");
- break;
- }
- }
- }
- private void timer1_Tick(object sender, EventArgs e)
- {
- Invalidate();
- changeControlsInformations();
- changeAllBackColors();
- }
- private void addNewTile()
- {
- tileTag = 0;
- emptyTiles = 0;
- System.Array.Resize(ref tileAvailability, 16);
- for (int time = 0; time < 16; time += 1)
- {
- tileAvailability[time] = 0;
- }
- for (int loop = 0; loop < 16; loop += 1)
- {
- if (Value[loop] == 0)
- {
- tileAvailability[tileTag] = loop;
- tileTag += 1;
- emptyTiles += 1;
- }
- }
- if (emptyTiles > 0)
- {
- System.Array.Resize(ref tileAvailability, emptyTiles);
- randomIndex = random.Next(0, emptyTiles - 1);
- Value[tileAvailability[randomIndex]] = 2;
- }
- }
- private void changeControlsInformations()
- {
- block0.Image = Block[0];
- block1.Image = Block[1];
- block2.Image = Block[2];
- block3.Image = Block[3];
- block4.Image = Block[4];
- block5.Image = Block[5];
- block6.Image = Block[6];
- block7.Image = Block[7];
- block8.Image = Block[8];
- block9.Image = Block[9];
- block10.Image = Block[10];
- block11.Image = Block[11];
- block12.Image = Block[12];
- block13.Image = Block[13];
- block14.Image = Block[14];
- block15.Image = Block[15];
- }
- private void Form1_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyData == Keys.Up)
- {
- moveUp();
- }
- if (e.KeyData == Keys.Down)
- {
- moveDown();
- }
- if (e.KeyData == Keys.Left)
- {
- moveLeft();
- }
- if (e.KeyData == Keys.Right)
- {
- moveRight();
- }
- if (e.KeyData == Keys.R)
- {
- for (int t = 0; t < 16; t += 1)
- {
- Value[t] = 0;
- }
- addNewTile();
- }
- if (e.KeyData == Keys.Space)
- {
- for (int t = 0; t < 16; t += 1)
- {
- Value[t] = 32;
- }
- }
- }
- private void moveUp()
- {
- for (int loop1 = 0; loop1 < 4; loop1 += 1)
- {
- block = blockTag;
- if (Value[block] == Value[block + 4])
- {
- Value[block] = Value[block] * 2;
- tileMoved_or_Merged = true;
- Value[block + 4] = 0;
- }
- if (Value[block + 4] == Value[block + 8] && Value[block] != Value[block + 4])
- {
- Value[block + 4] = Value[block + 4] * 2;
- tileMoved_or_Merged = true;
- Value[block + 8] = 0;
- }
- if (Value[block + 8] == Value[block + 12] && Value[block + 4] != Value[block + 8])
- {
- Value[block + 8] = Value[block + 8] * 2;
- tileMoved_or_Merged = true;
- Value[block + 12] = 0;
- }
- for (int loop2 = 0; loop2 < 3; loop2 += 1)
- {
- if (block == 0 || block == 1 || block == 2 || block == 3)
- {
- if (Value[block] == 0)
- {
- Value[block] = Value[block + 4];
- Value[block + 4] = 0;
- tileMoved_or_Merged = true;
- }
- }
- if (block == 4 || block == 5 || block == 6 || block == 7)
- {
- if (Value[block] == 0 && Value[block - 4] == 0)
- {
- Value[block - 4] = Value[block + 4];
- Value[block + 4] = 0;
- tileMoved_or_Merged = true;
- }
- else if (Value[block] == 0)
- {
- Value[block] = Value[block + 4];
- Value[block + 4] = 0;
- tileMoved_or_Merged = true;
- if (Value[block] == Value[block - 4])
- {
- Value[block - 4] = Value[block] * 2;
- Value[block] = 0;
- tileMoved_or_Merged = true;
- }
- }
- }
- if (block == 8 || block == 9 || block == 10 || block == 11)
- {
- if (Value[block] == 0 && Value[block - 4] == 0 && Value[block - 8] == 0)
- {
- Value[block - 8] = Value[block + 4];
- Value[block + 4] = 0;
- tileMoved_or_Merged = true;
- }
- else if (Value[block] == 0 && Value[block - 4] == 0)
- {
- Value[block - 4] = Value[block + 4];
- Value[block + 4] = 0;
- tileMoved_or_Merged = true;
- if (Value[block - 4] == Value[block - 8])
- {
- Value[block - 8] = Value[block - 4] * 2;
- Value[block - 4] = 0;
- tileMoved_or_Merged = true;
- }
- }
- else if (Value[block] == 0)
- {
- Value[block] = Value[block + 4];
- Value[block + 4] = 0;
- tileMoved_or_Merged = true;
- if (Value[block] == Value[block - 4])
- {
- Value[block - 4] = Value[block] * 2;
- Value[block] = 0;
- tileMoved_or_Merged = true;
- }
- }
- }
- block += 4;
- }
- blockTag += 1;
- }
- blockTag = 0;
- block = 0;
- if (tileMoved_or_Merged == true)
- {
- addNewTile();
- tileMoved_or_Merged = false;
- }
- }
- private void moveDown()
- {
- blockTag = 12;
- for (int loop1 = 0; loop1 < 4; loop1 += 1)
- {
- block = blockTag;
- if (Value[block] == Value[block - 4])
- {
- Value[block] = Value[block] * 2;
- tileMoved_or_Merged = true;
- Value[block - 4] = 0;
- }
- if (Value[block - 4] == Value[block - 8] && Value[block] != Value[block - 4])
- {
- Value[block - 4] = Value[block - 4] * 2;
- tileMoved_or_Merged = true;
- Value[block - 8] = 0;
- }
- if (Value[block - 8] == Value[block - 12] && Value[block - 4] != Value[block - 8])
- {
- Value[block - 8] = Value[block - 8] * 2;
- tileMoved_or_Merged = true;
- Value[block - 12] = 0;
- }
- for (int loop2 = 0; loop2 < 3; loop2 += 1)
- {
- if (block == 12 || block == 13 || block == 14 || block == 15)
- {
- if (Value[block] == 0)
- {
- Value[block] = Value[block - 4];
- Value[block - 4] = 0;
- tileMoved_or_Merged = true;
- }
- }
- if (block == 8 || block == 9 || block == 10 || block == 11)
- {
- if (Value[block] == 0 && Value[block + 4] == 0)
- {
- Value[block + 4] = Value[block - 4];
- Value[block - 4] = 0;
- tileMoved_or_Merged = true;
- }
- else if (Value[block] == 0)
- {
- Value[block] = Value[block - 4];
- Value[block - 4] = 0;
- tileMoved_or_Merged = true;
- if (Value[block] == Value[block + 4])
- {
- Value[block + 4] = Value[block] * 2;
- Value[block] = 0;
- tileMoved_or_Merged = true;
- }
- }
- }
- if (block == 4 || block == 5 || block == 6 || block == 7)
- {
- if (Value[block] == 0 && Value[block + 4] == 0 && Value[block + 8] == 0)
- {
- Value[block + 8] = Value[block - 4];
- Value[block - 4] = 0;
- tileMoved_or_Merged = true;
- }
- else if (Value[block] == 0 && Value[block + 4] == 0)
- {
- Value[block + 4] = Value[block - 4];
- Value[block - 4] = 0;
- tileMoved_or_Merged = true;
- if (Value[block + 4] == Value[block + 8])
- {
- Value[block + 8] = Value[block + 4] * 2;
- Value[block + 4] = 0;
- tileMoved_or_Merged = true;
- }
- }
- else if (Value[block] == 0)
- {
- Value[block] = Value[block - 4];
- Value[block - 4] = 0;
- tileMoved_or_Merged = true;
- if (Value[block] == Value[block + 4])
- {
- Value[block + 4] = Value[block] * 2;
- Value[block] = 0;
- tileMoved_or_Merged = true;
- }
- }
- }
- block -= 4;
- }
- blockTag += 1;
- }
- blockTag = 0;
- block = 0;
- if (tileMoved_or_Merged == true)
- {
- addNewTile();
- tileMoved_or_Merged = false;
- }
- }
- private void moveLeft()
- {
- blockTag = 12;
- for (int loop1 = 0; loop1 < 4; loop1 += 1)
- {
- block = blockTag;
- if (Value[block] == Value[block + 1])
- {
- Value[block] = Value[block] * 2;
- tileMoved_or_Merged = true;
- Value[block + 1] = 0;
- }
- if (Value[block + 1] == Value[block + 2] && Value[block] != Value[block + 1])
- {
- Value[block + 1] = Value[block + 1] * 2;
- tileMoved_or_Merged = true;
- Value[block + 2] = 0;
- }
- if (Value[block + 2] == Value[block + 3] && Value[block + 1] != Value[block + 2])
- {
- Value[block + 2] = Value[block + 2] * 2;
- tileMoved_or_Merged = true;
- Value[block + 3] = 0;
- }
- for (int loop2 = 0; loop2 < 3; loop2 += 1)
- {
- if (block == 0 || block == 4 || block == 8 || block == 12)
- {
- if (Value[block] == 0)
- {
- Value[block] = Value[block + 1];
- Value[block + 1] = 0;
- tileMoved_or_Merged = true;
- }
- }
- if (block == 1 || block == 5 || block == 9 || block == 13)
- {
- if (Value[block] == 0 && Value[block - 1] == 0)
- {
- Value[block - 1] = Value[block + 1];
- Value[block + 1] = 0;
- tileMoved_or_Merged = true;
- }
- else if (Value[block] == 0)
- {
- Value[block] = Value[block + 1];
- Value[block + 1] = 0;
- tileMoved_or_Merged = true;
- if (Value[block] == Value[block - 1])
- {
- Value[block - 1] = Value[block] * 2;
- Value[block] = 0;
- tileMoved_or_Merged = true;
- }
- }
- }
- if (block == 2 || block == 6 || block == 10 || block == 14)
- {
- if (Value[block] == 0 && Value[block - 1] == 0 && Value[block - 2] == 0)
- {
- Value[block - 2] = Value[block + 1];
- Value[block + 1] = 0;
- tileMoved_or_Merged = true;
- }
- else if (Value[block] == 0 && Value[block - 1] == 0)
- {
- Value[block - 1] = Value[block + 1];
- Value[block + 1] = 0;
- tileMoved_or_Merged = true;
- if (Value[block - 1] == Value[block - 2])
- {
- Value[block - 2] = Value[block - 1] * 2;
- Value[block - 1] = 0;
- tileMoved_or_Merged = true;
- }
- }
- else if (Value[block] == 0)
- {
- Value[block] = Value[block + 1];
- Value[block + 1] = 0;
- tileMoved_or_Merged = true;
- if (Value[block] == Value[block - 1])
- {
- Value[block - 1] = Value[block] * 2;
- Value[block] = 0;
- tileMoved_or_Merged = true;
- }
- }
- }
- block += 1;
- }
- blockTag -= 4;
- }
- blockTag = 0;
- block = 0;
- if (tileMoved_or_Merged == true)
- {
- addNewTile();
- tileMoved_or_Merged = false;
- }
- }
- private void moveRight()
- {
- blockTag = 15;
- for (int loop1 = 0; loop1 < 4; loop1 += 1)
- {
- block = blockTag;
- if (Value[block] == Value[block - 1])
- {
- Value[block] = Value[block] * 2;
- tileMoved_or_Merged = true;
- Value[block - 1] = 0;
- }
- if (Value[block - 1] == Value[block - 2] && Value[block] != Value[block - 1])
- {
- Value[block - 1] = Value[block - 1] * 2;
- tileMoved_or_Merged = true;
- Value[block - 2] = 0;
- }
- if (Value[block - 2] == Value[block - 3] && Value[block - 1] != Value[block - 2])
- {
- Value[block - 2] = Value[block - 2] * 2;
- tileMoved_or_Merged = true;
- Value[block - 3] = 0;
- }
- for (int loop2 = 0; loop2 < 3; loop2 += 1)
- {
- if (block == 3 || block == 7 || block == 11 || block == 15)
- {
- if (Value[block] == 0)
- {
- Value[block] = Value[block - 1];
- Value[block - 1] = 0;
- tileMoved_or_Merged = true;
- }
- }
- if (block == 2 || block == 6 || block == 10 || block == 14)
- {
- if (Value[block] == 0 && Value[block + 1] == 0)
- {
- Value[block + 1] = Value[block - 1];
- Value[block - 1] = 0;
- tileMoved_or_Merged = true;
- }
- else if (Value[block] == 0)
- {
- Value[block] = Value[block - 1];
- Value[block - 1] = 0;
- tileMoved_or_Merged = true;
- if (Value[block] == Value[block + 1])
- {
- Value[block + 1] = Value[block] * 2;
- Value[block] = 0;
- tileMoved_or_Merged = true;
- }
- }
- }
- if (block == 1 || block == 5 || block == 9 || block == 13)
- {
- if (Value[block] == 0 && Value[block + 1] == 0 && Value[block + 2] == 0)
- {
- Value[block + 2] = Value[block - 1];
- Value[block - 1] = 0;
- tileMoved_or_Merged = true;
- }
- else if (Value[block] == 0 && Value[block + 1] == 0)
- {
- Value[block + 1] = Value[block - 1];
- Value[block - 1] = 0;
- tileMoved_or_Merged = true;
- if (Value[block + 1] == Value[block + 2])
- {
- Value[block + 2] = Value[block + 1] * 2;
- Value[block + 1] = 0;
- tileMoved_or_Merged = true;
- }
- }
- else if (Value[block] == 0)
- {
- Value[block] = Value[block - 1];
- Value[block - 1] = 0;
- tileMoved_or_Merged = true;
- if (Value[block] == Value[block + 1])
- {
- Value[block + 1] = Value[block] * 2;
- Value[block] = 0;
- tileMoved_or_Merged = true;
- }
- }
- }
- block -= 1;
- }
- blockTag -= 4;
- }
- blockTag = 0;
- block = 0;
- if (tileMoved_or_Merged == true)
- {
- addNewTile();
- tileMoved_or_Merged = false;
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment