简体中文简体中文
EnglishEnglish
简体中文简体中文

轻松上手!分享几个JS小游戏源码,让你的编程技能

2025-01-26 17:08:59

随着互联网技术的飞速发展,JavaScript(简称JS)已经成为前端开发中不可或缺的一部分。而JS小游戏源码更是让编程爱好者们爱不释手,它们不仅可以帮助我们学习编程知识,还能让我们在轻松愉快的氛围中提升自己的技能。今天,就为大家分享几个JS小游戏源码,让我们一起来看看吧!

一、经典贪吃蛇游戏

贪吃蛇游戏是许多编程初学者的入门之作,下面是一个简单的贪吃蛇游戏源码:

`html <!DOCTYPE html> <html> <head> <title>贪吃蛇游戏</title> <style> canvas { border: 1px solid black; } </style> </head> <body> <canvas id="gameCanvas" width="400" height="400"></canvas> <script> var canvas = document.getElementById('gameCanvas'); var ctx = canvas.getContext('2d'); var snake = [{ x: 100, y: 100 }]; var food = { x: 300, y: 300 }; var dx = 10; var dy = 0; var score = 0;

    function drawSnake() {
        ctx.fillStyle = 'green';
        for (var i = 0; i < snake.length; i++) {
            ctx.fillRect(snake[i].x, snake[i].y, 10, 10);
            ctx.strokeStyle = 'white';
            ctx.strokeRect(snake[i].x, snake[i].y, 10, 10);
        }
    }
    function drawFood() {
        ctx.fillStyle = 'red';
        ctx.fillRect(food.x, food.y, 10, 10);
    }
    function gameLoop() {
        ctx.clearRect(0, 0, canvas.width, canvas.height);
        drawSnake();
        drawFood();
        var head = { x: snake[0].x + dx, y: snake[0].y + dy };
        snake.unshift(head);
        if (head.x === food.x && head.y === food.y) {
            score++;
            food = {
                x: Math.floor(Math.random() * (canvas.width / 10)) * 10,
                y: Math.floor(Math.random() * (canvas.height / 10)) * 10
            };
        } else {
            snake.pop();
        }
        if (head.x < 0 || head.x >= canvas.width || head.y < 0 || head.y >= canvas.height) {
            alert('Game Over!');
            location.reload();
        }
        document.addEventListener('keydown', function(event) {
            switch (event.keyCode) {
                case 37:
                    dx = -10;
                    dy = 0;
                    break;
                case 38:
                    dx = 0;
                    dy = -10;
                    break;
                case 39:
                    dx = 10;
                    dy = 0;
                    break;
                case 40:
                    dx = 0;
                    dy = 10;
                    break;
            }
        });
        setTimeout(gameLoop, 100);
    }
    gameLoop();
</script>

</body> </html> `

二、猜数字游戏

猜数字游戏是一个简单的逻辑游戏,下面是一个简单的猜数字游戏源码:

`html <!DOCTYPE html> <html> <head> <title>猜数字游戏</title> </head> <body> <h1>猜数字游戏</h1> <p>请输入一个1到100之间的数字:</p> <input type="number" id="guessInput" /> <button onclick="guess()">猜</button> <p id="result"></p> <script> var secretNumber = Math.floor(Math.random() * 100) + 1; var guessCount = 0;

    function guess() {
        var userGuess = document.getElementById('guessInput').value;
        guessCount++;
        if (userGuess == secretNumber) {
            document.getElementById('result').innerHTML = '恭喜你!你猜对了!';
        } else if (userGuess < secretNumber) {
            document.getElementById('result').innerHTML = '太小了,请再试一次。';
        } else {
            document.getElementById('result').innerHTML = '太大了,请再试一次。';
        }
    }
</script>

</body> </html> `

三、俄罗斯方块游戏

俄罗斯方块游戏是一个经典的益智游戏,下面是一个简单的俄罗斯方块游戏源码:

`html <!DOCTYPE html> <html> <head> <title>俄罗斯方块游戏</title> <style> .grid { width: 200px; height: 400px; position: relative; } .block { width: 20px; height: 20px; position: absolute; background-color: red; } </style> </head> <body> <div class="grid" id="grid"></div> <script> var grid = document.getElementById('grid'); var blocks = []; var currentBlock = null;

    function createBlock() {
        var block = document.createElement('div');
        block.className = 'block';
        block.style.left = Math.floor(Math.random() * 10) * 20 + 'px';
        block.style.top = Math.floor(Math.random() * 20) * 20 + 'px';
        grid.appendChild(block);
        blocks.push(block);
        currentBlock = block;
    }
    function moveBlock() {
        var style = window.getComputedStyle(currentBlock);
        var left = parseInt(style.left, 10);
        var top = parseInt(style.top, 10);
        if (left + 20 < grid.offsetWidth && top + 20 < grid.offsetHeight) {
            currentBlock.style.left = (left + 20) + 'px';
            currentBlock.style.top = top + 'px';
        } else {
            grid.removeChild(currentBlock);
            blocks.shift();
            createBlock();
        }
    }
    createBlock();
    setInterval(moveBlock, 1000);
</script>

</body> </html> `

通过以上三个简单的JS小游戏源码,相信你已经对JavaScript编程有了更深入的了解。在学习过程中,你可以根据自己的需求对这些源码进行修改和优化,让自己的编程技能更上一层楼。祝大家学习愉快!