Inhoudsopgave:

Ontsnap aan het blad (Excel-puzzel): 5 stappen (met afbeeldingen)
Ontsnap aan het blad (Excel-puzzel): 5 stappen (met afbeeldingen)

Video: Ontsnap aan het blad (Excel-puzzel): 5 stappen (met afbeeldingen)

Video: Ontsnap aan het blad (Excel-puzzel): 5 stappen (met afbeeldingen)
Video: Wie is het, maar dan anders #BRAILLE #BILLEN #blindfluencer #blindfun #VoelJeGOED @roxannekwant3463 2024, November
Anonim
Ontsnap aan het blad (Excel-puzzel)
Ontsnap aan het blad (Excel-puzzel)

Escape the sheet is een klein Excel-spel dat ik enkele jaren geleden heb samengesteld om een groep collega's wat meer geavanceerde Excel-vaardigheden te leren terwijl ik een beetje plezier heb met Trivia en Logic-puzzels, twee dingen waar ik dol op ben!

Deze game is een combinatie van Excel-formules, voorwaardelijke opmaak voor zowel de huidige cel als voor waarden op basis van een andere cel en enkele VBA-macro's om het coderen een beetje uitdagender te maken.

Stap 1: Het spelconcept

Het spelconcept
Het spelconcept
Het spelconcept
Het spelconcept

Je hebt niet echt een enorme programmeerervaring of dure software nodig om een spel te schrijven, hier is er een die je in Excel kunt doen.

De game is een kleine 2-parter, het eerste niveau is een trivia-quiz.

Er is een bank van 50 vragen in het systeem, maar dit kunnen er meer zijn als je zo geneigd bent.

Om elke mogelijke dubbelzinnigheid met spelling of hoofdletters te verwijderen, hebben alle vragen numerieke antwoorden.

Het systeem zal willekeurig 5 van deze vragen aan de speler presenteren, de speler kan een nieuwe reeks vragen aanvragen.

Zodra de 5 vragen zijn beantwoord, zal het systeem de speler laten weten dat het niet is gelukt en om het opnieuw te proberen, anders wordt kamer 2 geopend.

Room 2 is een logische puzzel waarbij een kleurenreeks ook willekeurig wordt gegenereerd en de speler op elk moment kan regenereren. Elk van de kleuren is gekoppeld aan een nummer 1-10, de speler moet vallen en opstaan /geheugen gebruiken om de nummers te vinden die overeenkomen en de reeks te repliceren.

Stap 2: De installatie

De opzet
De opzet

In eerste instantie heb ik de werkmap opgezet met 4 blanco werkbladen.

Beginnend met blad 3 heb ik een tabel gemaakt met een kop "Vraag" & "Antwoord"

In kolom A en met behulp van autofill worden de nummers 1-50 ingevuld, het is belangrijk dat de vragen genummerd zijn voor het selectieproces.

Ik ga dan online en door mijn geheugen voor 50 vragen met numerieke antwoorden.

We hebben nu een manier nodig om deze vragen te importeren naar het scherm Kamer 1 op blad 1.

Dit wordt gedaan met behulp van een VERT. ZOEKEN-functie, hierdoor kunnen we het nummer aan het begin van de vragenrij gebruiken. Als we echter alleen 1-5 van het blad Kamer 1 zouden gebruiken, zouden we alleen de eerste 5 vragen en in dezelfde volgorde krijgen. Dit is waar blad 2 binnenkomt, er zijn hier 2 rijen formules, de eerste gebruikt de RANDBETWEEN-functie, hierdoor kan de gebruiker een bereik invoeren waartussen een willekeurige invoer wordt gegenereerd. Het probleem is dat met een klein bereik zoals dit de kans groot is dat er duplicaten zijn en dat zou geen erg lastige quiz zijn. Dus om dit te verhelpen is er een tweede kolom die een stap verder gaat en duplicaten verwijdert met behulp van zowel de RANK. EQ- als AANTAL. ALS-functies, deze rangschikken de waarde ten opzichte van de rest van de lijst en tellen als er een herhaling is van de waarde in de volledige lijst, deze waarden worden bij elkaar opgeteld en dit levert een willekeurige en unieke waarde op. We kunnen dit bevestigen door de lijst te kopiëren, vervolgens waarden te plakken en van klein naar groot te sorteren, dit toont alle unieke waarden van 1-50.

Terug in kamer 1 kunnen we dan VERT. ZOEKEN gebruiken om de 1e, 2e, 3e etc. waarde uit de lijst te halen en deze op het vragenblad op te zoeken voor zowel de vraag als het antwoord. Elke keer dat de willekeurige getallen opnieuw worden gegenereerd, verschijnt er een nieuwe reeks vragen op het scherm van Kamer 1.

Excel is geconfigureerd om automatisch te berekenen, dit veroorzaakt een probleem met de RANDBETWEEN-functie omdat elke keer dat een pagina wordt geladen, de berekening wordt uitgevoerd en de vragen opnieuw worden gerangschikt. Dit kan worden ingesteld op handmatig kopen door naar Formules in het lint te gaan, vervolgens Berekeningsopties en instellen op handmatig, we zullen later voor de berekening zorgen.

Voordat we klaar zijn met deze pagina verbergen we kolom C (de eigenlijke antwoorden)

Stap 3: Antwoordcontroles

Antwoordcontroles
Antwoordcontroles

De antwoordcontrole is eigenlijk vrij eenvoudig. De waarde van alle verwachte antwoorden wordt opgeteld in een cel onderaan kolom C in kamer 1, de antwoorden van de spelers worden in kolom D geladen en opgeteld.

Een VBA-script is geprogrammeerd in een knop om de berekening uit te voeren en de antwoorden te controleren.

Om de knop toe te voegen, ga naar Ontwikkelaar in het lint, voeg een knop toe met Invoegen -> Knop

Zodra u de knop tekent, is er een optie om een nieuwe macro toe te voegen. In dit geval noemde ik het check antwoorden

Dit alles doet de berekening (alleen voor dit blad) en controleert of de som van de verwachte antwoorden overeenkomt met de som van de antwoorden van de spelers. Als de nummers niet overeenkomen, verschijnt er een berichtvenster om te zeggen probeer het opnieuw. Als ze succesvol zijn, maken we het blad zichtbaar voor kamer 2.

Er is ook een voorwaardelijke opmaak in cel B28 geplaatst met een pijl, die de gebruiker vraagt om tabbladen te verplaatsen.

Stap 4: Verschillende vragen krijgen

Verschillende vragen krijgen
Verschillende vragen krijgen

Om nieuwe vragen voor de speler te krijgen, hoeven we alleen maar de berekeningen opnieuw uit te voeren op zowel blad 2 (het blad met willekeurige getallen) en vervolgens op het blad Kamer 1. Dit zorgt ervoor dat de VERT. ZOEKEN naar een nieuwe reeks getallen verwijst en ook de nieuwe bijbehorende vragen. Dit stukje code wist ook het antwoordgedeelte van de speler.

Stap 5: Kamer 2

Kamer 2
Kamer 2

Kamer 2 is een logische en geheugenpuzzel, de gebruiker die ons een reeks van 6 willekeurig gegenereerde kleuren heeft gepresenteerd, gebruikt opnieuw de RANDBETWEEN-functie met het bereik van 1-10.

Er zijn voorwaardelijke opmaakregels die gebaseerd zijn op het getal in de cel dat de vulling en de kleur van het lettertype veranderen, afhankelijk van de waarde.

De speler moet deze nummers op volgorde invoeren en vervolgens cheque invoeren, er zijn geen aanwijzingen voor welke kleur welk nummer is, dus als ze testen, moeten ze onthouden welk resultaat ze voor elke invoer hebben gekregen.

Opnieuw worden de waarden in de antwoordcellen opgeteld, de antwoorden van de speler worden ook opgeteld en de macro voert de berekening uit, vult de kleuren in en test het resultaat. Dit vraagt de speler om het opnieuw te proberen of feliciteert hem met de overwinning.

Er is ook een nieuwe reeksknop waarmee de speler nieuwe kleuren kan krijgen, deze voert de berekening uit, maar alleen op de cellen in rij 10 en wist de antwoorden van de speler in rij 12.

Ik heb geprobeerd het spel te uploaden, maar omdat het een.xlsm-bestand is, is dit niet toegestaan, dus voel je vrij om hier een kopie te downloaden, als je vragen hebt, stuur me dan een bericht.

Aanbevolen: