Готовые курсовые работы — страница 157
Уже сгенерировано 34434 курсовой работы на разные темы. Каждая работа — с уникальной структурой, оригинальностью больше 90% по Антиплагиат.ру, оформлением по ГОСТу и списком реальных источников. Не нашёл подходящую тему? Введи свою — нейросеть напишет курсовую работу за 10–30 минут.
Написать курсовую работу
Оригинальность > 90% · ГОСТ · 10–30 минут
Курсовая
Классификация стран мира.Контрольная работа по мировой экономике должна содержать титульный лист,содержание,введение,заключение,основную часть с разбивкой на главы,список литературы 10 15 источников за последние 5 лет при написании реферата необходимо привести графики схемы и таблицы оформи сразу в соответсвии с гостом
Курсоваямеждународный терроризм глобальная проблема в современности
КурсоваяКлассификация стран мира
Курсоваятехкарта по физической культуре 1 класс
Курсоваяназначение и устройство тормозного цилиндра электровоза
КурсоваяЗаявление на увольнение в период испытательного срока
КурсоваяВеликая отечесвтенная война
КурсоваяВВЕДЕНИЕ ТВОРЧЕСКАЯ ЧАСТЬ Исторический отечественный и зарубежный опыт в области художественного оформления тканей Основные тренды в интерьерном текстиле 2026- 2027 г Разработка эскизов художественного проекта. Выбор мотивов по теме. Применение законов построения композиций печатного рисунка при работе над проектом Применение живописных приемов и законов цветовых гармоний при осуществлении художественного оформления проекта Готовые варианты росписи швейного изделия. Эскизный проект ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ Обоснование выбора текстильного материала Процесс выполнения росписи на швейном изделии ЗАКЛЮЧЕНИЕ Список использованных источников ПРИЛОЖЕНИЯ
КурсоваяСоздание БД на ОСнове прикрепленного файла на тему база медецинского учереждения
КурсоваяСоздание БД на свободную тему
КурсоваяСтендап про капусту
Курсовая4.ЭТИКА И БЕЗОПАСНОСТЬ В СОЦИАЛЬНЫХ СЕТЯХ
КурсоваяПлан методической работы на 26 -27 учебный год
КурсоваяУчасток ТО автомобилей
Курсоваяпрактика пм 03 ремонт различнх типов автомобилей
Курсовая<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>Geometry Dash Clone: Финальная версия</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body, html { height: 100%; overflow: hidden; background-color: #111; font-family: 'Arial', sans-serif; } canvas { display: block; margin: 0 auto; background: linear-gradient(135deg, #0f2027, #203a43, #2c5364); } /* --- Стили для интерфейса --- */ #ui-container { position: absolute; top: 20px; left: 50%; transform: translateX(-50%); color: white; font-size: 24px; text-shadow: 0 0 5px #fff; display: flex; align-items: center; gap: 20px; } /* --- Стили для кнопок --- */ .btn { padding: 8px 16px; font-size: 18px; color: white; background-color: #ff4757; border: none; border-radius: 6px; cursor: pointer; transition: background-color 0.2s; } .btn:hover { background-color: #e84118; } /* --- Стили для экранов начала и конца --- */ #start-screen, #end-screen { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background-color: rgba(0, 0, 0, 0.8); padding: 30px; border-radius: 15px; text-align: center; } </style> </head> <body> <!-- Главное меню --> <div id="start-screen"> <h1>Geometry Dash Clone</h1> <button class="btn" onclick="startGame()">Начать игру</button> </div> <!-- Игровой интерфейс --> <div id="ui-container" style="display:none;"> <div>Уровень <span id="level-display">1</span></div> <button class="btn" onclick="toggleFullScreen()">[ ]</button> </div> <canvas id="gameCanvas"></canvas> <!-- Экран конца уровня --> <div id="end-screen" style="display:none;"> <h2>Конец уровня!</h2> <button class="btn" onclick="startGame()">Играть снова</button> </div> <script> const canvas = document.getElementById('gameCanvas'); const ctx = canvas.getContext('2d'); // --- НАСТРОЙКА ПОЛНОЭКРАННОГО РЕЖИМА --- function toggleFullScreen() { if (!document.fullscreenElement) { canvas.requestFullscreen().catch(err => { alert(`Ошибка при попытке включить полноэкранный режим: ${err.message}`); }); } else { document.exitFullscreen(); } } function resizeCanvas() { canvas.width = window.innerWidth * 0.8; canvas.height = window.innerHeight * 0.6; } window.addEventListener('resize', resizeCanvas); resizeCanvas(); // Вызываем один раз при загрузке // --- СОСТОЯНИЯ ИГРЫ --- const GAME_STATE = { MENU: 'MENU', PLAYING: 'PLAYING', GAME_OVER: 'GAME_OVER' }; let gameState = GAME_STATE.MENU; let lastTime = 0; // Для расчета дельты времени // --- СПРАЙТ ШИПА --- const spikeSprite = new Image(); spikeSprite.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAGFUlEQVR42oXaS4xUdxnH8e+993pJmQpJkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkqZkmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmb/mQmYAAHc1JREFUeNrtnXl4VNUZx3/nOOffe2axJYlKxJYлКхIлКхIлКхIлКхIлКхIлКхIлКхIлКхIлКхIлКхIлКхIлКхIлКхIлКхIлКхIAH//2Q=='; // --- ОБЪЕКТЫ --- const player = { x: 100, y: canvas.height - 50, width: 30, height: 30, color: '#4ECDC4', velocityX: 2, velocityY: 0, gravity: 0.6, jumpForce: -13, onGround: false, isGodMode: false }; const obstacles = []; const blocks = []; // --- УРОВНИ (ВОЛНЫ) --- const waves = [ { speedX: 4, speedY: 0, pattern: [ null, null, null, null, {yFactor: 0.2}, null, null, null, null, null, null, null, {yFactor: 0.8}, null, null, null ] }, { speedX: 6, speedY: 0, pattern: [ {yFactor: 0.1}, null, null, null, null, null, {yFactor: 0.9}, null, null ] } ]; let currentWaveIndex = 0; let wavePattern = []; let patternPosition = 0; // --- ИНТЕРФЕЙС --- const startScreen = document.getElementById('start-screen'); const endScreen = document.getElementById('end-screen'); const uiContainer = document.getElementById('ui-container'); const levelDisplay = document.getElementById('level-display'); function startGame() { gameState = GAME_STATE.PLAYING; startScreen.style.display = 'none'; endScreen.style.display = 'none'; uiContainer.style.display = 'block'; // Сброс всего currentWaveIndex = patternPosition = obstacles.length = blocks.length = 0; player.x = 100; player.y = canvas.height - player.height; player.velocityX = player.velocityY = 0; player.onGround = true; player.isGodMode = false; player.color = '#4ECDC4'; loadWave(currentWaveIndex); // Запускаем игровой цикл через requestAnimationFrame lastTime = performance.now(); gameLoop(lastTime); } function endLevel() { gameState = GAME_STATE.GAME_OVER; uiContainer.style.display = 'none'; endScreen.style.display = 'block'; } function loadWave(index) { currentWaveIndex = index; wavePattern = waves[currentWaveIndex].pattern.slice(); patternPosition = obstacles.length = blocks.length = 0; player.velocityX = waves[currentWaveIndex].speedX; player.velocityY = waves[currentWaveIndex].speedY; levelDisplay.innerText = currentWaveIndex + 1; // Создаем пол и потолок из блоков (платформ) blocks.push({ x: -100, y: canvas.height - 20, width: canvas.width + 200, height: 20 }); blocks.push({ x: -100, y: -18, width: canvas.width + 200, height: 20 }); } function updatePlayer(deltaTime) { // Движение по X (постоянное) player.x += player.velocityX * deltaTime * 0.05; // Умножаем на дельту для стабильности // Физика по Y (только если не в режиме бога) if (!player.isGodMode) { player.velocityY += player.gravity * deltaTime * 0.05; player.y += player.velocityY * deltaTime * 0.05; // Проверка столкновения с блоками (платформами) player.onGround = false; for (let block of blocks) { if (isColliding(player, block)) { // Столкновение сверху (приземление) if (player.velocityY > 0 && player.y + player.height <= block.y + block.height + player.velocityY * deltaTime * 0.05) { player.y = block.y - player.height; player.onGround = true; player.velocityY = 0; } // Столкновение снизу (удар головой) else if (player.velocityY < 0) { player.y = block.y + block.height; player.velocityY = 0.1; // Небольшой отскок вниз } } } } else { // В режиме бога можно летать вверх/вниз if (player.velocityY < 0) { // Летим вверх player.y += player.velocityY * deltaTime * 0.1; } else if (player.velocityY > 0) { // Летим вниз player.y += player.velocityY * deltaTime * 0.1; } } // Если игрок упал за пределы экрана - конец игры if (player.y > canvas.height || player.y < -player.height) { endLevel(); return; // Выходим из функции обновления игрока } // Рисуем игрока (кубик) ctx.fillStyle = player.color; ctx.fillRect(player.x, player.y, player.width, player.height); } function updateObstacles(deltaTime) { // Генерация шипов по паттерну if (wavePattern[patternPosition] !== null && Math.random() < 0.8) { const spikeData = wavePattern[patternPosition]; const spikeHeight = spikeData.yFactor * canvas.height; obstacles.push({ x: canvas.width + patternPosition * 150, y: spikeHeight - 25, width: 30, height: 30, spriteOffsetX: spikeData.yFactor === 1 ? -5 : 0 }); } patternPosition++; if (patternPosition >= wavePattern.length) patternPosition = wavePattern.length - 1; for (let i = obstacles.length - 1; i >= 0; i--) { const obs = obstacles[i]; obs.x -= player.velocityX * deltaTime * 0.05; // Двигаем шипы ctx.drawImage(spikeSprite, obs.x + obs.spriteOffsetX, obs.y); // Проверка столкновения с шипом (только если не в режиме бога) if (!player.isGodMode && isColliding(player, obs)) { endLevel(); return; // Выходим из функции обновления препятствий } if (obs.x + obs.width < 0) { obstacles.splice(i, 1); } } } function updateBlocks(deltaTime) { for (let block of blocks) { block.x -= player.velocityX * deltaTime * 0.05; // Двигаем блоки вместе с миром ctx.fillStyle = '#A2D2FF'; // Цвет блоков-платформ ctx.fillRect(block.x, block.y, block.width, block.height); } } function isColliding(a, b) { return a.x < b.x + b.width && a.x + a.width > b.x && a.y < b.y + b.height && a.y + a.height > b.y; } function clearCanvas() { ctx.clearRect(0, 0, canvas.width, canvas.height); } function gameLoop(timestamp) { // ОСНОВНОЙ ИГРОВОЙ ЦИКЛ if (gameState !== GAME_STATE.PLAYING) return; // Проверяем состояние игры const deltaTime = timestamp - lastTime; // Время с прошлого кадра в мс lastTime = timestamp; // Обновляем время последнего кадра clearCanvas(); // Очищаем холст от предыдущего кадра updateObstacles(deltaTime); // Обновляем и рисуем препятствия updateBlocks(deltaTime); // Обновляем и рисуем блоки-платформы updatePlayer(deltaTime); // Обновляем и рисуем игрока // Запрашиваем следующий кадр requestAnimationFrame(gameLoop); } document.addEventListener('keydown', function(e) { if (gameState !== GAME_STATE.PLAYING) return; // Работаем только в игре // --- ЧИТЫ --- if (e.code === 'Tab') { e.preventDefault(); player.isGodMode = !player.isGodMode; player.color = player.isGodMode ? 'yellow' : '#4ECDC4'; console.log(`Режим Бога ${player.isGodMode ? 'ВКЛЮЧЕН' : 'ВЫКЛЮЧЕН'}`); } // Прыжок работает на земле или в режиме бога if ((e.code === 'Space' || e.code === 'ArrowUp') && (player.onGround || player.isGodMode)) { if (!player.isGodMode) { // Обычный прыжок с платформы player.velocityY = player.jumpForce; } else { // Управление полетом в режиме бога player.velocityY -= 5; // Тяга вверх при зажатой клавише } e.preventDefault(); // Убираем скролл страницы пробелом } }); document.addEventListener('keyup', function(e) { if (gameState !== GAME_STATE.PLAYING) return; // В режиме бога тяга вверх прекращается при отпускании клавиши пробела/вверх if ((e.code === 'Space' || e.code === 'ArrowUp') && player.isGodMode) { player.velocityY += 5; // Убираем тягу вверх } }); canvas.addEventListener('click', function() { if (gameState === GAME_STATE.MENU) { startGame(); } else if (gameState === GAME_STATE.GAME_OVER) { startGame(); } else if (gameState === GAME_STATE.PLAYING && !player.isGodMode && player.onGround) { player.velocityY = player.jumpForce; // Прыжок по клику на земле } }); </script> </body> </html> найди ошибки
КурсоваяРаздел несъёмной протезирования. Мостовидный протез
Курсоваяхолодная война
Курсоваярегистрация самодельного катера в Гимс
КурсоваяКУРСОВАЯ РАБОТА
по дисциплине «Информационные технологии управления персоналом»На тему “Информационное обеспечение информационной технологии управления персоналом служб социально-культурного сервиса и туризма”
КурсоваяСочени текст с обращением к вступлению в семью Gladiator от имени Young_Gladiator
КурсоваяФонк: от андерграунда до мейнстрима
КурсоваяТИТРИМЕТРИЧЕСКИЙ АНАЛИЗ на входном контроле производства
Курсоваякак сон влияет на организм подростка
Другие типы работ
Нужна такая же курсовая работа?
КонспектGPT напишет курсовую работу на любую тему за 10–30 минут: оригинальность больше 90%, оформление по ГОСТу, реальные источники, обход ИИ-детекторов. Просто введи тему — нейросеть сама подберёт структуру, наполнит главы и оформит библиографию.
Написать курсовую работу