Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Escape the sheet je malá excelová hra, kterou jsem sestavil před několika lety, abych naučil skupinu kolegů pokročilejších excelských dovedností a zároveň si užil zábavu s logickými hrami Trivia a Logic, což jsou dvě věci, které miluji!
Tato hra je kombinací vzorců Excelu, podmíněného formátování jak pro aktuální buňku, tak pro hodnoty založené na jiné buňce a některých makrech VBA, aby bylo kódování trochu náročnější.
Krok 1: Koncept hry
K napsání hry opravdu nepotřebujete žádné obrovské zkušenosti s programováním ani drahý software, tady je ten, který můžete dělat v Excelu.
Hra je malý 2 parter, první úroveň je vědomostní kvíz.
V systému je banka 50 otázek, i když by to mohlo být více, pokud jste tak nakloněni.
Chcete -li odstranit případné nejasnosti s pravopisem nebo shodou velkých a malých písmen, všechny otázky mají číselné odpovědi.
Systém náhodně předloží 5 z těchto otázek hráči, hráč může požádat o novou sadu otázek.
Jakmile bude zodpovězeno 5 otázek, systém poté hráče upozorní, že neuspěli, a zkusí to znovu, nebo otevře místnost 2.
Místnost 2 je logická hádanka, kde se také náhodně generuje barevná sekvence a hráč se může kdykoli regenerovat. Každá z barev je spojena s číslem 1-10, hráč musí použít pokus a omyl/paměť, aby našel čísla, která odpovídají, a replikoval posloupnost.
Krok 2: Nastavení
Zpočátku jsem nastavil sešit se 4 prázdnými listy.
Počínaje listem 3 jsem vytvořil tabulku se záhlavím „Otázka“a „Odpověď“
Ve sloupci A a pomocí automatického vyplňování se zadávají čísla 1-50, je důležité, aby byly otázky pro výběr očíslovány.
Poté přejdu na internet a projdu si v paměti 50 otázek s číselnými odpověďmi.
Nyní potřebujeme způsob, jak tyto otázky importovat na obrazovku Místnosti 1 na listu 1.
To se provádí pomocí funkce VLOOKUP, což nám umožňuje použít číslo na začátku řádku otázek. Pokud bychom však použili pouze 1-5 z listu Místnosti 1, dostali bychom pouze prvních 5 otázek a ve stejném pořadí. Zde přichází list 2, zde jsou 2 řádky vzorců, první používá funkci RANDBETWEEN, což uživateli umožňuje zadat rozsah, mezi nímž bude generován náhodný záznam. Problém je v tom, že s malým rozsahem, jako je tento, existuje vysoká pravděpodobnost, že budou existovat duplikáty a že by to nevedlo k velmi záludnému kvízu. Abychom to překonali, existuje druhý sloupec, který to posouvá o krok dále a odstraňuje duplikáty pomocí funkcí RANK. EQ i COUNTIF, které řadí hodnotu proti zbytku seznamu a počítají, pokud se hodnota v úplný seznam, tyto hodnoty se sčítají a výsledkem je náhodná a jedinečná hodnota. Můžeme to potvrdit zkopírováním seznamu, vložením hodnot a seřazením od nejmenších po největší. Zobrazí se všechny jedinečné hodnoty 1-50.
V místnosti 1 pak můžeme pomocí funkce VLOOKUP odebrat ze seznamu 1., 2., 3. atd. Hodnotu a v listu otázek vyhledat otázku i odpověď. Při každé regeneraci náhodných čísel se na obrazovce Místnosti 1 objeví nová sada otázek.
Excel je nakonfigurován na automatický výpočet, což způsobuje problém s funkcí RANDBETWEEN, protože při každém načtení stránky se spustí výpočet a změní pořadí otázek. To lze nastavit na manuální nákup na Vzorce na pásu karet, poté Možnosti výpočtu a nastavení na manuální, o výpočet se postaráme později.
Než budeme s touto stránkou hotovi, skryjeme sloupec C (skutečné odpovědi)
Krok 3: Kontroly odpovědí
Kontrola odpovědí je opravdu velmi jednoduchá. Hodnota všech očekávaných odpovědí se sečte do buňky ve spodní části sloupce C v místnosti 1, odpovědi hráčů se načtou do sloupce D a sečtou.
Skript VBA je naprogramován na tlačítko pro spuštění výpočtu a kontrolu odpovědí.
Chcete -li přidat tlačítko, přejděte na pásu karet na položku Vývojář, přidejte tlačítko pomocí Vložit -> Tlačítko
Po nakreslení tlačítka je možnost přidat nové makro. V tomto případě jsem to nazval zkontrolovat odpovědi
To vše provede výpočet (pouze pro tento list) a zkontroluje, zda se součet očekávaných odpovědí shoduje se součtem odpovědí hráčů. Pokud se čísla neshodují, objeví se okno se zprávou, že zkuste to znovu, pokud jsou úspěšné, odkryjeme list pro místnost 2.
Do buňky B28 je také umístěn podmíněný formát se šipkou, která uživatele přiměje přesunout karty.
Krok 4: Získávání různých otázek
Abychom dostali nové otázky pro hráče, jednoduše musíme znovu spustit výpočty na listu 2 (list s náhodnými čísly) a poté na listu místnosti 1, což způsobí, že VLOOKUP odkazuje na novou sadu čísel a také vytáhne nový související otázky. Tento kousek kódu také vymaže sekci Odpovědi hráčů.
Krok 5: Místnost 2
Místnost 2 je logická a paměťová logická hra, kterou nám uživatel představil se sekvencí 6 náhodně generovaných barev, opět používá funkci RANDBETWEEN s rozsahem 1-10.
Existují pravidla podmíněného formátování, která na základě čísla v buňce mění barvu výplně a písma v závislosti na hodnotě.
Hráč musí zadat tato čísla v pořadí a poté zadat šek, neexistuje žádný náznak, jaké barvy je jaké číslo, takže při testování si musí pamatovat, jaký výsledek získal pro každý záznam.
Opět se sečtou hodnoty v buňkách odpovědí, sečtou se také odpovědi hráče a makro spustí výpočet, vyplní barvy a otestuje výsledek. To buď hráče přiměje, aby to zkusil znovu, nebo mu poblahopřeje k výhře.
K dispozici je také nové tlačítko sekvence, které umožňuje hráči získat nové barvy, to spustí výpočet, ale pouze na buňkách v řádku 10 a vymaže odpovědi hráče v řádku 12.
Zkoušel jsem hru nahrát, ale protože je to soubor.xlsm, není to povoleno, takže si můžete stáhnout kopii odtud, pokud máte nějaké dotazy, napište mi zprávu.