Problemen met Methods

Status
Niet open voor verdere reacties.

Stabiloy

Gebruiker
Lid geworden
3 okt 2009
Berichten
129
Hey,

Ik moet voor een school opdracht Mastermind maken. Nu heb ik alle methodes gemaakt. Echter wanneer ik deze wil gaan gebruiken in de main. Krijg ik de melding dat de veriabele niet bestaat.

Hoop dat jullie mij opweg kunnen helpen!

code:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static int[] bedenkCode()
        {
            int index = 0;
            int[] TeRadenCode = new int[4];
            Random random = new Random();
            while (index < 4)
            {
                TeRadenCode[index] = random.Next(1, 6);
                index = index + 1;
            }
            return TeRadenCode;
        }


        public static int[] doePoging(int poging)
        {
            int[] Code = new int[4];
            int index = 0;
            int getal;
            poging = poging + 1;

            while (index < 4)
            {
                Console.WriteLine("Geef het " + (index + 1) + "e getal");
                getal = int.Parse(Console.ReadLine());
                if (getal > 0 && getal < 7)
                {
                    Code[index] = getal;
                    index = index + 1;
                }
                else
                {
                    Console.WriteLine("Ingevulde waarde klopt niet.");
                }
            }
            return Code;
        }


        static int aantalOpDeJuistePlaats(int[] TeRadenCode, int[] Code)
        {
            int index = 0;
            int goedPlaats = 0;
            while (index < 4)
            {
                if (TeRadenCode[index] == Code[index])
                {
                    goedPlaats = goedPlaats + 1;
                }
                index = index + 1;
            }
            return goedPlaats;
        }


        public static int aantalCijfersJuist(int[] TeRadenCode, int[] Code)
        {
            int index = 0;
            int goedGetal = 0;

            while (index < 4)
            {

                int positie = 0;
                while (positie < 4)
                {
                    if (Code[index] == TeRadenCode[positie])
                    {
                        goedGetal = goedGetal + 1;
                        positie = 4;
                    }
                    else
                    {
                        positie = positie + 1;
                    }
                }
                index = index + 1;
            }
            return goedGetal;
        }


        static void toonAantallen(int goedAantal, int goedGetal)
        {
            Console.WriteLine("Aantal goed: " + goedAantal);
            Console.WriteLine("Aantal op goede plek: " + goedGetal); 
        }


        static bool vraagNogEenKeer()
        {
            bool nogEenKeer = false;
            Console.WriteLine("Het spel is afgelopen. Druk op \"J\" voor nog een spel");
            if (Console.ReadLine() == "j")
            {
                nogEenKeer = true;
            }
            return nogEenKeer;
        }

        static void uitvoeren()
        {

            int poging = 0;
            int i = 0;
            bedenkCode();
            Console.WriteLine("Welkom bij Mastermind. De computer heeft een code van 4 cijfers bedacht. probeer hem te ontcijferen!");

            while (i < 5)
            {
                poging = poging + 1;
                Console.WriteLine("Poging " + poging.ToString());
                doePoging(poging);
                Console.ReadLine();
            }
        }      
    }
}
 
Je bent de Main vergeten.
Want ik zie ze nergens staan.
Als ik de main er tussen zet werkt hij perfect bemij.
Code:
        static void Main(string[] args)
        {
                  //   Hier zet je al u methodes in. 
                  //   Voorbeeld:     uitvoeren();
        }


Mvg, Jim
 
Laatst bewerkt:
Hey Jim,

Dank voor reactie. Foutje vanaf mijn kant. Uitvoeren moet main zijn.
Verder als ik de returns van bedenkCode en doePoging wil gebruiken voor een andere methode. Krijg ik de melding dat deze niet bestaan.
 
Je moet de parameters erbij nemen. ;)
 
Laatst bewerkt:
Code:
        public static int Nummer(int Nr1)
        {
            Console.WriteLine(Nr1);
            Console.ReadLine();
            return Nr1;
        }
        public static int ENr()
        {
            return Nummer(1);
        }
        static void Main(string[] args)
        {
            Program.ENr();
        }
Output geeft 1 weer.


Mvg, Jim ;)
 
zit met hetzelfde probleem maar snap de uitleg niet zo goed.
is het mogelijk eens de volledige code te posten?
 
verder nog een tip. het is lelijk om alle methods static te maken enkel omdat je meteen in je static void main wil werken. static maken van de methods moet een nut hebben, niet alleen omdat de compiler dat zegt.

netter (vindt ik):

[cpp]

public class Program
{
//Entry point
static void Main(string[] args)
{
new Program();
}

//constructor
public Program()
{
// hier je logica. nu hoef je niet alles static te maken zonder reden.
Test();
}

public void Test()
{
//doe iets
}
}

[/cpp]
 
Laatst bewerkt:
@tomtomgo91: http://msdn.microsoft.com/en-us/library/79b3xss3(v=vs.80).aspx

@Westerland: daar heb je gelijk in, al zou ik zelf een duidelijker voorbeeld hebben genomen:

[cpp]
// Mastermind.cs
public class Mastermind
{
// ...

public void DoSomething()
{
// ...
}
}

// Program.cs
public class Program
{
static void Main(string[] args)
{
Mastermind m = new Mastermind();

m.DoSomething();

// ...
}
}
[/cpp]
 
Dit heb ik in visual studio staan, helaas krijg ik het niet werkende.
Ziet iemand waar ik in de fout ben gegaan?

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
   

public class Program
{
    public void Main(string[] args)
    {
        
    
        static int[] bedenkCode()
        {
            int index = 0;
            int[] TeRadenCode = new int[4];
            Random random = new Random();
            while (index < 4)
            {
                TeRadenCode[index] = random.Next(1, 6);
                index = index + 1;
            }
            return TeRadenCode;
        }


        public static int[] doePoging(int poging)
        {
            int[] Code = new int[4];
            int index = 0;
            int getal;
            poging = poging + 1;

            while (index < 4)
            {
                Console.WriteLine("Geef het " + (index + 1) + "e getal");
                getal = int.Parse(Console.ReadLine());
                if (getal > 0 && getal < 7)
                {
                    Code[index] = getal;
                    index = index + 1;
                }
                else
                {
                    Console.WriteLine("Ingevulde waarde klopt niet.");
                }
            }
            return Code;
        }


        static int aantalOpDeJuistePlaats(int[] TeRadenCode, int[] Code)
        {
            int index = 0;
            int goedPlaats = 0;
            while (index < 4)
            {
                if (TeRadenCode[index] == Code[index])
                {
                    goedPlaats = goedPlaats + 1;
                }
                index = index + 1;
            }
            return goedPlaats;
        }


        public static int aantalCijfersJuist(int[] TeRadenCode, int[] Code)
        {
            int index = 0;
            int goedGetal = 0;

            while (index < 4)
            {

                int positie = 0;
                while (positie < 4)
                {
                    if (Code[index] == TeRadenCode[positie])
                    {
                        goedGetal = goedGetal + 1;
                        positie = 4;
                    }
                    else
                    {
                        positie = positie + 1;
                    }
                }
                index = index + 1;
            }
            return goedGetal;
        }


        static void toonAantallen(int goedAantal, int goedGetal)
        {
            Console.WriteLine("Aantal goed: " + goedAantal);
            Console.WriteLine("Aantal op goede plek: " + goedGetal); 
        }


        static bool vraagNogEenKeer()
        {
            bool nogEenKeer = false;
            Console.WriteLine("Het spel is afgelopen. Druk op \"J\" voor nog een spel");
            if (Console.ReadLine() == "j")
            {
                nogEenKeer = true;
            }
            return nogEenKeer;
        }

        static void uitvoeren()
        {

            int poging = 0;
            int i = 0;
            bedenkCode();
            Console.WriteLine("Welkom bij Mastermind. De computer heeft een code van 4 cijfers bedacht. probeer hem te ontcijferen!");

            while (i < 5)
            {
                poging = poging + 1;
                Console.WriteLine("Poging " + poging.ToString());
                doePoging(poging);
                Console.ReadLine();
            }
        }

               

                
        }     
    }
 
De Main functie mist in het begin een /* en op het einde een */.

(wat kan je er verder eigenlijk nog over zeggen... :$)
 
Je defineerd methods in methods. vandaar de /* */.
copy pasten zonder te weten wat je doet mislukt vaak.
 
Laatst bewerkt:
Error 1 Program 'C:\Users\ConsoleApplication2.exe' does not contain a static 'Main' method suitable for an entry point ConsoleApplication2
 
public void Main(string[] args)

is anders dan

public static void Main(string[] args)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan