首页下载资源大数据基于MATLAB的贪吃蛇(完美运行)

ZIP基于MATLAB的贪吃蛇(完美运行)

2401_8653971960.69KB需要积分:1

资源文件列表:

基于MATLAB的贪吃蛇(完美运行).zip 大约有9个文件
  1. 基于MATLAB的贪吃蛇(完美运行)/
  2. 基于MATLAB的贪吃蛇(完美运行)/Snake/
  3. 基于MATLAB的贪吃蛇(完美运行)/Snake/background.jpg 59.07KB
  4. 基于MATLAB的贪吃蛇(完美运行)/Snake/mainfc.p 202B
  5. 基于MATLAB的贪吃蛇(完美运行)/Snake/modifyscore.m 357B
  6. 基于MATLAB的贪吃蛇(完美运行)/Snake/randblock.m 437B
  7. 基于MATLAB的贪吃蛇(完美运行)/Snake/Snake.fig 5.39KB
  8. 基于MATLAB的贪吃蛇(完美运行)/Snake/Snake.m 7.81KB
  9. 基于MATLAB的贪吃蛇(完美运行)/Snake/snake_move.m 3.75KB

资源介绍:

贪吃蛇(Snake)是一款经典的电子游戏,最早由苹果公司开发并发布于1976年。游戏中,玩家操控一条蛇在一个有边界的区域内移动并吃食物,每吃到一块食物,蛇的长度就会增加。同时,蛇不能碰到自己的身体或碰到边界,否则游戏结束。游戏的目标是尽可能地吃更多的食物,同时保持蛇的活动空间。随着时间的推移,蛇的移动速度会逐渐加快,难度也会逐渐增加。贪吃蛇是一款简单而有趣的游戏,经常被用于娱乐和休闲。
function varargout = Snake(varargin) % SNAKE M-file for Snake.fig % SNAKE, by itself, creates a new SNAKE or raises the existing % singleton*. % % H = SNAKE returns the handle to a new SNAKE or the handle to % the existing singleton*. % % SNAKE('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in SNAKE.M with the given input arguments. % % SNAKE('Property','Value',...) creates a new SNAKE or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before Snake_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to Snake_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help Snake % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Snake_OpeningFcn, ... 'gui_OutputFcn', @Snake_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end mainfc; if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before Snake is made visible. function Snake_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Snake (see VARARGIN) % Choose default command line output for Snake %% ha=axes('units','normalized','position',[0 0 1 1]); uistack(ha,'down') II=imread('background.jpg'); image(II) colormap gray set(ha,'handlevisibility','off','visible','off'); %% mainfc; line( 'Visible', 'on','Tag', 'MoveBlock', 'Markersize', 18, 'HitTest', 'off','Parent',handles.axes1,... 'Marker', 's', 'MarkerEdgeColor', 'k', 'XData',nan, 'YData',nan , 'LineStyle', 'none','MarkerFaceColor',[0 0 1] ) ; line( 'Visible', 'on','Tag', 'HeadBlock', 'Markersize', 18, 'HitTest', 'off','Parent',handles.axes1,... 'Marker', 's', 'MarkerEdgeColor', 'k', 'XData',nan, 'YData',nan , 'LineStyle', 'none','MarkerFaceColor',[0 0 1] ) ; % Update handles structure handles = guihandles(hObject); handles.output = hObject; setappdata(handles.figure1,'gamelevel',1); setappdata(handles.figure1,'direction','rightarrow'); setappdata(handles.figure1,'flag',1); setappdata(handles.figure1,'headreq',1); guidata(hObject, handles); pos = get(handles.axes1,'position'); pos = [0 0 pos(3) pos(4)]; rectangle('Position',pos,'EdgeColor','r', 'LineWidth',2 ) % UIWAIT makes Snake wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = Snake_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % -------------------------------------------------------------------- function Start_Callback(hObject, eventdata, handles) % hObject handle to Start (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) TextHandle = findobj( 'Parent', handles.axes1, 'Type', 'text' ) ; delete( TextHandle ) ; setappdata(handles.figure1,'flag',0); setappdata(handles.figure1,'direction','rightarrow'); setappdata(handles.figure1,'gamelevel',1); set(handles.MoveBlock,'XData',[170 190 210],'YData',[210 210 210]); set(handles.score,'string','0'); while ishandle(hObject) if getappdata(handles.figure1,'flag'); text( 100, 240, 'GameOver', 'Parent', handles.axes1,... 'FontSize', 30, 'Color', 'r', 'FontAngle', 'italic' ) ; text( 100, 200, strcat('得分:',get(handles.score,'string')), 'Parent', handles.axes1,... 'FontSize', 30, 'Color', 'r', 'FontAngle', 'italic' ) ; break; end if getappdata(handles.figure1,'headreq'); [Xpos,Ypos] = randblock(handles); set(handles.HeadBlock,'XData',Xpos,'YData',Ypos); setappdata(handles.figure1,'headreq',0); end while ( ishandle(hObject) & ~getappdata(handles.figure1,'flag') & ~getappdata(handles.figure1,'headreq') ) snake_move(handles); level = getappdata(handles.figure1,'gamelevel'); pausetime = 1 - 0.099 * level; pause(pausetime); end end % -------------------------------------------------------------------- function File_Callback(hObject, eventdata, handles) % hObject handle to File (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on key press over figure1 with no controls selected. function figure1_KeyPressFcn(hObject, eventdata, handles) % hObject handle to figure1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) CurrentKey = get( handles.figure1, 'CurrentKey' ) ; olddire = getappdata(handles.figure1,'direction'); switch olddire case 'leftarrow' if( strcmp(CurrentKey,'rightarrow')) return; end case 'rightarrow' if( strcmp(CurrentKey,'leftarrow')) return; end case 'uparrow' if( strcmp(CurrentKey,'downarrow')) return; end case 'downarrow' if( strcmp(CurrentKey,'uparrow')) return; end otherwise return; end switch CurrentKey case {'leftarrow','rightarrow','uparrow','downarrow'} if ~getappdata(handles.figure1,'flag') setappdata(handles.figure1,'direction',CurrentKey); end otherwise return; end; % pause(0.4); % -------------------------------------------------------------------- function Exit_Callback(hObject, eventdata, handles) % hObject handle to Exit (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close; % -------------------------------------------------------------------- function About_Callback(hObject, eventdata, handles) % hObject handle to About (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) msgbox('matlab snake version 1.0 by palsword'); % -------------------------------------------------------------------- function Help_Callback(hObject, eventdata, handles) % hObject handle to Help (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) msgbox('上下左右键控制贪吃蛇的移动方向!'); % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) Start_Callback(hObject, eventdata, handles);
100+评论
captcha