I har 5 dage (hele anden uge) til at lave følgende aflevering - den virker som en stopprøve, hvilket betyder at hvis I ikke aflevere til tiden og med en aflevering af en standart som er forventet, tager vi en samtale og der skal laves en genaflevering. I værste fald bliver man meldt at H1. Husk det er anden uge på forløbet, så forventningerne er ikke høje!
Til opgaven skal I bruge følgende GitHub Repository som I for udleveret af jeres underviser - https://github.com/Mercantech/Banko
Lav et program til at få en fordel i et spil banko - banko plader laves på følgende hjemmeside →
https://mercantech.github.io/Banko/
Flere plader giver større chance for at vinde i et spil banko - på hjemmesiden kan vi lave så mange plader som vi vil. Det er dog svært at holde styr på flere plader - derfor skal vores program give os en fordel i at vi kan holde øje med så mange plader som programmet kan håndtere.
Vi skal holde styr på hvornår vi har en plade med 1 række, 2 rækker og fuld plade. Der kan hurtigt komme problemer med vores kode, i forhold til at holde styr på de forskellige plader og dens rækker.
Derudover skal vi få lavet en metode til at få pladerne ind i vores program og holde styr på deres ID som blev skrevet ind på hjemmesiden.
Her ser vi pladen for “Banko” med stort B. Hvis man skriver “Banko” ind i feltet, er det altid denne plade som kommer! Derfor skal vi finde en måde at gemme strengen “Banko” sammen med pladen som man ser på billedet →
Hvis pladen her for banko, fx med tallene 12, 31, 40, 61 og 72, skal I kunne finde ud af hvad pladen som har banko hedder.
Bankopladerne følger reglerne her:
Dette kan måske hjælpe til at lave jeres algoritme. Vi spiller på 1. Række, 2. Række og fuld plade!
Som minimum forventer jeg at man laver et program som kan tjekke 2 manuelt indtastede plader og kende forskelle på hvilke rækker der er fyldt og på hvilken plade det er.
Du skal aflevere en video, videoen skal indeholde: (Max 7 minutter video)
Upload den på teams helst som en fil - ikke et link!
<aside> ☝🏼
Den her sektion er kun efter man selv har prøvet eller føler sig lidt fortabt! Man må altså ikke bruge den inden man har brugt 25% af tiden på opgaven!
</aside>
<aside> ☝🏼
Dette trin er først til når I har en fungerende version som virker på 5 hard coded plader!
</aside>
Banko handler om at generere og holde styr på så mange bankoplader som muligt fra en bestemt hjemmeside. Selenium kan hjælpe ved at:
Her er et simplificeret eksempel på, hvordan du kan bruge Selenium til denne opgave:
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
class Program
{
static void Main(string[] args)
{
// Start browseren
IWebDriver driver = new ChromeDriver();
// Gå til hjemmesiden
driver.Navigate().GoToUrl("<https://mercantech.github.io/Banko/>");
// Find og klik på knappen for at generere en plade
IWebElement generateButton = driver.FindElement(By.Id("generateButtonId")); // Brug det faktiske ID
generateButton.Click();
// Vent på, at pladen bliver genereret
System.Threading.Thread.Sleep(2000); // En simpel måde at vente, brug evt. WebDriverWait for bedre kontrol
// Hent pladedata (fx rækker og ID)
IWebElement plateElement = driver.FindElement(By.CssSelector(".plateClass")); // Brug det faktiske CSS-selector
string plateData = plateElement.Text;
Console.WriteLine($"Plade data: {plateData}");
// Luk browseren
driver.Quit();
}
}
Som standart er jeres program kun rettet mod konsollen, dog hvis I når at blive hurtigt færdig kan I med fordel bygge en UI op jeres projekt. Det kan være I allerede har erfaring med et UI-framework inden for C#, såsom WPF, ellers vil jeg anbefale Blazor, da det er den vi skal bruge til jeres H1 projekt.