Vraag hulp bij programmeren schoolopdracht

catalunj

Nieuw lid
Lid geworden
17 nov 2020
Berichten
12
Waarderingsscore
0
Punten
1
Leeftijd
25
Mijn vraag
ik zit in het 2e leerjaar van hbo-ict en moet alleen nog het vak development(programmeren) halen voor mijn propedeuse. ik heb al een mbo ICT opleiding afgerond maar dit richtte zich met name op de services kant, waar mijn voorkeur ook ligt. desondanks zal ik development moeten halen en de volgende opdracht wordt van me verwacht over 4 weken:

Maak een programma dat een volledig kaartendeck creëert, dit kaarten kan schudden en aan elke speler een aantal kaarten uitdeelt. Hierbij moet rekening gehouden worden dat een bepaalde kaart maar 1 keer uitgedeeld kan worden.
Dit programma dient als basis voor inleveropdracht 2, waarbij een volledig kaartspel (Poker, Toepen, Blackjack, Hartenjagen, …) geïmplementeerd zal worden.
OPDRACHT DETAILS
1. Maak het klassen diagram en neem deze op als ontwerp in je in te leveren document.
2. Programmeer de klassen in C#
3. Programmeer minimaal de volgende functionaliteit:
a. Vraag als input het aantal spelers en het aantal kaarten per speler.
b. Maak het deck met kaarten.
waarde: 1 (aas) tot en met 10, boer, vrouw koning; kleur: klaver, harten, schoppen, ruiten
value: 1 (ace) tot en met 10, jack, queen, king; suit: clubs, hearts, spades, diamonds
c. Schud het deck.
d. Geef elke speler het gewenste aantal kaarten.
e. Toon in (console) interface welke kaarten iedere speler ontvangen heeft.

De opdracht mag je in tweetallen uitvoeren (individueel mag ook).
De opdracht moet worden geprogrammeerd als een Console Applicatie in C#.


iedere hulp is welkom want ik heb zelf
echt 0 maar dan ook 0 een idee hoe ik uberhaupt moet beginnen hieraan, iedere hulp/tips
zijn welkom.

alvast bedankt.
 

Rubensky

Administrator
Forumleiding
Lid geworden
17 okt 2011
Berichten
20.295
Waarderingsscore
253
Punten
83
Goedemiddag Catalunj,

Hartelijk welkom op dit forum.

Ik hoop dat je niet verwacht dat hier je gehele opdracht gemaakt zal worden die je dan nog even kan afronden en inleveren. We willen je best helpen met bijvoorbeeld het controleren van je "fouten" en het geven van tips als je er niet uitkomt. De opzet zal toch echt uit jezelf moeten komen.
 

catalunj

Nieuw lid
Lid geworden
17 nov 2020
Berichten
12
Waarderingsscore
0
Punten
1
Leeftijd
25
dat begrijp ik, ik zal ook nooit verwachten dat iemand hier huiswerk of iets dergelijks voor me maakt. ik loop gewoon enorm vast en heb echt 0.0 idee hoe ik uberhaupt een stapje verder moet komen.
 

Rubensky

Administrator
Forumleiding
Lid geworden
17 okt 2011
Berichten
20.295
Waarderingsscore
253
Punten
83
Plaats dan (tussen code tags) de opzet die je al hebt hier. Dan kan er naar gekeken worden.
 

nlreiniernl

Gevestigd lid
Lid geworden
10 jun 2007
Berichten
412
Waarderingsscore
5
Punten
18
Misschien kunnen we hem beter helpen met het denken in stappen. Check ook vraag 1 :)
Een aantal zaken zijn al makkelijk uit de opdracht te halen. Ik zal er eens een paar noemen.

1. We moeten een kaartendeck hebben. Het lijkt mij logisch om dat in een Array te stoppen
2. Er moet bijgehouden worden hoeveel spelers er zijn
3. Ook moet er worden bijgehouden hoeveel kaarten spelers krijgen
4. Denk hierbij ook aan het verwijderen van de kaarten uit het deck zodat je geen dubbele kaarten uitdeelt

Implementeer dit sowieso in functies aangezien je deze functies nodig zal hebben om bij opdracht 2 het spel daadwerkelijk te maken.
 

catalunj

Nieuw lid
Lid geworden
17 nov 2020
Berichten
12
Waarderingsscore
0
Punten
1
Leeftijd
25
Ik heb een klas aangemaakt genaamd cards, de eerste klasse en dit is ook de eerste regel van mijn code, is dit in de goede richting? zijn er duidelijke fouten? ik krijg nog steeds 2 errors onderin:
line 1: Program does not contain a static main method suitable for entry point
line 21: cs 1513 expected

class Cards
{
public enum Suit
{
HEARTS,
DIAMONDS,
SPADES,
CLUBS
}

public enum Value
{
Ace = 1, Two, Three, Four, Five, Six, Seven, Eight,
Nine, Ten, Jack, Queen, King
}


public Suit MySuit { get; set; }
public Value MyValue { get; set; }
 

maulem

Vaak hier
Lid geworden
23 feb 2017
Berichten
515
Waarderingsscore
22
Punten
18
Misschien kun je aangeven in welke applicatie je dit programmeert?
 

maulem

Vaak hier
Lid geworden
23 feb 2017
Berichten
515
Waarderingsscore
22
Punten
18
Misschien kun jij gewoon de eerste post lezen, C# dus.

Nee, ik bedoel de ontwikkelomgeving (ja IDE) waar @catalunj gebruik van maakt. Ik weet namelijk niet of die allemaal hetzelfde debuggen, met dezelfde meldingen etc.
 

catalunj

Nieuw lid
Lid geworden
17 nov 2020
Berichten
12
Waarderingsscore
0
Punten
1
Leeftijd
25
Het klassendiagram heb ik al gemaakt , dit is de 2e klas die ik heb geprobeerd te maken.
Het lijkt er in visualstudio op dat er geen fout zit in de code zelf maar toch krijg ik 5 errors onderin
cs1513 expected
ik snap niet wat ik fout gedaan heb aangezien de code lijkt te kloppen

class DeckOfCards : Cards
{
const int Total_Cards = 52; //number of all cards
private Cards [] deck; //array of all playing cards

public DeckOfCards()
{
deck = new Cards [Total_Cards];
}

public Cards [] getDeck { get { return deck; } } //get current deck

//create deck of 52 cards: 13 Values each, with 4 suits
public void setUpDeck()
{
int i = 0;
foreach (Suit s in Enum.GetValues(typeof(Suit)))
{
foreach (Value v in Enum.GetValues(typeof(Value)))
{
deck = new Cards { MySuit = s, MyValue = v };
i++;
 

maulem

Vaak hier
Lid geworden
23 feb 2017
Berichten
515
Waarderingsscore
22
Punten
18
hoi @catalunj, ik heb jouw code een klein beetje aangepast, lijkt verder goed te lopen. Ik heb ze uitgebreid met een Program class en een Main() methode, anders zul je geen invoer/uitvoer kunnen krijgen. Verder een methode PrintDeck() toegevoegd om alle 52 kaarten te listen. Daarna een instantie gemaakt (binnen Main()) van DeckOfCards en achtereenvolgens de methoden setUpDeck() en PrintDeck() aangeroepen. Binnen setUpDeck() is de array een tikje gewijzigd, anders zal de array deck niet gevuld worden. De code luidt:

C#:
    class Program
    {
        static void Main(string[] args)
        {
            DeckOfCards doc = new DeckOfCards();
            doc.setUpDeck();
            doc.PrintDeck();
            Console.ReadLine();
        }
    }

    class DeckOfCards : Cards
    {
        const int Total_Cards = 52; //number of all cards
        private Cards[] deck; //array of all playing cards

        public DeckOfCards()
        {
            deck = new Cards[Total_Cards];
        }

        public Cards[] getDeck { get { return deck; } } //get current deck

        //create deck of 52 cards: 13 Values each, with 4 suits
        public void setUpDeck()
        {
            int i = 0;
            foreach (Suit s in Enum.GetValues(typeof(Suit)))
            {
                foreach (Value v in Enum.GetValues(typeof(Value)))
                {
                    deck[i] = new Cards { MySuit = s, MyValue = v };
                    i++;
                }
            }
        }

        public void PrintDeck()
        {
            for (int i = 0; i < 52; i++)
            {
                Console.WriteLine($"{deck[i].MySuit} {deck[i].MyValue}");
            }
        }
    }

Als het goed is kun je deze code runnen als Console applicatie in Visual Studio.
 
Laatst bewerkt:

catalunj

Nieuw lid
Lid geworden
17 nov 2020
Berichten
12
Waarderingsscore
0
Punten
1
Leeftijd
25
allereerst bedankt Maulum en andere voor jullie hulp, ik heb het idee dat ik er wel uit ga komen. een andere functie die ik moet maken is als input vragen naar het aantal spelers en het aantal kaarten per speler.

de code hiervoor ken ik en lijkt me vrij simpel:
Console.Write("Number of players?: ");
Console.Readline()
Console.Write("Number of cards for each player: ");
Console.Readline();

Echter vraag ik me af waar ik in mijn programma deze regels code moet plaatsen aangezien ik nu in feite alleen de classes en enkele methodes zoals shuffle en deal heb aangemaakt?
 

maulem

Vaak hier
Lid geworden
23 feb 2017
Berichten
515
Waarderingsscore
22
Punten
18
Hier heb je mijn class Program. Daarin staat Main(), daarbinnen kun je de functie-aanroepen doen en de invoer en uitvoer regelen:

C#:
    class Program
    {
        static void Main(string[] args)
        {
            DeckOfCards doc = new DeckOfCards();
            doc.setUpDeck();
            Console.WriteLine("Deck:");
            Console.WriteLine("");
            doc.PrintDeck();
            Console.WriteLine("Aantal spelers:");
            string input1 = Console.ReadLine();
            Game.aantalSpelers = Int32.Parse(input1);
            Console.WriteLine("Aantal kaarten:");
            string input2 = Console.ReadLine();
            Game.aantalKaarten = Int32.Parse(input2);
            Console.WriteLine("");
            Console.WriteLine("Shuffle:");
            Console.WriteLine("");
            doc.Shuffle();
            doc.Deal();
            Console.ReadLine();
        }
    }
 

nlreiniernl

Gevestigd lid
Lid geworden
10 jun 2007
Berichten
412
Waarderingsscore
5
Punten
18
Leuk om te zien dat @maulem je zo goed op weg helpt!
Jammer dat ik nog nooit geen regel code in C# heb geprogrammeerd anders had ik je graag geholpen.
 

YdieresiS

NCF VIP
Forumleiding
Lid geworden
5 dec 2003
Berichten
36.041
Waarderingsscore
382
Punten
83
Locatie
127.0.0.1
Ik weet niet meer of je kan afdwingen in console dat het een getal moet zijn, maar daar kun je nog wel op zoeken. Je krijgt anders later vage fouten (ook al bij je Int32.Parse) als je bijvoorbeeld het aantal spelers vraagt en iemand "twee" invult, terwijl jij van 2 uitgaat. Om nog maar te zwijgen over iemand die 2-3 invult ofzo. Ik programmeer niet zo veel meer en ben er een tijdje uit, maar helpen met de logica aan de achterkant lukt me nog wel steeds.

Maulem helpt je in ieder geval goed op weg 👍
 

maulem

Vaak hier
Lid geworden
23 feb 2017
Berichten
515
Waarderingsscore
22
Punten
18
hoi @catalunj. Al verder gekomen met de opdracht ? Als je nog hulp nodig hebt laat maar weten.
 

catalunj

Nieuw lid
Lid geworden
17 nov 2020
Berichten
12
Waarderingsscore
0
Punten
1
Leeftijd
25
Hey @maulem ik heb in principe alle functionaliteiten die ik nodig heb in code, behalve in interface weergeven welke kaarten iedere speler ontvangen heeft maar dit is momenteel mijn minste zorg.

ik raak steeds meer gefrustreerd en moedeloos omdat er maar errors blijven verschijnen en ik ze niet opgelost krijg wat ik ook probeer.

ik heb nu de aangepaste code van de class : DeckOfCards in visualstudio geprogrammeerd maar ik blijf gewoon iets van 10 of 11 errors krijgen ik snap echt niet wat ik fout doe.
Dit is de code die ik als 2e class heb geprogrammeerd:

namespace CardsGame
{

class Program
{
static void Main(string[] args)
{
DeckOfCards doc = new DeckOfCards();
doc.setUpDeck();
doc.PrintDeck();
Console.ReadLine();
}
}

class DeckOfCards : Cards
{
const int Total_Cards = 52; //number of all cards
private Cards[] deck; //array of all playing cards

public DeckOfCards()
{
deck = new Cards[Total_Cards];
}

public Cards[] getDeck { get { return deck; } } //get current deck

//create deck of 52 cards: 13 Values each, with 4 suits
public void setUpDeck()
{
int i = 0;
foreach (Suit s in Enum.GetValues(typeof(Suit)))
{
foreach (Value v in Enum.GetValues(typeof(Value)))
{
deck = new Cards { MySuit = s, MyValue = v };
i++;
}
}
}

public void PrintDeck()
{
for (int i = 0; i < 52; i++)
{
Console.WriteLine($"{deck.MySuit} {deck.MyValue}");
}
}
}
 

maulem

Vaak hier
Lid geworden
23 feb 2017
Berichten
515
Waarderingsscore
22
Punten
18
@catalunj, wees niet bevreesd, ik heb hier verschillende files met de code van het complete kaartspel, lopend en wel, als je interesse hebt kan ik ze je wel geven. Jouw code die je tot nog toe hebt is echter goed, ik heb ze hier getest, loopt perfect en print alle kaarten.

Kun je eens een screenshot maken van de foutmeldingen die je krijgt ?
 

catalunj

Nieuw lid
Lid geworden
17 nov 2020
Berichten
12
Waarderingsscore
0
Punten
1
Leeftijd
25
als jou files van het kaartspel wel volledig werkt zoals je zegt zou ik deze inderdaad wel even willen zien, misschien dat ik dan op m'n gemakje kan zien wat ik niet goed gedaan heb en jij wel.
 

Nieuwste berichten

Bovenaan Onderaan