贪吃蛇游戏的MATLAB代码。下面是一个示例代码,你可以根据自己的需要进行修改和优化。
% 贪吃蛇游戏
% 设定游戏界面大小
width = 20;
height = 20;
% 初始化贪吃蛇的位置和初始长度
snake.x = 10;
snake.y = 10;
snake.length = 3;
% 初始化食物的位置
food.x = randi([1, width]);
food.y = randi([1, height]);
% 设定游戏是否结束的标志
gameOver = false;
while ~gameOver
% 绘制游戏界面
for i = 1:height
for j = 1:width
if i == snake.y && j == snake.x
% 绘制贪吃蛇的头部
fprintf('O');
elseif i == food.y && j == food.x
% 绘制食物
fprintf('X');
else
% 绘制空白
fprintf(' ');
end
end
fprintf('\n');
end
% 获取用户输入
direction = input('请输入移动方向(w上,s下,a左,d右):', 's');
% 根据用户输入改变贪吃蛇的位置
switch direction
case 'w'
snake.y = snake.y - 1;
case 's'
snake.y = snake.y + 1;
case 'a'
snake.x = snake.x - 1;
case 'd'
snake.x = snake.x + 1;
end
% 判断是否吃到食物
if snake.x == food.x && snake.y == food.y
% 增加贪吃蛇的长度
snake.length = snake.length + 1;
% 生成新的食物位置
food.x = randi([1, width]);
food.y = randi([1, height]);
end
% 判断是否游戏结束
if snake.x < 1 || snake.x > width || snake.y < 1 || snake.y > height || snake.length == width * height
gameOver = true;
end
end
% 输出游戏结束信息
disp('游戏结束!')
disp(['得分:', num2str(snake.length)])
这段代码使用了一个简单的文字界面来表示游戏界面。游戏界面是一个 width x height 的矩阵,每个位置上可以是空白、贪吃蛇的头部或食物。用户可以通过输入 w、s、a、d 来控制贪吃蛇的移动方向。当贪吃蛇吃到食物时,贪吃蛇的长度增加并生成新的食物位置。游戏结束的条件包括贪吃蛇撞墙或贪吃蛇的长度达到最大值。
你可以根据自己的需要修改代码,比如改变游戏界面的大小、调整贪吃蛇的移动速度等。希望这个示例能对你有帮助!