matlab贪吃蛇游戏代码
时间: 2023-09-25 07:12:33 浏览: 215
贪吃蛇MATLAB代码
下面是一个简单的 Matlab 贪吃蛇游戏代码示例:
```matlab
% 设置游戏界面参数
width = 20; % 游戏界面宽度
height = 20; % 游戏界面高度
% 设置贪吃蛇初始位置和长度
snake.head = [1, 1]; % 贪吃蛇头部位置
snake.body = [1, 1]; % 贪吃蛇身体位置
snake.length = 1; % 贪吃蛇长度
% 设置食物初始位置
food.position = [randi(width), randi(height)]; % 随机生成食物位置
% 初始化游戏界面
gameBoard = zeros(width, height); % 空白的游戏界面
gameBoard(snake.head(1), snake.head(2)) = 1; % 在游戏界面上标记贪吃蛇头部位置
gameBoard(food.position(1), food.position(2)) = 2; % 在游戏界面上标记食物位置
% 开始游戏循环
gameOver = false;
while ~gameOver
% 显示游戏界面
for i = 1:width
for j = 1:height
if gameBoard(i, j) == 0 % 空白格子
fprintf(' ');
elseif gameBoard(i, j) == 1 % 贪吃蛇身体
fprintf('O');
elseif gameBoard(i, j) == 2 % 食物
fprintf('X');
end
end
fprintf('\n');
end
% 获取用户输入
direction = input('请输入移动方向(w上,s下,a左,d右):', 's');
% 更新贪吃蛇位置
switch direction
case 'w'
snake.head(1) = snake.head(1) - 1;
case 's'
snake.head(1) = snake.head(1) + 1;
case 'a'
snake.head(2) = snake.head(2) - 1;
case 'd'
snake.head(2) = snake.head(2) + 1;
end
% 判断游戏是否结束
if snake.head(1) < 1 || snake.head(1) > width || snake.head(2) < 1 || snake.head(2) > height
fprintf('游戏结束!\n');
gameOver = true;
elseif snake.head(1) == food.position(1) && snake.head(2) == food.position(2)
% 如果贪吃蛇头部位置与食物位置重合,即吃到了食物
fprintf('吃到食物!\n');
snake.length = snake.length + 1;
food.position = [randi(width), randi(height)]; % 随机生成新的食物位置
gameBoard(food.position(1), food.position(2)) = 2; % 在游戏界面上标记新的食物位置
else
% 更新贪吃蛇身体位置
snake.body = [snake.head; snake.body(1:snake.length-1, :)];
gameBoard(snake.body(snake.length, 1), snake.body(snake.length, 2)) = 0; % 清除贪吃蛇尾部位置
end
% 更新贪吃蛇头部位置
gameBoard(snake.head(1), snake.head(2)) = 1;
end
```
这只是一个简单的贪吃蛇游戏代码示例,你可以根据需要进行修改和扩展,使其更加完善和有趣。请注意,上述代码只能在 MATLAB 环境中运行。
阅读全文