[C#] MVC model yahtzee

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Cynni
  • Registratie: Maart 2015
  • Laatst online: 02-09-2024
Hello people,

Ik heb als opdracht om het yahtzee spel te maken met het mvc model maar ik krijg iets niet gemaakt. Ik heb een cheat en als je deze gebruikt wordt er een dobbelsteen toegevoegd. Wanneer het spel load dan worden er automatisch 5 dobbelsteen aangemaakt met deze code

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
int mAantalTeerlingen = 5;

void TeerlingenTonen()
    {
      for (int i = 0; i < mAantalTeerlingen; i++)
      {
        //instantie van teerlingcontroller
        TeerlingController tijdelijkeTeerling = new TeerlingController();
        mTeerlingenControl.Add(tijdelijkeTeerling);
        cheatsview.AddTeerling(tijdelijkeTeerling);
      }

      for (int i = 0; i < mAantalTeerlingen; i++)
      {
        TeerlingView teerlingView = mTeerlingenControl[i].getView();
        int horizontalPosition;
        horizontalPosition = i * teerlingView.Width;

        teerlingView.Location = new System.Drawing.Point(horizontalPosition, 0);

        panel3.Controls.Add(teerlingView);
        Controls.Add(panel3);
        mTeerlingenControl[i].Werp();
        mTeerlingenControl[i].UpdateUI();
      }
    }


en er is een andere klasse (code behind van een view - user control) waarin de clickevent staat van de cheat. Wanneer je op deze klikt zou er een dobbelsteen worden toegevoegd.

Ik weet niet hoe ik hier aan moet beginnen. ik heb al geprobeerd om de waarde van "mAantalteerlingen" te veranderen naar 6, en de form te refreshen (maar kan niet refreshen in een andere klasse), maar ik geraak niet aan de code in form in de cheat klasse.
Omdat het maken van de dobbelstenen in de load staan weet ik niet hoe ik er een kan toevoegen wanneer het spel bezig is.

Als iemand mij hiermee kan helpen zou dit geweldig zijn.
Alvast bedankt

Acties:
  • 0 Henk 'm!

  • Jogai
  • Registratie: Juni 2004
  • Laatst online: 00:08
Zo te zien gebruik je forms en geen MVC...

Klik hier om op linkedIn lid te worden van de Freelance Tweakers groep.


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 20:53

Haan

dotnetter

Jogai schreef op zaterdag 31 oktober 2015 @ 08:31:
Zo te zien gebruik je forms en geen MVC...
Ik zie wel een TeerlingController* , dus het lijkt op een poging om een soort van MVC pattern in (web?)forms te bouwen.

*please gebruik Engelse variabelen als het om generieke termen gaat (DiceController, int dices = 5, diceControl[i].ThrowDice**() etc

** geen Throw() omdat dan meestal een exception gegooid wordt ;)

Maar om nog even terug te komen op de vraag, ik denk dat er e.e.a. niet helemaal klopt in je opzet, maar dat is niet helemaal goed te zien obv alleen de code die je nu hebt gepost. Ik mis ook de M van MVC, je hebt een controller, een view, maar ik zie er geen Model in gaan bijvoorbeeld.

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 00:29
Haan schreef op zondag 01 november 2015 @ 12:03:
[...] *please gebruik Engelse variabelen als het om generieke termen gaat[...]
Och.., die eeuwige discussie. Dit staat echt compleet os van zijn vraag en ook nog eens een punt waar nog steeds hevig discussie over is of die zelfs wel klopt.
[..]
Maar om nog even terug te komen op de vraag, ik denk dat er e.e.a. niet helemaal klopt in je opzet, maar dat is niet helemaal goed te zien obv alleen de code die je nu hebt gepost. Ik mis ook de M van MVC, je hebt een controller, een view, maar ik zie er geen Model in gaan bijvoorbeeld.
Het lijkt alsof hij de codebehind als model beschouwd. Dan nog is zijn code wat vreemd van opzet. Ik denk iig dat TS zich even moet inlezen in MVC (Wikipedia artikel is een mooi startpunt) en het pattern tegen zijn code aan moet houden.

Om dan even terug te komen op zijn probleem:
[...]
Ik weet niet hoe ik hier aan moet beginnen. ik heb al geprobeerd om de waarde van "mAantalteerlingen" te veranderen naar 6, en de form te refreshen (maar kan niet refreshen in een andere klasse), maar ik geraak niet aan de code in form in de cheat klasse.
Omdat het maken van de dobbelstenen in de load staan weet ik niet hoe ik er een kan toevoegen wanneer het spel bezig is.[...]
Als je de dobbelstenen in een aparte class bijhoudt en deze vervolgens gebruikt in de controllers dan ben je al een stap dichterbij. Dan is je 'probleem' dat je de model wilt delen door verschillende classes die niets van elkaar zouden moeten weten (de controllers). Hier heb je weer andere patterns voor om het op te lossen. Bijv. een singleton of dependency injection.
Vervolgens wil je op het model een manier hebben waarop je een extra dobbelsteen kan toevoegen of wellicht wil je als model een enkele dobbelsteen hebben en in de controller een set van dobbelstenen bijhouden.

Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Haan schreef op zondag 01 november 2015 @ 12:03:

*please gebruik Engelse variabelen als het om generieke termen gaat (DiceController, int dices = 5, diceControl[i].ThrowDice**() etc
offtopic:
Los van wat Caelorum zegt geef jij een goede reden om het niet te doen als je de taal niet beheerst :P Die is enkelvoud, dice is meervoud :)

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
kenneth schreef op maandag 02 november 2015 @ 06:47:
[...]

offtopic:
Los van wat Caelorum zegt geef jij een goede reden om het niet te doen als je de taal niet beheerst :P Die is enkelvoud, dice is meervoud :)
offtopic:
Hij gooit toch 5 dobbelstenen?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 00:29
kenneth schreef op maandag 02 november 2015 @ 06:47:
[...]
offtopic:
Los van wat Caelorum zegt geef jij een goede reden om het niet te doen als je de taal niet beheerst :P Die is enkelvoud, dice is meervoud :)
RobIII schreef op maandag 02 november 2015 @ 08:37:
[...]
offtopic:
Hij gooit toch 5 dobbelstenen?
En nu weer ontopic :)
Ik vraag me eigenlijk ook nog af waarom je twee keer een forloop gebruikt.
Pagina: 1