예제 #1
0
        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!");
            }
        }
예제 #2
0
        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;
            }
        }