C# Monopoly namaken

Status
Niet open voor verdere reacties.
een list is in principe prima. Je hebt in dit geval wel een aantal andere opties. in principe kun je ook een "queue" of een "stack" gebruiken.

Dit is natuurlijk voor punten (schoolproject) dus vandaar dat die vraag kwam. Heeft het gebruik van een queue of stack een merkbaar voordeel waardoor die keuze beter zal uitkomen?
 
een stack (en queue in omgekeerde volgorde) kun je items 1 voor 1 uittrekken en wordt de grootte van de lijst automatisch aangepast. In het geval van een lijst zou je eenmaal kunnen schudden en via een teller oneindig doorheen kunnen lopen (of opnieuw schudden nadat je er doorheen bent gegaan. Ook een beetje afhankelijk hoe je de kaarten gaat behandelen.

In dit geval is een lijst misschien wel de makkelijkste oplossing
 
Hoofdklasse speelbord
->subklasse vakje
->subklasse speelkaarten

hoofdklasse speler
of
hoofdklasse speler
->subklasse speler-acties
->subklasse speler-status

Je gaat gewoon net zo lang door dat je alleen een groep functies overhoud. Er is geen ideale indeling voor alle klasses.

zowel kaarten en speelvakjes kunnen effecten hebben. als ze veel overeenkomstige effecten hebben kun je ze bundelen. Als ze voornamelijk anders zijn kun je ze in hun eigen klasse laten.

meeste speelvakjes hebben in principe 3 mogelijke status: onverkocht, verkocht, verkocht/verpand... kan dus prima in een vakjesklasse.

vakjesklasse kun je dus mogelijk opdelen in:
- standaardvakjes
- speciaal vakje

of je kunt het 1 klasse laten en een aantal speciale procedures toevoegen.

Nog een vraagje over die hoofdklasse Speelbord, en dan de subklasses vakje en speelkaarten (bvb). Wat wordt er net geprogrammeerd in de hoofdklasse? Ik maak op dit moment in de subklasse vakje aan dat ze een speciaal of normaal vakje zijn, de prijs eventueel en de "verkocht, onverkocht" status.
 
Ik post even wat ik nu gedaan heb omtrent de Speelbord, vakje en speelkaart klassen, met eronder een vraag;
----------------------------------------------------------------------------------------------------------------------------
class Speelbord
{
Vakje[] speelbordArray = new Vakje[40];

}
--------------------------------------------------------------------------------------------------------------
class Vakje : Speelbord
{
public bool special;
public enum status {verkocht, onverkocht};
public int price;

}
-------------------------------------------------------------------------------------------------------
class Speelkaart : Speelbord
{
public string omschrijving;

}
----------------------------------------------------------------------------------------------------------------

In mijn klasse Speelbord heb ik nu ene Array van vakjes aangemaakt die lang is. Toen probeerde ik eronder dit te typen:
speelbordArray (en dan ctrl+spatie) maar hij gaf het niet aan. Ik heb toch net een array van die Vakjes aangemaakt, hoe kan ik nu elk vakje gaan indelen tot "huis, deze naam, niet speciaal, kost 250" en zo verder?
 
Als je niets overerft van speelbord kun je speelbord natuurlijk net zo goed een aparte klasse maken. Moet je dus even naar kijken als je klaar bent met je design.

Je hebt nu een array van vakje, maar die moet je vullen met de constuctor van vakje:
Code:
SpeelbordArray[0]= new vakje(...constructor van vakje...)

gewoon nog even mee spelen en eventueel dus eerst in een apart klein programmaatje knutselen
 
Als je niets overerft van speelbord kun je speelbord natuurlijk net zo goed een aparte klasse maken. Moet je dus even naar kijken als je klaar bent met je design.

Je hebt nu een array van vakje, maar die moet je vullen met de constuctor van vakje:
Code:
SpeelbordArray[0]= new vakje(...constructor van vakje...)

gewoon nog even mee spelen en eventueel dus eerst in een apart klein programmaatje knutselen

Op dit moment weet ik nog niet zo goed wat ik zou moeten overerven, maar dit komt waarschijnlijk nog.
Over die array van vakjes, ik heb nu het volgende:
---------------------------------------------------------------------
class Vakje : Speelbord
{
public string omschrijving;
public bool speciaal;
public enum status {verkocht, onverkocht};
public int prijs;

public Vakje(string _omschrijving, bool _speciaal, int _prijs)
{
omschrijving = _omschrijving;
speciaal = _speciaal;
prijs = _prijs;
}
}
---------------------------------------------------------------
class Speelbord
{
Vakje[] speelbordArray = new Vakje[40];
speelbordArray[0] = new Vakje("Start" , true , 0);
}
------------------------------------------------------------------------------
Maar "speelbordArray[0] = new Vakje..." werkt niet met volgende error melding: The name 'speelbordArray' does not exist in the current context. Ben helemaal verward nu
 
Nog een vraagje;

ik heb een hoofdklasse Speelbord, dan klasse Speelkaarten die overerft van Speelbord, dan een klasse SpeelkaartenAlgemeen die overerft van Speelkaarten en nog een klasse SpeelkaartenKans die ook overerft van Speelkaart.
Nu; ik wil mijn verschillende kaarten in een lijst zetten dus doe ik het volgende in mijn hoofdklasse Speelbord:

class Speelbord
{
//aanmaken van de verschillende kansspelkaarten
List<SpeelkaartKans> kanskaartenList = new List<SpeelkaartKans>();

//aanmaken van de verschillende algemene spelkaarten
List<SpeelkaartAlgemeen> algemeenkaartenList = new List<SpeelkaartAlgemeen>();
}
------------------------------------

Is dit de goede plaats om mijn kaartenlijsten aan te maken of doe ik dit beter op een andere locatie?

EDIT: weer kan ik hier geen gebruik maken van hetvolgende:
kanskaartenList.Add( new SpeelkaartenKans("Omschrijving", 200euro betalen, niet speciaal) );

Beetje hetzelfde als mijn vorige vraag dus. Enig idee?
 
Laatst bewerkt:
Je bent bezig functies te doen in je "class".

Code:
class Speelbord
{
   int a;
   public void starten( void )
       {
          a=100;
       }
}

Speelbord henk = new Speelbord();
henk.starten();
 
Je bent bezig functies te doen in je "class".

Code:
class Speelbord
{
   int a;
   public void starten( void )
       {
          a=100;
       }
}

Speelbord henk = new Speelbord();
henk.starten();

Huh, ik versta het niet zo goed. Waar kan ik dan mijn lijst aanmaken die kanskaarten zal bevatten? Als ik het buiten de classhaakjes probeer kan ik geen List maken geeft Visual Studio aan?
Als ik een methode in de Speelbord klasse aanmaak en daarin probeer die lijst aan te maken lukt dit ook niet. Waar kan ik dan bijvoorbeeld het volgende zetten?

public List<SpeelkaartKans> kanskaartenList = new List<SpeelkaartKans>();
kanskaartenList.Add(...);
kanskaartenList.Add(...);
kanskaartenList.Add(...);

Ik ben volledig in de war nu..
 
Huh, ik versta het niet zo goed. Waar kan ik dan mijn lijst aanmaken die kanskaarten zal bevatten? Als ik het buiten de classhaakjes probeer kan ik geen List maken geeft Visual Studio aan?
Als ik een methode in de Speelbord klasse aanmaak en daarin probeer die lijst aan te maken lukt dit ook niet. Waar kan ik dan bijvoorbeeld het volgende zetten?

public List<SpeelkaartKans> kanskaartenList = new List<SpeelkaartKans>();
kanskaartenList.Add(...);
kanskaartenList.Add(...);
kanskaartenList.Add(...);

Ik ben volledig in de war nu..

EDIT: ik denk dat het me toch lukt, had even contact met iemand uit de klas en die zei dat hij ook problemen had dat sommige dingen helemaal niet werkten. Even Visual Studio afgesloten en opgestart en het werkte. Ik post zometeen even :)
Alvast bedankt Wampier!
 
Ik heb nu dit gedaan; ik denk wel dat ik zo alle kaarten erin kan stoppen:

class Speelbord
{
public Speelbord() //Constructor voor het speelbord
{
//Aanmaken van de verschillende vakjes
Vakje[] speelbordArray = new Vakje[40];

//Aanmaken van de kanskaarten-lijst
List<SpeelkaartKans> kanskaartList = new List<SpeelkaartKans>();
kanskaartList.Add(new SpeelkaartKans("Kaart1", 200, false));

//Aanmaken van de algemene-kaarten-lijst
List<SpeelkaartAlgemeen> algemenekaartenList = new List<SpeelkaartAlgemeen>();
algemenekaartenList.Add(new SpeelkaartAlgemeen("Betaal uw doktersrekening, €25", 25, false));

}


}
------------------------------------------
Wat denken jullie?
 
Nu kan ik alle kaarten erin stoppen. Echter is de vraag nu, is deze indeling goed om later de kaarten te kunnen "Verwerken"?
 
Ligt er dus aan wat je allemaal moet verwerken ;) Het is 25 jaar geleden dat ik voor het laatst monopoly heb gespeeld. In principe kun je de lijst die je in speelbord maakt altijd kopiëren en bewerken. als er echter geen verschil is tussen kans en algemeen kaarten zouden ze dezelfde klasse moeten hebben (speelkaart)
 
Ligt er dus aan wat je allemaal moet verwerken ;) Het is 25 jaar geleden dat ik voor het laatst monopoly heb gespeeld. In principe kun je de lijst die je in speelbord maakt altijd kopiëren en bewerken. als er echter geen verschil is tussen kans en algemeen kaarten zouden ze dezelfde klasse moeten hebben (speelkaart)

Dat van de algemene kaartenklasse versta ik, maar het spel zelf werkt met die 2 soorten kaarten, dus moeten we het zo implementeren. Vandaar de keuze.
over het kopiëren van de lijst; stel ik verander mijn constructor voor de SpeelkaartKans met andere parameters, dan moet ik die hele lijst toch opnieuw maken? Of is dit onvermijdelijk?

Ik wil je ook nog maar even bedanken Wampier, om me telkens snel en goed te helpen!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan