Управление: Используйте стрелки на клавиатуре ⬆️ ⬇️ ⬅️ ➡️
Собирайте еду и растите, не врезайтесь в стены и себя!
const canvas = document.getElementById(‘gameCanvas’);
const ctx = canvas.getContext(‘2d’);
const scoreElement = document.getElementById(‘score’);
const gridSize = 20;
const tileCount = canvas.width / gridSize;
let snake = [{x: 10, y: 10}];
let velocityX = 0;
let velocityY = 0;
let foodX = 15;
let foodY = 15;
let score = 0;
let gameRunning = true;
function drawGame() {
if (!gameRunning) return;
moveSnake();
if (checkCollision()) {
gameRunning = false;
ctx.fillStyle = ‘rgba(255, 0, 0, 0.7)’;
ctx.font = ’30px Arial’;
ctx.fillText(‘Game Over!’, canvas.width / 2 – 80, canvas.height / 2);
return;
}
if (snake[0].x === foodX && snake[0].y === foodY) {
score++;
scoreElement.textContent = score;
generateFood();
snake.push({…snake[snake.length – 1]});
}
clearCanvas();
drawFood();
drawSnake();
setTimeout(drawGame, 100);
}
function clearCanvas() {
ctx.fillStyle = ‘#0a0e27’;
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = ‘rgba(255, 255, 255, 0.3)’;
var i = 0;
while (i < 50) {
var x = Math.random() * canvas.width;
var y = Math.random() * canvas.height;
ctx.fillRect(x, y, 1, 1);
i++;
}
}
function drawSnake() {
var snakeIndex = 0;
while (snakeIndex < snake.length) {
var segment = snake[snakeIndex];
ctx.fillStyle = snakeIndex === 0 ? '#00ff88' : '#00cc66';
ctx.fillRect(
segment.x * gridSize,
segment.y * gridSize,
gridSize – 2,
gridSize – 2
);
if (snakeIndex === 0) {
ctx.fillStyle = '#ffffff';
ctx.fillRect(segment.x * gridSize + 5, segment.y * gridSize + 5, 3, 3);
ctx.fillRect(segment.x * gridSize + 12, segment.y * gridSize + 5, 3, 3);
}
snakeIndex++;
}
}
function drawFood() {
ctx.fillStyle = '#ff3366';
ctx.beginPath();
ctx.arc(
foodX * gridSize + gridSize / 2,
foodY * gridSize + gridSize / 2,
gridSize / 2 – 2,
0,
Math.PI * 2
);
ctx.fill();
}
function moveSnake() {
var head = {x: snake[0].x + velocityX, y: snake[0].y + velocityY};
snake.unshift(head);
snake.pop();
}
function checkCollision() {
var head = snake[0];
if (head.x = tileCount || head.y = tileCount) {
return true;
}
var i = 1;
while (i < snake.length) {
if (head.x === snake[i].x && head.y === snake[i].y) {
return true;
}
i++;
}
return false;
}
function generateFood() {
foodX = Math.floor(Math.random() * tileCount);
foodY = Math.floor(Math.random() * tileCount);
var segmentIndex = 0;
while (segmentIndex < snake.length) {
var segment = snake[segmentIndex];
if (segment.x === foodX && segment.y === foodY) {
generateFood();
break;
}
segmentIndex++;
}
}
function restartGame() {
snake = [{x: 10, y: 10}];
velocityX = 0;
velocityY = 0;
score = 0;
scoreElement.textContent = score;
gameRunning = true;
generateFood();
drawGame();
}
document.addEventListener('keydown', function(e) {
if (!gameRunning && e.key !== 'Enter') return;
switch(e.key) {
case 'ArrowUp':
if (velocityY === 0) {
velocityX = 0;
velocityY = -1;
}
e.preventDefault();
break;
case 'ArrowDown':
if (velocityY === 0) {
velocityX = 0;
velocityY = 1;
}
e.preventDefault();
break;
case 'ArrowLeft':
if (velocityX === 0) {
velocityX = -1;
velocityY = 0;
}
e.preventDefault();
break;
case 'ArrowRight':
if (velocityX === 0) {
velocityX = 1;
velocityY = 0;
}
e.preventDefault();
break;
}
});
drawGame();
🚀 Великая космическая битва: Червяки в скафандрах против Хомяков в открытом космосе 🐹
В далёких уголках галактики, где звёзды сияют ярче тысячи солнц, разворачивается эпическое противостояние двух великих цивилизаций. С одной стороны — благородные червяки в высокотехнологичных скафандрах, защитники порядка и справедливости. С другой — бесстрашные хомяки, которые научились выживать в открытом космосе без какой-либо защиты!
🪐 Происхождение конфликта
Всё началось в 3024 году, когда червяки с планеты Вермикулон обнаружили загадочные энергетические кристаллы в поясе астероидов системы Альфа Хомстерис. Эти кристаллы обладали невероятной силой и могли обеспечить энергией целые галактики на тысячелетия вперёд. Однако хомяки из соседней системы также претендовали на эти ресурсы, считая их своим священным наследием.
Переговоры зашли в тупик. Червяки предлагали справедливое разделение ресурсов, но хомяки, благодаря своим уникальным генетическим мутациям, позволяющим им дышать в вакууме, считали себя высшей расой и требовали полного контроля над кристаллами.
⚔️ Технологические преимущества
Червяки в скафандрах разработали передовую технологию защиты. Их скафандры изготовлены из наноматериала “Вермиум-9”, способного выдерживать температуры от абсолютного нуля до температуры поверхности звезды. Встроенные системы жизнеобеспечения позволяют им находиться в космосе неограниченное время, а реактивные ранцы обеспечивают невероятную маневренность.
Хомяки в открытом космосе, хоть и лишены технологической защиты, обладают биологическими преимуществами. Их щёчные мешки эволюционировали в энергетические резервуары, способные накапливать космическую радиацию и превращать её в чистую силу. Их шерсть создаёт естественное силовое поле, отражающее метеориты и космический мусор.
🌌 Ключевые сражения
Самая известная битва произошла у Туманности Морковного Поля, где флот из 10 000 червячных звездолётов столкнулся с ордой из 50 000 хомяков, летящих в строю “Вихрь Семечек”. Битва длилась 72 часа, и небо озарялось вспышками плазменных выстрелов и энергетических взрывов.
Червяки использовали тактику “Червоточина” — телепортацию небольших отрядов за линию фронта противника. Хомяки же применяли стратегию “Беличье колесо” — непрерывное круговое движение, создающее гравитационные воронки, затягивающие вражеские корабли.
🕊️ Путь к миру
После десятилетий конфликта обе стороны осознали, что война лишь истощает ресурсы обеих цивилизаций. Мудрый червь-дипломат по имени Сэр Вормингтон III и храбрый хомяк-воин Хомстер Великолапый встретились на нейтральной космической станции “Дружба”.
Они подписали Галактический пакт Вермо-Хомстера, согласно которому энергетические кристаллы будут использоваться совместно для блага обеих цивилизаций. Червяки получили доступ к биологическим технологиям хомяков, а хомяки — к инженерным разработкам червяков.
Мораль истории: Даже самые непримиримые противники могут найти общий язык, если посмотрят друг на друга не как на врагов, а как на потенциальных союзников. Вселенная достаточно велика для всех! 🌟