public void FirstGame() { FileStream getuser = new FileStream("CurrentUserLoggedIn.txt", FileMode.Open, FileAccess.Read); byte[] buffer = new byte[1024]; int getFileLength = getuser.Read(buffer, 0, buffer.Length); currentuser = Encoding.ASCII.GetString(buffer, 0, getFileLength); userSaveFilePath = "Brukere/" + currentuser + "/SaveFile1.txt"; getuser.Flush(); getuser.Close(); TotSaves = Directory.GetFiles("Brukere/" + currentuser, "*.*", SearchOption.TopDirectoryOnly).Length; if (TotSaves == 1) { DialogResult LoadGame = MessageBox.Show("Du har 1 lagret spill fra før av, vil du laste inn dette spillet?", "Last inn spill?", MessageBoxButtons.YesNo); if (LoadGame == DialogResult.Yes) { Load1Game = true; } } if (TotSaves > 1) { DialogResult LoadGame = MessageBox.Show("Det ser ut til at du allerede har " + TotSaves.ToString() + " Lagrede spill, vil du laste inn did sist " + "spilte spill? Trykk nei for å selv velge hvilket spill du vil laste inn, trykk avbryt for å avbryte laste prosessen og begynne ett nytt spill.", "Laste inn spill?", MessageBoxButtons.YesNoCancel); if (LoadGame == DialogResult.Yes) { FileStream fs = new FileStream("RecentGames.txt", FileMode.Open, FileAccess.Read); byte[] buffer2 = new byte[10240]; int lengthing = fs.Read(buffer2, 0, buffer2.Length); string FindRecentGames = Encoding.ASCII.GetString(buffer2, 0, lengthing); fs.Flush(); fs.Close(); string[] FindRecentGamesArray = FindRecentGames.Split(',', ':'); for (int i = 0; FindRecentGamesArray.Length > i; i++) { if (FindRecentGamesArray[i].Contains(currentuser)) { FindRecentGamesArray[i + 2] = FindRecentGamesArray[i + 2].Trim(); CurrentSaveFile = Convert.ToInt16(FindRecentGamesArray[i + 2]); userSaveFilePath = "Brukere/" + currentuser + "/SaveFile" + CurrentSaveFile + ".txt"; } } Load1Game = true; } else if (LoadGame == DialogResult.No) { SaveOrLoadFunction = "Load"; Load1Game = true; LastInnSpill open = new LastInnSpill(); open.ShowDialog(); } } if (Load1Game) { FileStream fs = new FileStream(userSaveFilePath, FileMode.Open, FileAccess.Read); getFileLength = fs.Read(buffer, 0, buffer.Length); fs.Flush(); fs.Close(); string saveFileString = Encoding.ASCII.GetString(buffer, 0, getFileLength); string nowhitespacesave = string.Join("", saveFileString.Split((string[])null, StringSplitOptions.RemoveEmptyEntries)); char[] dilimiters = { ',', ':' }; string[] saveFile = nowhitespacesave.Split(dilimiters); for (int i = 0; saveFile.Length > i; i++) { if (saveFile[i].Contains("Vinnteller")) { wincounter = Convert.ToInt16(saveFile[i + 1]); } else if (saveFile[i].Contains("Tapteller")) { losecounter = Convert.ToInt16(saveFile[i + 1]); } else if (saveFile[i].Contains("Ord")) { word = saveFile[i + 1]; } else if (saveFile[i].Contains("Totalt")) { TotalGuesses = Convert.ToInt16(saveFile[i + 1]); } else if (saveFile[i].Contains("Bokst")) { LetterAlreadyGuessed = saveFile[i + 1]; } else if (saveFile[i].Contains("Korrektegjett")) { CorrectGuess = Convert.ToInt16(saveFile[i + 1]); } else if (saveFile[i].Contains("Feilgjett")) { wrongguess = Convert.ToInt16(saveFile[i + 1]); } else if (saveFile[i].Contains("VisesTilSpiller")) { blank.Clear(); blank.Append(saveFile[i + 1]); } else if (saveFile[i].Contains("KnapperEnabled")) { if (saveFile[i + 1] == "Disabled") { foreach (Control c in Controls) { if (c.GetType() == typeof(Button)) { c.Enabled = false; } } } } } lbl_Display.Text = blank.ToString(); lbl_Defeats.Text = "Tapt: " + losecounter.ToString(); lbl_GuessedLetters.Text = "Gjettede bokstaver: " + LetterAlreadyGuessed; lbl_Wins.Text = "Vunnet: " + wincounter.ToString(); lbl_TotalGuesses.Text = "Gjett: " + TotalGuesses.ToString(); } if (!Load1Game) { for (int i = 0; i < word.Length; i++) { blank.Append("_"); } lbl_Display.Text = blank.ToString(); MessageBox.Show("Velkommen til hangman! Dette spillet er akuratt som hangman, der du gjetter ved å trykke på bokstavene, itilleg så er det på engelsk." + " Det blir tilfeldig valgt ett av flere hundre ord på engelsk med 4 bokstaver eller mer, lykke til!"); } }
private void Form_Closing(object sender, FormClosingEventArgs e) { DialogResult test = MessageBox.Show("Vil du lagre dette spillet?", "Lagre?", MessageBoxButtons.YesNoCancel); if (test == DialogResult.Yes) { int SavedFiles = Directory.GetFiles("Brukere/" + Hangman.currentuser, "*.*", SearchOption.TopDirectoryOnly).Length; if (SavedFiles > 0) { DialogResult ErstatteLagringsFil = MessageBox.Show("Det ser ut til at du har " + SavedFiles.ToString() + " largringspunkter fra før. Vil du overskrive " + "eller lage nytt lagringspunkt? (Du vil bli spurt om hvilke du vil overskrive hvis det er flere enn ett). Ja for å overskrive og nei for å lage " + "nytt lagringspunkt", "Overskrive eller lage nytt largrinspubkt" , MessageBoxButtons.YesNoCancel); if (ErstatteLagringsFil == DialogResult.Yes) { SaveOrLoadFunction = "Save"; LastInnSpill open1 = new LastInnSpill(); if (SavedFiles > 1) { open1.ShowDialog(); } //If the user has 1 file save, it wont open the "LastInnSpill" to let the user choose which file to overwrite, since there is only one. else if (SavedFiles == 1) { open1.SaveWithoutPrompt(); } } } if (button1.Enabled == false) { buttonstate = "Disabled"; } else if (button1.Enabled == true) { buttonstate = "Enabled"; } //Reads which user is currently logged in FileStream fs1 = new FileStream("CurrentUserLoggedIn.txt", FileMode.Open, FileAccess.Read); byte[] buffer2 = new byte[1024]; int bytesread = fs1.Read(buffer2, 0, buffer2.Length); fs1.Flush(); fs1.Close(); userloggedin1 = Encoding.ASCII.GetString(buffer2, 0, bytesread); //Gets how many files there are in this directory, and adds 1 to it so that it saves to a new file if (!FileNumberAlreadySet) { FileNumber = Directory.GetFiles("Brukere/" + userloggedin1, "*.*", SearchOption.TopDirectoryOnly).Length + 1; } FileNumberAlreadySet = false;//I am resetting the boolean. It needs to be reset to always create a new SaveFile if the user has not said otherwise //Which file to write to string brukersave = "Brukere/" + userloggedin1 + "/SaveFile" + FileNumber + ".txt"; FileStream fs = new FileStream(brukersave, FileMode.Create, FileAccess.Write); string[] everythingSaved = new string[9]; everythingSaved[0] = "Vises Til Spiller: " + blank.ToString(); everythingSaved[1] = "\r\n" + "Ord å gjette: " + word; everythingSaved[2] = "\r\n" + "Vinn teller: " + wincounter.ToString(); everythingSaved[3] = "\r\n" + "Tap teller: " + losecounter.ToString(); everythingSaved[4] = "\r\n" + "Totalt gjettede ord: " + TotalGuesses.ToString(); everythingSaved[5] = "\r\n" + "Bokst. som allerede er gjettet: " + LetterAlreadyGuessed; everythingSaved[6] = "\r\n" + "Korrekte gjett: " + CorrectGuess.ToString(); everythingSaved[7] = "\r\n" + "Feil gjett: " + wrongguess.ToString(); everythingSaved[8] = "\r\n" + "Knapper Enabled/Disabled: " + buttonstate; string SeverythingSaved = string.Join(",", everythingSaved); byte[] buffer = new byte[SeverythingSaved.Length]; buffer = Encoding.ASCII.GetBytes(SeverythingSaved); fs.Write(buffer, 0, buffer.Length); fs.Flush(); fs.Close(); open.show(); } else if (test == DialogResult.No) { open.show(); } else if (test == DialogResult.Cancel) { MessageBox.Show("Ingen data ble lagret/overskrevet"); e.Cancel = true; } }