[ BaMak @ 19.04.2013. 20:32 ] @
Pozdrav svima, trebala bi mi hitna omoc da zavrsim ovaj projekt ako je ikako moguce. Napravio sam listu reci, mali meni, e sada treba mi da dovrsim to da klikom na brojem jedan dobijem mogucnost unosa novih reci, i da pri pritisku na broj tri tj samoj igri dodam funkciju da se rec ispise u minusima i prilikom svakog tacnog slova da se taj minus zameni slovom. Zahvaljujem unapred!

Ovoliko je za sada uradjeno:

Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace HängaGubbe
{

    class Meny
    {

        static void Main(string[] args)
        {


            while (true)
            {
                Console.ForegroundColor = ConsoleColor.Yellow;
                //Meny
                Console.WriteLine("\n\n\t === HÄNGA GUBBE === \n\n");
                Console.WriteLine("\n\n\t[1] Lägg till ord");
                Console.WriteLine("\t[2] Lista alla ord");
                Console.WriteLine("\t[3] Spela");
                Console.WriteLine("\t[4] Avsluta");
                Console.Write("\n\tVälj 1-4:  ");


                //Användaren får välja
                string menySelection = Console.ReadLine();

                if (menySelection == "1")
                {
                    Console.WriteLine("\n\n\t=== LÄGG TILL ORD ===\n\t");

                    var input = Console.ReadLine();
                    showing.AddWord(input);
                    break;



                }

                else if (menySelection == "2")
                {
                    Console.WriteLine("\n\n\t=== ORDLISTA ===\n");
                    OrdL showing = new OrdL();
                    showing.OrdLista();

                    Console.WriteLine("\n\t==========");
                }

                else if (menySelection == "3")
                {
                    int guesses;
                    Console.Write("\n\tHUR MÅNGA GÅNGER FÅR DU GISSA FEL? ");
                    guesses = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("\n\n\t=== VÄLKOMMEN TILL SPELET! ===");

                    Console.WriteLine("\t=== GISSA DET HEMLIGA ORDET ===\n\n");




                    String input;
                    bool wrong;
                    int NumberOfTries = 0;


                    do
                    {
                        Console.WriteLine("\n\n\tFEL: " + NumberOfTries + " / " + guesses + "\n");
                        Console.WriteLine("\n\tGISSADE BOKSTÄVER:\n");
                        Console.WriteLine("\n\tORD:\n");
                        Console.Write("\n\n\tGISSADE BOKSTÄVER: ");
                        input = Console.ReadLine();
                        Console.Write("\n\n\t ");

                        wrong = !input.Equals("") &&
                              !input.Equals("") &&
                              !input.Equals("") &&
                              !input.Equals("");
                        if (wrong)
                        {
                            NumberOfTries++;
                            Console.WriteLine("\n\tFEL BOKSTAV " + "FÖRSÖK IGEN!");
                        }
                        if (wrong && (NumberOfTries > guesses - 1))
                        {
                            Console.WriteLine("\n\tDU HAR INTE LYCKATS, DU HADE " + guesses + " FEL!" + "\n\n");
                            break;
                        }

                    } while (wrong);
                    if (!wrong)
                        Console.WriteLine("\n\tGRATTIS DU HAR GISSAT RÄTT!");
                    
                }

                else if (menySelection == "4")
                {
                    Console.WriteLine("\n\n\t=*= HEJ DÅ! =*=\n\n\n\n\n");
                    break;
                     //avbryter while loopen, avslutar spelet
                }
                else
                {
                    Console.WriteLine("\n\tOGILTIGT VAL!");
                    //meddelar vid fel val
                }


            }



        }
    }
}


Code:

using System;
using System.Collections.Generic;

namespace HängaGubbe
{

    class OrdL
    {
        private List<string> ord = new List<string>();

        public void OrdLista()
        {
            ord.Add("\tprojektarbete");         
            ord.Add("\tntiskolan");          
            ord.Add("\tprogrammering"); 

            ord.Sort();
            foreach (string word in ord) 
            {
                Console.WriteLine(word);

            }

        }

        public void AddWord(string value){
        ord.Add(value);
        }
    }
}
[ plague @ 19.04.2013. 22:26 ] @
Ako pod "klikom na slovo" podrazumevas klikom na tipku bez pritiska entera onda koristi sledece:

Code (csharp):

               ConsoleKeyInfo cki = Console.ReadKey();
               char inputChar = cki.KeyChar;
 


Sto se tice drugog problema, nikako ne mozes menjati vec postojece. Najbolje ti je da uradis Console.Clear() a zatim ponovo iscrtas sve tako da izgleda kao da se zamenila crtica.
[ BaMak @ 19.04.2013. 23:12 ] @
Ono sto pokusavam da napravim je takozvana vesalica kako se kod nas zove, znaci kada pokrenem konzolu da dobijem meni koji sam vec uradio tako da pritiskom na odredjen broj idem dalje:

pritiskom na broj jedan da unesem novu rec koju cu moci da pogadjam - jedan deo napisan ali ne mogu da dovrsim

pritiskom na broj dva da izlistam vec unete reci koje su u biblioteci unetoj "drugi fajl" --- to je reseno

pritiskom na broj tri da iscitam "random "rec iz postojece biblioteke i da igrac posle toga pogadja, kada pogresi da izbaci gresku, a svakim pogotkom da razotkrije jedno slovo reci koju pogadja - e tu nastaje problem koji ne znam kako da resim, rec ucitam iz biblioteke i promasaji se racunaju, ali pogodjena slova ne mogu da ispisem

pritiskom na broj cetiri da izbaci malu porukicu i zatom pritiskom na enter da se konzola zatvori - to je resno


Zahvalan unapred jos jednom unapred, pocetnik sam tek druga nedelja ucenja C# tako da zaista pomoc mi je preko potrebna. :)
[ BaMak @ 20.04.2013. 12:36 ] @
Zavrseno, bilo kako bilo, dve funkcije nisam uspeo da dodam, ali u svakom slucaju ako neko bude trazio nesto slicno da moze da poredi, pa postujem gotov kod. Nedostaje funkcija gde pri pritiskom na taster tri u meniju pri otvaranju programa upita igraca koliki max broj greski zeli da ima prilikom igre i za vreme igranja da ih racuna. Ako neko ima resenje na to neka postuje zahvalan bi bio. :)

Meny

Code:

using System;
using System.Collections.Generic;

namespace HängaGubbe
{

    class Meny
    {
        static void Main()
        {

            while (true)
            {
                //Bokstävernas färg
                Console.ForegroundColor = ConsoleColor.Yellow;
                //Meny
                Console.WriteLine("\n\n\t === HÄNGA GUBBE === \n\n");
                Console.WriteLine("\n\n\t[1] Lägg till ord");
                Console.WriteLine("\t[2] Lista alla ord");
                Console.WriteLine("\t[3] Spela");
                Console.WriteLine("\t[4] Avsluta");
                Console.Write("\n\tVälj 1-4:  ");


                //Användaren får välja
                string menySelection = Console.ReadLine();

                if (menySelection == "1")
                {
                    Console.WriteLine("\n\n\t=== LÄGG TILL ORD ===");

                    //Låter spelaren lääga till 5 ord

                    string[] ordLista = new string[10];
                    ordLista[0] = Console.ReadLine();
                    ordLista[1] = Console.ReadLine();
                    ordLista[2] = Console.ReadLine();
                    ordLista[3] = Console.ReadLine();
                    ordLista[4] = Console.ReadLine();

                    //Rensar fönstret
                    Console.Clear();
                   
                    Console.WriteLine("\n\n\tGISSA RÄTT ORD");

                    //Väljer slumpvisst ett ord som spelaren har skrivit
                    Random randGen = new Random();
                    var idx = randGen.Next(0, 4);
                    string hemligtord = ordLista[idx];

                    //Läser in valt ord och kör programmet
                    char[] gissatord = new char[hemligtord.Length];
                    char gissa;
                    bool rättord = false;
                    Program kontroll = new Program();
                    for (int i = 0; i < gissatord.Length; i++)
                    {
                        gissatord[i] = '-';
                    }

                    Console.Write("\n\n\t");
                    for (int i = 0; i < gissatord.Length; i++)
                    {
                        Console.Write(gissatord[i]);
                    }

                    Console.WriteLine("\n\tGISSA EN BOKSTAV!");
                    while (!rättord)
                    {
                        Console.Write("\n\tGISSA IGEN : ");
                        gissa = Convert.ToChar(Console.ReadLine());

                        kontroll.OrdKontroll(hemligtord, gissatord, gissa);
                        rättord = kontroll.RättaOrd(hemligtord, gissatord);
                    }


                }

                else if (menySelection == "2")
                {
                    //Här anropar vi ordlista som vi har skapat tidigare
                    Console.WriteLine("\n\n\t=== ORDLISTA ===\n");
                    Ordlista showing = new Ordlista();
                    showing.OrdLista();

                    Console.WriteLine("\n\t==========");
                }

                else if (menySelection == "3")
                {
                    while (true)
                    {


                        Console.WriteLine("\n\n\t=== VÄLKOMMENT TILL SPELET! ===");

                        Console.WriteLine("\n\n\t=== GISSA DET HEMLIGA ORDET ===\n\n");

                        //Ordlista
                        string[] ordLista = new string[10];
                        ordLista[0] = "projektarbete";
                        ordLista[1] = "ntiskolan";
                        ordLista[2] = "programmering";

                        //Väljer slumpvisst ett ord från ordlistan och kör programmet
                        Random randGen = new Random();
                        var idx = randGen.Next(0, 2);
                        string hemligtord = ordLista[idx];
                        char[] gissatord = new char[hemligtord.Length];
                        char gissa;
                        bool rättord = false;
                        Program kontroll = new Program();
                        for (int i = 0; i < gissatord.Length; i++)
                        {
                            gissatord[i] = '-';
                        }

                        Console.Write("\n\n\t");
                        for (int i = 0; i < gissatord.Length; i++)
                        {
                            Console.Write(gissatord[i]);
                        }

                        Console.WriteLine("\n\tGISSA EN BOKSTAV!");
                        while (!rättord)
                        {
                            Console.Write("\n\tGISSA IGEN : ");
                            gissa = Convert.ToChar(Console.ReadLine());

                            kontroll.OrdKontroll(hemligtord, gissatord, gissa);
                            rättord = kontroll.RättaOrd(hemligtord, gissatord);
                        }



                        Console.WriteLine("\n\n\n\tTRYCK PÅ ENTER FÖR ATT ÅTERGÅ TILL MENYN\n\n");
                        Console.ReadLine();

                        break;



                    }
                }

                else if (menySelection == "4")
                {
                    Console.WriteLine("\n\n\t=== HEJ DÅ! ===\n\n\n\n\n");
                    break; //avbryter while loopen, avslutar spelet
                }
                else
                {
                    //Meddelar vid fel val
                    Console.WriteLine("\n\tOGILTIGT VAL!");                    
                }


            }



        }
    }
}


Program

Code:

//Kontrollerar om man har skrivit in rätt bokstav, samt om hela ordet är rätt. 

using System;
using System.Collections.Generic;

namespace HängaGubbe
{

    class Program
    {
        public void OrdKontroll(string hord, char[] gord, char bokstav)
        {

            for (int i = 0; i < hord.Length; i++)
            {
                if (hord[i] == bokstav)
                {
                    gord[i] = bokstav;
                }
            }

            Console.Write("\n\n\t== ORDET ==\n\n\t");
            for (int o = 0; o < gord.Length; o++)
            {
                Console.Write(gord[o]);
            }
        }

        public bool RättaOrd(string hemligt, char[] gissatord)
        {
            string temp = "";
            for (int i = 0; i < hemligt.Length; i++)
            {
                temp += gissatord[i];
            }

            if (temp.Equals(hemligt))
            {
                Console.WriteLine("\n\n\tGRATTIS DU HAR GISSAT RÄTT ORD!");
                Console.WriteLine("\n\tDET RÄTTA ORDET VAR\t" + hemligt);
                return true;
            }

            else
            {
                return false;
            }

        }
    }
}



ListaReci

Code:

using System;
using System.Collections.Generic;

namespace HängaGubbe
{
    class Ordlista
    {
        
        //Ordlistan skapas
        private List<string> ord = new List<string>();

        public void OrdLista()
        {
            //Tillagda ord
            ord.Add("\tprojektarbete");
            ord.Add("\tntiskolan");
            ord.Add("\tprogrammering");

            ord.Sort();
            foreach (string word in ord)
            {
                Console.WriteLine(word);

            }

        }
    }
}

[ AMD guy @ 20.04.2013. 16:31 ] @
Sto ne volim kada ovo vidim
umesto ovoga
Code:
string[] ordLista = new string[10];
                    ordLista[0] = Console.ReadLine();
                    ordLista[1] = Console.ReadLine();
                    ordLista[2] = Console.ReadLine();
                    ordLista[3] = Console.ReadLine();
                    ordLista[4] = Console.ReadLine();


probaj ovo
Code:

string[] ordLista = new string[10];
for(int i = 0; i < 5; i++)
{
    ordLista[i] = Console.Readline();
}
[ BaMak @ 20.04.2013. 18:27 ] @
Hehe, kapiram da iskusanom programeru ovakve stvari oci bodu, ali kao sto rekoh dve nedelje su tek da ucim programiranje i neke male stvari koje se nekom sa iskustvom cine jasnije, meni su oooogromna prepreka.

Hvala za savet, veoma koristan ce biti u toku daljeg ucenja. :)

Nego ajde kada si se vec javio da te pitam kako bi u meniju 3 umesto da ucitavam reci koje sam tu napisao ucitao reci iz "ListeReci" direktno i onda ih random izabrao bez da pisem kod od nule??

I kako bih mogao da ubacim opciju da pita igraca pritiskom na broj 3 pre starta igre koliki broj gresaka je dozvoljen i nakon toga da se greske broje i ispisuju pa prilikom maximalnog broja greski da se igra prekine?