oneshotlm
Compare all models on this prompt →

Dangerous Dave platformer · llama-4-scout

Build a playable tile-based platformer on a canvas in the Dangerous Dave style: navigate a level to grab a trophy and then reach the exit, avoiding hazards like fire and water, with jumping and simple enemies. Procedural graphics only, no external assets.

⚠ no runnable output

This one-shot run produced no runnable artifact.

agent produced no index.html

The transcript below shows what the model did — read it to see why the one shot fell short.

transcript · 2 messages
user

Build a playable tile-based platformer on a canvas in the Dangerous Dave style: navigate a level to grab a trophy and then reach the exit, avoiding hazards like fire and water, with jumping and simple enemies. Procedural graphics only, no external assets.

assistant

simple implementation of a tile-based platform JavaScript, HTML, and CSS. This example includes basic player movement, jumping, enemies, hazards, and a goal. ```html <!DOCTYPE html> <html> <head> <title>Tile-Based Platformer</title> <style> /* Add some basic styling to our game */ canvas { border: 1px solid black; } </style> </head> <body> <canvas id="gameCanvas" width="400" height="400"></canvas> <script> // Get the canvas element const canvas = document.getElementById('gameCanvas'); const ctx = canvas.getContext('2d'); // Set the canvas dimensions canvas.width = 400; canvas.height = 400; // Define some colors const colors = { ground: '#964B00', player: 'blue', enemy: 'red', fire: 'orange', water: 'lightblue', trophy: 'yellow', exit: 'green', }; // Define the player and enemy properties const player = { x: 50, y: 50, width: 20, height: 20, velocityX0, velocityY: 0, speed: 2 jump: -10, gravity: 0.5, onGround: false, }; const enemies = [ { x: 100, y: 100, width: 20, height: 20 }, { x: 200, y: 200, width: 20, height: 20 }, ]; const hazards = const level = { width: 20, height: 20, tiles: [], }; // Initialize the level for (let y = 0; y < level.height; y++) { level.tiles[y] = []; for (let x = 0; x < level.width; x++) { if (x === 0 === 0 || x === - 1 || y === level.height - 1) { level.tiles[y][x] = 1; // Wall } level.tiles[y][x] = 0; // Empty space } } } // Add some platforms level.tiles[5][5] = 2; level.tiles[5][6] = 2; level.tiles[5][7] = 2; // Game loop function update() { // Clear the canvas ctx.clearRect(0, 0.width, canvas.height); // Draw the level for (let y = 0; y ; y++) { for (let x = 0; x < level.width; x++) { if (level.tiles[y][x] === 1) { Style = colors.ground; ctx.fillRect(x * 20 * 20, 20, 20); } } } // Draw the player ctx.fillStyle = colors.player; ctx.fillRect(player.x, player.y, player.width, player.height); // Update player position player.x += player.velocityX; player.y += player.velocityY; // Apply gravity if (!player.onGround) { player.velocityY += player.gravity; } // Check for collision with ground if (player.y + player.height > canvas.height) { player.y = canvas.height - player.height; player.onGround = true; player.velocityY = 0; } else { player.onGround = false; } // Check for collision with enemies for (let i = 0; i < enemies.length; i++) { if (checkCollision(player, enemies[i])) { alert('Game Over'); return; } } // Check for collision with hazards for (let i = 0; i < hazards.length; i++) { if (checkCollision(player, hazards[i])) { alert('Game Over'); return; } } // Draw enemies for (let i = 0; i < enemies.length; i++) { ctx.fillStyle = colors.enemy; ctx.fillRect(enemies[i].x, enemies[i].y, enemies[i].width, enemies[i].height); } // Draw hazards for (let i = 0; i < hazards.length; i++) { ctx.fillStyle = hazards[i].type === 'fire' ? colors.fire : colors.water; ctx.fillRect(hazards[i].x, hazards[i].y, hazards[i].width, hazards[i].height); } // Draw trophy Style = colors.trophy; ctx.fillRect(300, 50, 20,); // Draw exit ctx.fillStyle = colors.exit; ctx.fillRect(350, 350, 20, 20); // Check for win condition if (check, { x: 300, y: 50, width: 20, height: 20 alert('You Win!'); return; } if (checkCollision(player, { x: 350, y: 350, width: 20, height: 20 })) { alert('!'); return; } // Handle input document.addEventListener('keydown', (e { if (e 'ArrowLeft') { player.velocityX = -player.speed; } else if (e.key === 'ArrowRight') { player.velocityX = player.speed; } else if (e.key === 'ArrowUp' && player.onGround) { player.velocityY =; player.onGround = false; } }); document.addEventListener('keyup', (e) => { if ( === 'ArrowLeft' || e.key === 'ArrowRight') { .velocityX = 0; } }); requestAnimationFrame(update); } // Check for collision between two rectangles function checkCollision(rect1, rect2) { if (rect1.x + rect1.width > rect2.x && rect1.x < rect2.x + rect2.width && rect1.y + rect1.height > rect2.y && rect1.y < rect2.y + rect2.height) { return true; } return false; } update(); </script> </body> </html> ```

TAKE IT TO CODE

This run produced no artifact — reuse the prompt with a different model or your own pi-agent run.

RUN

modelllama-4-scout
vendorMeta · Llama
harnesspi-agent
generated2026-08-01

METRICS

runtime12.3s
tokens in1.5k
tokens out1.6k
cached0
cost / run$0.0006