Zie Scherp - Oefeningen
Handboek Zie Scherp Scherper 2e editieThe Corona filesHandboek backupOefeningen backup
  • Welkom
  • Oefeningen H1 tot en met H5
    • Oefeningen H1
    • Oefeningen H2
    • Oefeningen H3
    • Oefeningen H4
    • Oefeningen H5
    • Gecombineerde oefeningen
      • Opgave 1
      • Opgave 2
      • Opgave 3
      • Opgave 4
      • Opgave 5
  • Oefeningen H6 tot en met H8
    • Oefeningen H6
      • Week 1
      • Week 2
    • Oefeningen H7
      • Week 1
      • Week 2
    • Oefeningen H8
      • Week 1
      • Week 2
    • Voorbeeld vaardigheidsproeven
      • Opgave 1 (2022)
      • Opgave 2 (2019)
      • Opgave 3 (2019)
      • Opgave 4 (2020)
      • Opgave 5 (2020)
      • Opgave 6 (2021)
      • Opgave 7 (2022)
      • Opgave 8 (2022)
      • Opgave 9 (2023)
      • Opgave 10 (2024)
      • Opgave 11 (2024)
      • Opgave 12 (2025)
    • Gecombineerde opgaven
      • Console Matrix
      • Unicode filmpjes maken met loops
      • Unicode filmpjes maken met methoden
      • Music Maestro
      • Fun with methods: een verhaalgenerator
      • Tekst-gebaseerd Maze game
      • Conway game of life
      • How to make your console app look cool
  • Oefeningen H9 tot en met H12
    • Oefeningen H9
    • Oefeningen H10
    • Oefeningen H11
    • Oefeningen H12
    • Gecombineerde oefeningen
      • Opgave 1
      • Opgave 2
      • Opgave 3
      • Opgave 4
      • Opgave 5
  • Oefeningen H13 tot en met H18
    • Oefeningen H13
    • Oefeningen H14
    • Oefeningen H15
    • Oefeningen H16
    • Oefeningen H17
    • Oefeningen H18
    • Voorbeeld vaardigheidsproeven
      • Opgave 1 (2019)
      • Opgave 2 (2019)
      • Opgave 3 (2020)
      • Opgave 4 (2021)
      • Opgave 5 (2021)
      • Opgave 6 (2022)
      • Opgave 7 (2022)
      • Opgave 8 (2023)
      • Opgave 9 (2024)
    • Gecombineerde oefeningen
      • OO Textbased Game
      • Map Maker
      • Mapmaker & WPF
      • Magic The Gathering API
      • C# Game remakes
Powered by GitBook
On this page
  • In opbouw
  • Samenvatting
  • Nuget installeren
  • Broncode
  • Stap 1 : Set tonen
  • Stap 2: Controleren op geldige set
  • Stap 3: Boosterpack generen en tonen
  • Stap 4: kaart tonen
  • Alle code samen

Was this helpful?

  1. Oefeningen H13 tot en met H18
  2. Gecombineerde oefeningen

Magic The Gathering API

PreviousMapmaker & WPFNextC# Game remakes

Last updated 7 months ago

Was this helpful?

In opbouw

Dit project hoort niet bij de leerstof, daar het het concept van API gebruikt dat we nog niet hebben gezien. Dit is echter zo eenvoudig dat ik hoop dat het sommige studenten zin geeft om verder exploreren.

Samenvatting

  • API=Application programming interface

  • .NET bibliotheek die praat met (rate limited!)

  • Broncode+ voorbeelden

Nuget installeren

  1. In project, rechterklikken op References -> Manage Nuget packages…

  2. Klikken op Browse, zoeken naar "mtg"

  3. MtgApiManager.Lib installeren

Broncode

Volgende voorbeeld is gebaseerd op een oude versie van de nuget package en zal dus niet meer werken met de huidige. De auteur van dit boek (ikke) is te lui om de tutorial aan te passen en verwijst daarom naar waar tal van codevoorbeelden staan!

We maken een applicatie die aan de gebruiker alle edities van Magic toont. De gebruiker kiest vervolgens van welke editie hij een 'boosterpack' wenst te generen (boosterpack= pakje kaarten dat je in de winkel kan kopen met daarin een vast aantal kaarten waarvan ook steeds minstens 1 zeldzame kaart).

Voeg zeker bovenaan toe:

using MtgApiManager.Lib.Service;

Stap 1 : Set tonen

 SetService service = new SetService();
var result = service.All();
foreach (var set in result.Value)
{
    Console.WriteLine($"{set.Name} ({set.Code})");
}

Stap 2: Controleren op geldige set

Console.WriteLine("Voor welke set wil je booster (voer code tussen haakjes in)?");

string code = Console.ReadLine().ToLower();
bool isValid = false;
foreach (var set in result.Value)
{
    if (set.Code.ToLower() == code)
    {
        isValid = true;
        break;
    }
}

Stap 3: Boosterpack generen en tonen

var boosterresult = service.GenerateBooster(code);
var boosterpack = boosterresult.Value;
if (boosterpack != null)
{
    for (int i = 0; i < boosterpack.Count; i++)
    {
        Console.WriteLine($"{i}:{boosterpack[i].Name}");

    }
}

Stap 4: kaart tonen

Vragen welke kaart getoond moet worden

 Console.WriteLine("Welke kaart wenst u meer info");
int keuze = Convert.ToInt32(Console.ReadLine());
Console.Clear();
MtgApiManager.Lib.Model.Card chosenCard = boosterpack[keuze];
Console.WriteLine(chosenCard.Name);
Console.WriteLine(chosenCard.Text);
Console.WriteLine(chosenCard.Rarity);
Console.WriteLine("Druk op enter om afbeelding te tonen");
Console.ReadLine();
System.Diagnostics.Process.Start(chosenCard.ImageUrl.ToString());

Alle code samen

SetService service = new SetService();
var result = service.All();
foreach (var set in result.Value)
{
    Console.WriteLine($"{set.Name} ({set.Code})");
}

Console.WriteLine("Voor welke set wil je booster (voer code tussen haakjes in)?");

string code = Console.ReadLine().ToLower();
bool isValid = false;
foreach (var set in result.Value)
{
    if (set.Code.ToLower() == code)
    {
        isValid = true;
        break;
    }
}
if (isValid)
{
    var boosterresult = service.GenerateBooster(code);
    var boosterpack = boosterresult.Value;
    if (boosterpack != null)
    {
        for (int i = 0; i < boosterpack.Count; i++)
        {
            Console.WriteLine($"{i}:{boosterpack[i].Name}");

        }
        Console.WriteLine("Welke kaart wenst u meer info");
        int keuze = Convert.ToInt32(Console.ReadLine());
        Console.Clear();
        MtgApiManager.Lib.Model.Card chosenCard = boosterpack[keuze];
        Console.WriteLine(chosenCard.Name);
        Console.WriteLine(chosenCard.Text);
        Console.WriteLine(chosenCard.Rarity);
        Console.WriteLine("Druk op enter om afbeelding te tonen");
        Console.ReadLine();
        System.Diagnostics.Process.Start(chosenCard.ImageUrl.ToString());
    }
    else
    {
        Console.WriteLine("Iets is mislukt, sorry");
    }
}
magicthegathering.io
hier
hier