Bibliothèque de prompts
Frappes Cosmiques
Bibliothèque de prompts
- Bibliothèque
- Frappes Cosmiques
- Clairvoyant d'entreprise
- Assistant création de site web
- Expert en formules Excel
- Scripteur Google apps
- Débogueur Python
- Consultant en voyage dans le temps
- Assistant de narration
- Citez vos sources
- Sorcier SQL
- Interprète des rêves
- Jeux de mots
- Créateur culinaire
- Poète des mots-valises
- Hal l'assistant humoristique
- Légende LaTeX
- Coloriseur d'humeur
- Git gud
- Maître des comparaisons
- Navigateur de dilemmes éthiques
- Scribe de réunion
- Illuminateur d'expressions idiomatiques
- Consultant en code
- Fabricant de fonctions
- Créateur de néologismes
- Convertisseur CSV
- Encodeur d'émojis
- Perfectionnement de la prose
- Évaluateur de perspectives
- Générateur de questions-réponses
- Mentor de pleine conscience
- Simplificateur pour élèves de CE1
- Innovateur de fitness en VR
- Purificateur de PII
- Maître des mémos
- Coach de carrière
- Gourou de l'évaluation
- Virelangue
- Générateur de questions d'entretien
- Génie de la grammaire
- Devine qui je suis
- Clarificateur de code
- Anthropologue extraterrestre
- Organisateur de données
- Créateur de marque
- Estimateur d'efficacité
- Classificateur d'avis
- Décodeur de directions
- Muse motivationnelle
- Extracteur d'e-mails
- Modérateur expert
- Planificateur de leçons
- Sage socratique
- Alchimiste de l'allitération
- Conseiller en mode futuriste
- Superpouvoirs polyglottes
- Pro des noms de produits
- Réflexions philosophiques
- Sorcier des feuilles de calcul
- Simulateur de scénarios de science-fiction
- Éditeur adaptatif
- Les diffusions de Babel
- Détecteur de ton des tweets
- Analyseur de codes d'aéroport
Bibliothèque de prompts
Frappes Cosmiques
Générez un jeu interactif de frappe rapide dans un seul fichier HTML, avec un gameplay à défilement latéral et un style Tailwind CSS.
Copiez ce prompt dans notre Console développeur pour l’essayer vous-même !
Contenu | |
---|---|
User | Écrivez-moi une application web complète dans un seul fichier HTML. L’application doit contenir un simple jeu à défilement latéral où j’utilise WASD pour me déplacer. En se déplaçant dans le monde, le personnage/sprite rencontrera occasionnellement des mots. Lorsqu’un mot est rencontré, le joueur doit taper correctement le mot le plus rapidement possible. Plus le mot est tapé rapidement avec succès, plus le joueur obtient de points. Nous devrions avoir un compteur en haut à droite pour suivre les points. Les mots doivent être aléatoires et très variables pour garder le jeu intéressant. Vous devez rendre le site web très esthétique et utiliser Tailwind. |
Exemple de Sortie
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="https://cdn.tailwindcss.com"></script>
<title>Side-Scrolling Typing Game</title>
</head>
<body class="bg-gray-900 text-white">
<div class="fixed top-4 right-4 text-2xl">
Score: <span id="score">0</span>
</div>
<div id="game" class="h-screen w-screen overflow-hidden relative">
<div
id="player"
class="absolute bottom-10 left-10 w-8 h-8 bg-blue-500"
></div>
</div>
<div
id="word-input"
class="fixed top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 bg-white text-black p-4 rounded hidden"
>
<input
type="text"
id="typed-word"
class="border border-gray-300 rounded px-2 py-1 mb-2 w-full"
/>
<button id="submit-word" class="bg-blue-500 text-white px-4 py-2 rounded">
Submit
</button>
</div>
<script>
const words = [
'ability',
'able',
'about',
'above',
'accept',
'according',
'account',
'across',
'action',
'activity',
'actually',
'address',
'administration',
'admit',
'adult',
'affect',
'after',
'again',
'against',
'agency',
'agent',
'ago',
'agree',
'agreement',
'ahead',
'air',
'all',
'allow',
'almost',
'alone',
'along',
'already',
'also',
'although',
'always',
'American',
'among',
'amount',
'analysis',
'and',
'animal',
'another',
'answer',
'any',
'anyone',
'anything',
'appear',
'apply',
'approach',
'area',
'argue',
'arm',
'around',
'arrive',
'art',
'article',
'artist',
'as',
'ask',
'assume',
'at',
'attack',
'attention',
'attorney',
'audience',
'author',
'authority',
'available',
'avoid',
'away',
'baby',
'back',
'bad',
'bag',
'ball',
'bank',
'bar',
'base',
'be',
'beat',
'beautiful',
'because',
'become',
'bed',
'before',
'begin',
'behavior',
'behind',
'believe',
'benefit',
'best',
'better',
'between',
'beyond',
'big',
'bill',
'billion',
'bit',
'black',
'blood',
'blue',
'board',
'body',
'book',
'born',
'both',
'box',
'boy',
'break',
'bring',
'brother',
'budget',
'build',
'building',
'business',
'but',
'buy',
'by',
'call',
'camera',
'campaign',
];
let score = 0;
let currentWord;
let startTime;
const game = document.getElementById('game');
const player = document.getElementById('player');
const wordInput = document.getElementById('word-input');
const typedWord = document.getElementById('typed-word');
const submitWord = document.getElementById('submit-word');
const scoreDisplay = document.getElementById('score');
let playerX = 10;
let playerY = game.offsetHeight - 50;
const speed = 5;
function placeWord() {
const word = document.createElement('div');
word.textContent = words[Math.floor(Math.random() * words.length)];
word.className = 'absolute text-2xl';
word.style.left = `${game.offsetWidth + 10}px`;
word.style.top = `${Math.random() * (game.offsetHeight - 50)}px`;
game.appendChild(word);
return word;
}
function checkCollision(word) {
const playerRect = player.getBoundingClientRect();
const wordRect = word.getBoundingClientRect();
return !(
playerRect.right < wordRect.left ||
playerRect.left > wordRect.right ||
playerRect.bottom < wordRect.top ||
playerRect.top > wordRect.bottom
);
}
function startInput(word) {
currentWord = word.textContent;
wordInput.style.display = 'block';
typedWord.value = '';
typedWord.focus();
startTime = Date.now();
}
function endInput() {
wordInput.style.display = 'none';
const endTime = Date.now();
const elapsedTime = endTime - startTime;
const timeBonus = Math.max(2000 - elapsedTime, 0);
score += Math.round(1000 + timeBonus);
scoreDisplay.textContent = score;
}
function checkInput() {
if (typedWord.value === currentWord) {
endInput();
}
}
function gameLoop() {
playerY = Math.max(
0,
Math.min(playerY, game.offsetHeight - player.offsetHeight)
);
playerX = Math.max(
0,
Math.min(playerX, game.offsetWidth - player.offsetWidth)
);
player.style.top = `${playerY}px`;
player.style.left = `${playerX}px`;
const words = Array.from(
document.querySelectorAll('#game > div:not(#player)')
);
words.forEach((word) => {
const currentLeft = parseInt(word.style.left);
word.style.left = `${currentLeft - speed}px`;
if (checkCollision(word)) {
startInput(word);
}
if (currentLeft < -word.offsetWidth) {
word.remove();
}
});
if (Math.random() < 0.01) {
placeWord();
}
requestAnimationFrame(gameLoop);
}
document.addEventListener('keydown', (e) => {
if (e.key === 'w') playerY -= speed;
if (e.key === 'a') playerX -= speed;
if (e.key === 's') playerY += speed;
if (e.key === 'd') playerX += speed;
});
typedWord.addEventListener('input', checkInput);
submitWord.addEventListener('click', checkInput);
gameLoop();
</script>
</body>
</html>
Requête API
Was this page helpful?
On this page