/* * Obsługa przycisku generuj */ private void generateButton_Click(object sender, EventArgs e) { bool ok = true; if (sudo.isEmpty() == false && sudo.saved == false) { if (MessageBox.Show("Czy chcesz zapisać przed utratą danych?", "Zapisz", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) ok = showSaveWindow(); } if (ok == true) { Levels window2 = new Levels(); window2.ShowDialog(); int fieldToErase = window2.returnFieldToErase(); if (fieldToErase != 81) //w przypadku, gdy ktoś nacisnął generuj, a później krzyżyk to nie czyść { //czyść tylko jak chcesz generować nową planszę sudo.clear(); drawGraphics(true); } sudo = unsaveFromFile("startBoard.bin"); sudo.generateBoard(); sudo.randomWithoutRepetition(81, fieldToErase); drawGraphics(false); } }
/* * Zapisanie pliku * sudo - plansza do zapisania * source - folder i nazwa pliku do zapisania */ void saveToFile(board sudo, string source) { FileStream binFile = new FileStream(source, FileMode.Create); //plik do zapisu BinaryFormatter binFormat = new BinaryFormatter(); binFormat.Serialize(binFile, sudo); //serializacja klasy binFile.Close(); //zamknięcie pliku sudo.saved = true; }
/* * Obsługa przycisku wczytaj */ private void unsaveButton_Click(object sender, EventArgs e) { bool ok = true; if (sudo.isEmpty() == false && sudo.saved == false) { if (MessageBox.Show("Czy chcesz zapisać stan gry?", "Zapis", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) ok = showSaveWindow(); } if (ok == true) { OpenFileDialog searchFile = new OpenFileDialog(); searchFile.Filter = "Pliki binarne (bin)|*.bin"; //obsługa plików binarnych if (searchFile.ShowDialog() == DialogResult.OK) { sudo.clear(); //wyczyszczenie planszy sudoku drawGraphics(true); //wyczyszczenie gui planszy sudoku sudo = unsaveFromFile(searchFile.FileName); drawGraphics(false); //wyświetlenie zapisu na ekranie sudo.saved = true; } } }