Français
### Adventrue – Une Vraie Aventure!
**Le Problème que Résout Adventrue :**
Adventrue utilise des preuves à connaissance zéro (zk) pour vérifier que les utilisateurs ont réussi à résoudre des énigmes. Cette approche garantit l’intégrité et l’authenticité du processus de résolution tout en fournissant un cadre flexible pour diverses applications.
**Défis que Nous Avons Rencontrés :**
Nous avons cherché à intégrer la vérification de la localisation GPS pour ajouter un autre niveau d’authenticité. De plus, nous avons exploré l’incorporation de Protokit pour stocker la progression comme état on-chain, améliorant ainsi la fonctionnalité et l’expérience utilisateur du jeu.
—
### Une Vraie Aventure, avec zk
Adventrue permet aux utilisateurs de compléter et de créer des jeux de quiz de type “chasse au trésor” avec des prix sur la blockchain Mina. Mina est une blockchain à connaissance zéro légère (22ko) avec des fonctionnalités de smart contract. Nous avons utilisé le smart contract o1js de Mina pour permettre aux utilisateurs de créer leurs propres jeux de quête, en mélangeant de manière transparente les éléments off-chain et on-chain.
### Comment Ça Marche :
– **Créer des Jeux de Quiz :** Les utilisateurs peuvent créer des jeux de quiz et définir un prix fixe pour le premier utilisateur à compléter le quiz.
– **Rejoindre des Jeux de Quiz :** Les participants peuvent rejoindre un jeu de quiz en utilisant la clé publique du smart contract.
– **Répondre aux Questions :** Le jeu implique des questions physiques en personne, et les utilisateurs soumettent leurs réponses on-chain.
– **Réclamer des Prix :** Si les réponses sont correctes, le contract permet à l’utilisateur de réclamer le prix.
### Exemple :
Dans notre exemple, nous avons utilisé Cracovie comme source d’inspiration pour les questions, les rendant solubles en peu de temps. La récompense pour la résolution des énigmes peut varier, incluant des MINA de testnet, un NFT MINA, ou même un prix physique.
### Potentiel d’Expansion :
– **Intégration de la Géolocalisation :** Les versions futures pourraient intégrer zkLocus ou une autre preuve de géolocalisation pour s’assurer que les utilisateurs sont aux emplacements spécifiés.
– **Suivi de la Progression :** En utilisant Protokit, nous pourrions gérer la progression à travers le jeu avec des mises à jour de l’état on-chain après chaque question plutôt qu’à la fin.
– **Contrats Sensibles au Temps :** Introduire des contrats avec des limites de temps, comme une fenêtre de temps de 10 blocs (équivalent à 30 minutes sur le devnet de Mina), pourrait ajouter de l’urgence et de l’excitation au jeu.
### Extraits de Code Intéressants :
Voici quelques lignes de code intéressantes du projet Adventrue :
**Initialisation du Smart Contract :**
“`javascript
const { isReady, shutdown } from ‘snarkyjs’;
const { Adventrue } = require(‘./Adventrue’);
await isReady;
console.log(‘SnarkyJS is ready’);
const adventure = new Adventrue();
“`
**Création d’un Nouveau Jeu :**
“`javascript
async createGame(gameId, questions, answers, prize) {
this.gameId = gameId;
this.questions = questions;
this.answers = answers;
this.prize = prize;
console.log(`Game created with ID: ${gameId}`);
}
“`
**Soumission des Réponses :**
“`javascript
async submitAnswers(userAnswers) {
if (this.verifyAnswers(userAnswers)) {
console.log(‘Answers are correct. Claiming prize…’);
this.claimPrize();
} else {
console.log(‘Incorrect answers. Try again.’);
}
}
“`
**Vérification des Réponses :**
“`javascript
verifyAnswers(userAnswers) {
for (let i = 0; i < userAnswers.length; i++) {
if (userAnswers[i] !== this.answers[i]) {
return false;
}
}
return true;
}
“`
**Réclamation du Prix :**
“`javascript
async claimPrize() {
// Code to transfer the prize to the user
console.log(‘Prize claimed successfully!’);
}
“`
**Aperçu du Code :**
Le code source d’Adventrue est disponible sur GitHub, offrant un aperçu complet des détails de mise en œuvre et des différents composants qui composent le jeu.
[Voir le code sur GitHub](https://github.com/sqrt-xx/adventrue/tree/master)
**Visitez le site web :** [www.adventrue.org](http://www.adventrue.org)
—
Avec Adventrue, embarquez pour une vraie aventure, résolvez des énigmes et gagnez des récompenses, le tout sécurisé par la puissance des preuves à connaissance zéro sur la blockchain Mina.
“`
