# Gry

Kontrakty na gry umożliwiają Ci wdrożenie mechanizmu gry i zarabiania wokół gry, którą wdrożyłeś Ty lub ktoś inny.

Oto przewodnik krok po kroku dotyczący tworzenia własnej gry:

## Tworzenie gry

* Przejdź do [strony gier](https://payswap.org/games) i kliknij przycisk **Utwórz grę**

<figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-2a3fc485d4b36c7a6e6d34375dda04c65f247cb2%2Fgame.png?alt=media" alt=""><figcaption></figcaption></figure>

* Wypełnij formularz, który się pojawi i zatwierdź transakcję. To stworzy twoją grę. Jeśli planujesz używać interfejsu API do przetwarzania wyników użytkowników, powinieneś ustawić zmienną adresu umowy gry na zmienną głównego adresu PaySwap (adres, który jest właścicielem \[kanał CanCan 1]\(<https://payswap.org/> cancan/collections/1)).

<figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-e5112fa7ebc370dcff133457c9fca93e2e3caebd%2Fgame2.png?alt=media" alt=""><figcaption></figcaption></figure>

* Zaznacz przycisk **Tylko moje**, aby wyświetlić tylko listę gier i szybciej znaleźć tę, którą właśnie utworzyłeś. Jeśli nie możesz znaleźć swojej gry, załaduj ponownie stronę i spróbuj jeszcze raz.

<figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-223078f700945a55776947d2e793d2bc7bd61c1f%2Fgame3.png?alt=media" alt=""><figcaption></figcaption></figure>

## Konfigurowanie gry

* Następnym krokiem jest aktualizacja umowy o grę. Kliknij przycisk **Panel sterowania** w panelu umowy dotyczącej zakładów, a następnie przycisk **Aktualizuj grę**. Wypełnij formularz odpowiednią wartością dla każdego parametru i zatwierdź transakcję

<div><figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-2f260a43732a3e1735a0b505a16413f8840afa81%2Fgame4.png?alt=media" alt=""><figcaption></figcaption></figure> <figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-c6e30048f4b446ae57fb22c15b2f18da9c69b63a%2Fgame5.png?alt=media" alt=""><figcaption></figcaption></figure></div>

* W następnym kroku musisz zaktualizować link, aby zagrać w grę, aby użytkownicy mogli grać. W menu panelu sterowania kliknij przycisk **Aktualizuj informacje** i wypełnij formularz odpowiednią wartością w każdym polu. Najechanie kursorem na ikonę pomocy obok każdego parametru umożliwia zapoznanie się z opisem parametru. Zatwierdź formularz i potwierdź transakcję.

  <div><figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-2f260a43732a3e1735a0b505a16413f8840afa81%2Fgame4.png?alt=media" alt=""><figcaption></figcaption></figure> <figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-663cb4d407e8614dda788aec0edcc285ee7130c8%2FScreenshot%20from%202024-01-24%2023-05-46.png?alt=media" alt=""><figcaption></figcaption></figure></div>

  PaySwap wykorzystuje łącze API gry do pobierania wyników według identyfikatora tokena, dzięki czemu użytkownicy mogą aktualizować swoje wyniki w łańcuchu bloków.

## Jak grać

Oto przewodnik krok po kroku dotyczący grania w gry:

* Najpierw musisz kupić wystarczającą liczbę minut, aby grać. Jeśli na przykład kupisz 30 minut, będziesz miał 30 minut na pobranie i przesłanie wyniku ze strony gry. Wynik przesłany później nie będzie kwalifikował się do nagród w grze.
* Aby kupić minuty, przejdź do panelu swojej gry i kliknij przycisk **Wyświetl grę**, aby przejść do strony gry. Kliknij przycisk **Wybierz nowy bilet** i zatwierdź transakcję, aby wybić grę NFT, która jest niezbędna do grania w Twoją grę i odbierania nagród

<figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-99d4a1b49f2448d49e60cf8f0ce86c87077e086c%2Fgame7.png?alt=media" alt=""><figcaption></figcaption></figure>

* Po utworzeniu gry NFT ostatnia linia na obrazku poniżej na stronie gry powinna zmienić się z „Masz 0 biletów” na „Masz 1 bilet” wraz z listą identyfikatorów biletów. Zapamiętaj identyfikator biletu, ponieważ będzie on potrzebny podczas większości interakcji z grą. Identyfikator naszego biletu na obrazku poniżej to 2

<figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-d8431e38bd3a9dfb727237f4178837ca74802684%2Fgame9.png?alt=media" alt=""><figcaption></figcaption></figure>

* Możemy teraz kupić minuty w naszej grze, kupmy 30 minut. Aby to zrobić, kliknij przycisk **Graj, aby wygrać**, aby przejść do formularza widocznego na obrazku poniżej. Wypełnij formularz wystarczającą liczbą tokenów, aby kupić taką liczbę minut, jaką chcesz kupić, i zatwierdź transakcję.

<figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-d7eba8340822b19b738506e759b74392dc822d29%2Fgame10.png?alt=media" alt=""><figcaption></figcaption></figure>

* Wprowadziliśmy identyfikator NFT naszej gry, który wynosi 2 i żetonów wystarczy na zakup 30 minut w grze. Tekst **Kup XX Minut** zmienia się wraz ze zmianą liczby wysyłanych tokenów
* Musimy teraz zagrać w mecz, zdobyć wynik i przedstawić go przed upływem 30 minut, w przeciwnym razie stracilibyśmy inwestycję. U góry strony gry możesz zobaczyć przycisk **Zagraj w grę**. Kliknij na nią, aby uruchomić grę w oknie#x20;

<figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-d8431e38bd3a9dfb727237f4178837ca74802684%2Fgame9.png?alt=media" alt=""><figcaption></figcaption></figure>

* Możesz zagrać w grę z wyskakującego okienka lub kliknąć link na górze wyskakującego okienka, aby otworzyć grę w nowym oknie

<figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-276386e6db609ef9930fd9416fa76bfb84fdf1d3%2Fgame11.png?alt=media" alt=""><figcaption></figcaption></figure>

* Gdy uzyskasz zadowalający wynik, jak na obrazku poniżej, wprowadź swój identyfikator NFT gry i kliknij przycisk przesyłania na stronie gry

<figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-b62faae94c92c543a253698a98b46a0497c0112e%2Fgame12%20(1).png?alt=media" alt=""><figcaption></figcaption></figure>

* Jak widać na powyższym obrazku, gdy uzyskaliśmy najlepszy wynik, jaki mogliśmy uzyskać przed końcem zakupionych 30 minut, wprowadziliśmy identyfikator gry NFT wynoszący 2 w odpowiednim polu na stronie gry i przesłaliśmy go. Możemy grać dalej aż do upływu 30 minut i jeżeli uda nam się uzyskać lepszy wynik, to również go oddajemy w miejsce poprzedniego.
* Możesz dowiedzieć się, kiedy wygasną Twoje minuty, wpisując swój identyfikator NFT gry w poniższym formularzu na stronie gry. W naszym przykładzie poniżej kupiliśmy minuty o 19:12 (19:12), więc nasze minuty zakończą się o 19:42 (19:42); co oznacza, że do tego czasu możemy spróbować uzyskać lepszy wynik, przesyłając każdy wynik za każdym razem, aby było bezpiecznie.

<figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-783eb100cef6315f7290705e2f3a29ebf7078dbe%2Fgame13.png?alt=media" alt=""><figcaption></figcaption></figure>

* Po upływie naszych minut możemy poczekać na odpowiedni moment na przetworzenie naszego wyniku lub możemy go przetworzyć od razu. Kontrakty na gry gromadzą pulę nagród za pomocą tokenów zebranych z minutowych zakupów i obliczają wygrane użytkowników na podstawie ich wyniku.

W naszym obecnym scenariuszu pula nagród w naszej grze wynosi 3 USD, co można sprawdzić na stronie gry

<figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-485052497b691598685ad0c9a4354e0917d43ca4%2Fgame14.png?alt=media" alt=""><figcaption></figcaption></figure>

Załóżmy, że mamy pulę nagród o wartości 1000 USD i że suma punktów uzyskanych w grze przez użytkowników wynosi 8000. Grając w naszą grę, uzyskaliśmy wynik 800, więc nasza wygrana zostanie obliczona w następujący sposób: 1000 \* 800 / 8000 = 100 USD

Gdybyśmy zgłosili naszą wygraną, gdy łączna liczba punktów uzyskanych w grze wynosiła 5000, a pula nagród wynosiłaby na przykład 800, otrzymalibyśmy: 800 \* 800 / 5000 = 128

Zatem decyzja o tym, kiedy odebrać swoją wygraną, jest decyzją strategiczną. Chcesz dostrzec moment, w którym łączny wynik uzyskany w grze nie jest zbyt wysoki, ale pula nagród jest wysoka. Całkowity wynik jest dostępny u góry strony gry, jak na powyższym obrazku (w piątej linii).

## Jak odebrać wygraną

* Przejdź do [strony gier](https://payswap.org/games) i znajdź swoją grę
* Przejdź do menu panelu sterowania gry i kliknij przycisk **Wynik procesu**. Nie możesz wypełnić formularza; wystarczy zatwierdzić transakcję, aby w kontrakcie gry zapisać wynik uzyskany w grze wcześniej. PaySwap zapyta o Twój wynik z API gry i wypełni formularz, abyś mógł go zatwierdzić.

<div><figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-73b7dca0586d6f31de45c39e23578c17daf794ca%2Fgame15.png?alt=media" alt=""><figcaption></figcaption></figure> <figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-17e66b56d09b95fa3281781c2c997c0f33c3d07b%2FScreenshot%20from%202024-01-24%2023-34-04.png?alt=media" alt=""><figcaption></figcaption></figure></div>

* Powinieneś być w stanie zobaczyć całkowity wynik gry zaktualizowany o swój wynik. Następnym krokiem jest kliknięcie przycisku **Odbierz nagrody** w menu panelu sterowania. Potwierdź transakcję, aby odebrać nagrody i przenieść je do swojego portfela.\
  Możesz albo odebrać swoje nagrody od razu, albo poczekać, aż pula nagród powiększy się wraz z dołączeniem większej liczby graczy do gry i wykupieniem minut. Im większa pula nagród, tym więcej możesz wygrać, ale jest to nieco trudne, ponieważ jeśli nowym graczom uda się podnieść średni wynik w grze, może to zmniejszyć Twój udział w całkowitych zarobkach.\
  Zasadniczo musisz wybrać odpowiedni moment, aby odebrać swoje nagrody. Czy odbierzesz większą część mniejszej puli, czy mniejszą część większej puli?

## Jak zamienić każdą grę w grę, w której można zarobić

* Dodaj formularz na stronie gry, aby umożliwić użytkownikom aktualizację swoich wyników. Na przykładowym obrazku poniżej użytkownicy mogą wprowadzić swój identyfikator tokena gry i kliknąć przycisk Zapisz wynik, gdy tylko uzyskają zadowalający wynik, a gra zarejestruje jego wynik (zapisany pod nazwą **wynik**), a także czas rejestracji wyniku (zapisany pod nazwą **deadline**) oraz czas rozpoczęcia gry przez użytkownika (zapisany pod nazwą **starttime**) w bazie Firebase (możesz skorzystać z dowolnej bazy danych) ).\
  Upewnij się, że Twoje gry śledzą moment, w którym użytkownicy zaczynają grać w swoje gry (**starttime**), ponieważ ten parametr jest niezwykle ważny, aby użytkownicy mogli rejestrować wyniki tylko za zakupione minuty gry. Bez tego użytkownik może spędzać godziny na maksymalizacji swojego wyniku w określonej grze, a następnie po prostu kupić 1 minutę na stronie gier w serwisie PaySwap i wykorzystać ją do zarejestrowania wyniku. Dzięki parametrowi **starttime** będziemy w stanie wykryć rozbieżność pomiędzy zakupionymi minutami a faktycznymi minutami rozegranymi.

<figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-82ec47f39662a339a150a951e526904a60642271%2FScreenshot%20from%202024-01-24%2023-10-20.png?alt=media" alt=""><figcaption></figcaption></figure>

* Wdróż umowę na grę, wykonując powyższe kroki i pamiętaj o zaktualizowaniu informacji o grze za pomocą łącza API, które zwróci wyniki i terminy użytkowników
* W przypadku naszej gry Mario nasze łącze API to:\
  \[<https://firestore.googleapis.com/v1/projects/tiktok-a2bdb/databases/(default)/documents/c4/]\\(https://firestore.googleapis.com/v1/projects/tiktok-a2bdb/databases> /(domyślny)/documents/c4/1)
* Właśnie tym będziemy aktualizować naszą grę. Aby na przykład pobrać wynik i termin ID tokena nr 1, PaySwap po prostu doda identyfikator tokena nr 1 do zarejestrowanego przez nas łącza API, co da to\
  \[<https://firestore.googleapis.com/v1/projects/tiktok-a2bdb/databases/(default)/documents/c4/1]\\(https://firestore.googleapis.com/v1/projects/tiktok-a2bdb/> bazy danych/(domyślne)/documents/c4/1)\
  PaySwap po prostu dodaje identyfikator tokena użytkownika do łącza API, więc upewnij się, że zapisany link do interfejsu API ma końcowy ukośnik (/)\
  Zapytanie o ten punkt końcowy zwraca wynik i termin zarejestrowany dla tokenu ID 1 przez jego właściciela w następującym formacie. Upewnij się, że parametry czasu rozpoczęcia i ostatecznego terminu są zapisane w sekundach, a nie milisekundach

<figure><img src="https://26616131-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FRHjqG7Q5CKrjisqQS6x5%2Fuploads%2Fgit-blob-9cad9c9dbc065f4bf4a16f759a84bf1255b953f6%2F1.png?alt=media" alt=""><figcaption></figcaption></figure>

Dopóki Twoje API będzie zgodne z powyższym formatem i zwróci obiekt w powyższym formacie, system nie powinien mieć problemu z aktualizacją informacji o wynikach użytkowników w łańcuchu bloków, co jest dla nich niezbędnym krokiem do zdobycia nagród.

Gratulacje, Twoja gra zawiera teraz element gry, w którym można zarobić!!! Twoi użytkownicy mogą teraz:

* \`zobacz swoją grę na [stronie gier](https://payswap.org/games)\&x20;
* kup w nim wystarczającą liczbę minut, aby mogli uzyskać najlepsze wyniki
* `aktualizuj swoje wyniki w swojej scentralizowanej bazie danych`
* użyj platformy PaySwap, aby zgłosić ten wynik do łańcucha bloków za pośrednictwem dostarczonego interfejsu API
* ubiegaj się o swoje zarobki, jeśli ich wyniki są wystarczająco wysokie

[Uzyskaj dalsze wsparcie od społeczności tutaj.](https://paychat.payswap.org/#/room/%23paycom%3Amatrix.org?via=matrix.org)
