private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { FileProvider.Replase(bestScorePath, bestScore.ToString()); if (!flagSaveUser) { UserResultsStorage.Append(user); } }
private void MainForm_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode != Keys.Right && e.KeyCode != Keys.Left && e.KeyCode != Keys.Up && e.KeyCode != Keys.Down) { return; } bool isMerged = true; if (e.KeyCode == Keys.Right) { for (int i = 0; i < mapSize; i++) { for (int j = mapSize - 1; j >= 0; j--) { if (labelsMap[i, j].Text != string.Empty) { for (int k = j - 1; k >= 0; k--) { if (labelsMap[i, k].Text != string.Empty) { if (labelsMap[i, j].Text == labelsMap[i, k].Text) { var number = int.Parse(labelsMap[i, j].Text); user.CountingScore(number); isMerged = false; labelsMap[i, j].Text = (number * 2).ToString(); labelsMap[i, k].Text = string.Empty; } break; } } } } } for (int i = 0; i < mapSize; i++) { for (int j = mapSize - 1; j >= 0; j--) { if (labelsMap[i, j].Text == string.Empty) { for (int k = j - 1; k >= 0; k--) { if (labelsMap[i, k].Text != string.Empty) { labelsMap[i, j].Text = labelsMap[i, k].Text; labelsMap[i, k].Text = string.Empty; break; } } } } } } if (e.KeyCode == Keys.Left) { for (int i = 0; i < mapSize; i++) { for (int j = 0; j < mapSize; j++) { if (labelsMap[i, j].Text != string.Empty) { for (int k = j + 1; k < mapSize; k++) { if (labelsMap[i, k].Text != string.Empty) { if (labelsMap[i, j].Text == labelsMap[i, k].Text) { var number = int.Parse(labelsMap[i, j].Text); user.CountingScore(number); isMerged = false; labelsMap[i, j].Text = (number * 2).ToString(); labelsMap[i, k].Text = string.Empty; } break; } } } } } for (int i = 0; i < mapSize; i++) { for (int j = 0; j < mapSize; j++) { if (labelsMap[i, j].Text == string.Empty) { for (int k = j + 1; k < mapSize; k++) { if (labelsMap[i, k].Text != string.Empty) { labelsMap[i, j].Text = labelsMap[i, k].Text; labelsMap[i, k].Text = string.Empty; break; } } } } } } if (e.KeyCode == Keys.Up) { for (int j = 0; j < mapSize; j++) { for (int i = 0; i < mapSize; i++) { if (labelsMap[i, j].Text != string.Empty) { for (int k = i + 1; k < mapSize; k++) { if (labelsMap[k, j].Text != string.Empty) { if (labelsMap[i, j].Text == labelsMap[k, j].Text) { var number = int.Parse(labelsMap[i, j].Text); user.CountingScore(number); isMerged = false; labelsMap[i, j].Text = (number * 2).ToString(); labelsMap[k, j].Text = string.Empty; } break; } } } } } for (int j = 0; j < mapSize; j++) { for (int i = 0; i < mapSize; i++) { if (labelsMap[i, j].Text == string.Empty) { for (int k = i + 1; k < mapSize; k++) { if (labelsMap[k, j].Text != string.Empty) { labelsMap[i, j].Text = labelsMap[k, j].Text; labelsMap[k, j].Text = string.Empty; break; } } } } } } if (e.KeyCode == Keys.Down) { for (int j = 0; j < mapSize; j++) { for (int i = mapSize - 1; i >= 0; i--) { if (labelsMap[i, j].Text != string.Empty) { for (int k = i - 1; k >= 0; k--) { if (labelsMap[k, j].Text != string.Empty) { if (labelsMap[i, j].Text == labelsMap[k, j].Text) { var number = int.Parse(labelsMap[i, j].Text); user.CountingScore(number); isMerged = false; labelsMap[i, j].Text = (number * 2).ToString(); labelsMap[k, j].Text = string.Empty; } break; } } } } } for (int j = 0; j < mapSize; j++) { for (int i = mapSize - 1; i >= 0; i--) { if (labelsMap[i, j].Text == string.Empty) { for (int k = i - 1; k >= 0; k--) { if (labelsMap[k, j].Text != string.Empty) { labelsMap[i, j].Text = labelsMap[k, j].Text; labelsMap[k, j].Text = string.Empty; break; } } } } } } TryUpdateBestScore(); ShowScores(); if (IsFullMap() && isMerged || Exists2048()) { MessageBox.Show("Конец игры!\n Ваш счет: " + user.Score); UserResultsStorage.Append(user); flagSaveUser = true; DialogResult dialogResult = MessageBox.Show("Хотите начать сначала?", "Ваш выбор", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { RemoveLabels(); InitMap(); GenerateNumber(); user.Score = 0; ShowScores(); } else if (dialogResult == DialogResult.No) { Application.Exit(); } } else { GenerateNumber(); } }