基于Matlab實(shí)現(xiàn)抖音小游戲蘋果蛇
最近抖音上蘋果蛇小游戲大火,為了證明MATLAB無(wú)所不能,咋能不跟風(fēng)做一個(gè)?于是就有了這一篇。

還是提一句這個(gè)小游戲開(kāi)始玩的心路歷程:
第1-5關(guān):?這不就是有重力的貪吃蛇,有任何難度嘛??
第6關(guān):嗯。。。這個(gè)小技巧還是有點(diǎn)意思的
第30關(guān):???這繞來(lái)繞去的是人出的題目??
第90關(guān):… …瘋了瘋了已經(jīng)瘋了
廢話不多說(shuō)看一下MATLAB版的完整代碼:
為了方便修改,關(guān)卡地圖就擺在m文件里,總共寫了八關(guān),但是只有代碼沒(méi)有素材包還是運(yùn)行不了,因此請(qǐng)從文末獲取完整壓縮包.
function appleSnake
% @author : slandarer
% 公眾號(hào) : slandarer隨筆
% 知乎 : hikari
% 加載圖像數(shù)據(jù)
MT=load('material.mat');
MT=MT.MT;
SIZE.BASE=size(MT.base.CData,1);
SIZE.EXIT=size(MT.exit.CData,1);
SIZE.STONE=size(MT.stone.CData,1);
SIZE.APPLE=size(MT.apple.CData,1);
SIZE.SNAKE=size(MT.snake1.CData,1);
SIZE.RESTART=size(MT.restart.CData,1);
% 初始化地圖及關(guān)卡
[fig,ax]=init();
LEVEL=1;
MAP=getMap(LEVEL);
loadMap();
refreshSnake();
text(10,1000,'當(dāng)前關(guān)卡:','FontSize',18,'FontWeight','bold')
LEVEL_HDL=text(270,1000,num2str(LEVEL),'FontSize',18,'FontWeight','bold');
% =========================================================================
set(fig,'KeyPressFcn',@key);
function key(~,event)
dirvec=[0,0];
switch event.Key
case 'uparrow'
dirvec=[-1,0];
[~,colSet]=find(MAP<0);
if all(colSet==colSet(1))
dirvec=[0,0];
end
case 'downarrow',dirvec=[1,0];
case 'rightarrow',dirvec=[0,1];
case 'leftarrow',dirvec=[0,-1];
end
if sum(dirvec)~=0
[hi,hj]=find(MAP==-1);
switch MAP(hi+dirvec(1),hj+dirvec(2))
case 0
MAP(MAP<0)=MAP(MAP<0)-1;
MAP(MAP==min(MAP,[],[1,2]))=0;
MAP(hi+dirvec(1),hj+dirvec(2))=-1;
case 1
case 2
MAP(MAP<0)=MAP(MAP<0)-1;
MAP(MAP==min(MAP,[],[1,2]))=0;
MAP(hi+dirvec(1),hj+dirvec(2))=-1;
refreshSnake()
win();
return;
case 3
MAP(MAP<0)=MAP(MAP<0)-1;
APPLE_HDL=findobj('Tag','APPLE','UserData',[hi+dirvec(1),hj+dirvec(2)]);
MAP(hi+dirvec(1),hj+dirvec(2))=-1;delete(APPLE_HDL);
case 4
if MAP(hi+2*dirvec(1),hj+2*dirvec(2))==0
MAP(MAP<0)=MAP(MAP<0)-1;
MAP(MAP==min(MAP,[],[1,2]))=0;
MAP(hi+dirvec(1),hj+dirvec(2))=-1;
MAP(hi+2*dirvec(1),hj+2*dirvec(2))=4;
STONE_HDL=findobj('Tag','STONE','UserData',[hi+dirvec(1),hj+dirvec(2)]);
STONE_HDL.XData=STONE_HDL.XData+70*dirvec(2);
STONE_HDL.YData=STONE_HDL.YData-70*dirvec(1);
STONE_HDL.UserData=[hi+2*dirvec(1),hj+2*dirvec(2)];
tCol=MAP(:,hj+2*dirvec(2));tCol(60)=1;
nRow=find(tCol~=0&((1:60)'>hi+2*dirvec(1)),1,'first')-1;
STONE_HDL.YData=STONE_HDL.YData-70*(nRow-hi+dirvec(1));
STONE_HDL.UserData=[nRow,hj+2*dirvec(2)];
MAP(hi+2*dirvec(1),hj+2*dirvec(2))=0;
MAP(nRow,hj+2*dirvec(2))=4;
end
end
refreshSnake();pause(.15)
freeFall();
refreshSnake()
end
end
function freeFall()
[rowSet,colSet]=find(MAP<0);
diffmin=inf;
for t=1:length(rowSet)
tCol=MAP(:,colSet(t));
tCol(60)=1;
tRow=find(tCol>0&((1:60)'>rowSet(t)),1,'first');
diffmin=min(diffmin,tRow-rowSet(t));
end
diffmin=diffmin-1;
if diffmin>15
loss(diffmin)
elseif diffmin>0
tMAP=MAP;
for t=1:length(rowSet)
tMAP(rowSet(t),colSet(t))=0;
end
for t=1:length(rowSet)
tMAP(rowSet(t)+diffmin,colSet(t))=MAP(rowSet(t),colSet(t));
end
MAP=tMAP;
end
end
function restart(~,~)
MAP=getMap(LEVEL);
if ~isempty(MAP)
loadMap();
refreshSnake();
LEVEL_HDL.String=num2str(LEVEL);
end
end
function win(~,~)
LEVEL=LEVEL+1;
MAP=getMap(LEVEL);
if ~isempty(MAP)
loadMap();
refreshSnake();
LEVEL_HDL.String=num2str(LEVEL);
else
msgbox('暫無(wú)更多關(guān)卡')
end
end
function loss(D)
if D>15
for d=1:20
[rowSet,colSet]=find(MAP<0);
tMAP=MAP;
for t=1:length(rowSet)
tMAP(rowSet(t),colSet(t))=0;
end
for t=1:length(rowSet)
tMAP(rowSet(t)+1,colSet(t))=MAP(rowSet(t),colSet(t));
end
MAP=tMAP;
refreshSnake();
pause(.1);
end
end
end
% =========================================================================
function [fig,ax]=init(~,~)
% figure窗口創(chuàng)建及屬性設(shè)置
fig=figure();
fig.NumberTitle='off';
fig.Position=[250,120,500,500];
fig.MenuBar='none';
fig.Name='apple snake by slandarer';
% axes坐標(biāo)區(qū)域創(chuàng)建及屬性設(shè)置
ax=gca;hold on
ax.Position=[0 0 1 1];
ax.XTick=[];
ax.YTick=[];
ax.XColor='none';
ax.YColor='none';
ax.XLim=[0,1050];
ax.YLim=[0,1050];
% 繪制背景
image(ax,ax.XLim,ax.YLim,flipud(MT.background))
image(ax,[-SIZE.RESTART/2,SIZE.RESTART/2]+60,...
[-SIZE.RESTART/2,SIZE.RESTART/2]+900,...
flipud(MT.restart.CData),...
'AlphaData',flipud(MT.restart.AlpData),...
'ButtonDownFcn',@restart)
end
function map=getMap(level)
% 地圖大小15x15
% 空氣 : 0
% 土塊 : 1
% 蛇頭 : -1,蛇身數(shù)值依次遞減
% 終點(diǎn) : 2
% 蘋果 : 3
% 石塊 : 4
Map{1}=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 3 0 0 0 0 0 0 0
0 0 -2 -1 0 0 0 0 0 0 0 2 0 0 0
0 0 -3 1 1 1 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
Map{2}=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 2 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 -3 -2 -1 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 0 1 1 1 0 1 0 0 0 0
0 0 0 0 1 0 0 3 0 0 1 0 0 0 0
0 0 0 0 1 0 1 1 1 0 1 0 0 0 0
0 0 0 0 1 1 1 0 1 0 1 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
Map{3}=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 -3 -2 -1 0 0 0 0 0 0 2 0 0 0
0 0 1 1 1 1 0 0 0 0 0 1 0 0 0
0 0 1 0 0 1 0 0 0 0 0 1 0 0 0
0 0 1 0 0 0 0 3 0 0 0 1 0 0 0
0 0 1 1 1 1 0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
Map{4}=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 1 1 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 3 0 1 0 0 0 0 0
0 0 -3 -2 -1 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 1 1 0 0 0 1 1 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
Map{5}=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 2 0 0 0
0 0 0 0 0 0 0 1 1 1 1 1 0 0 0
0 0 0 0 0 0 0 1 3 0 1 0 0 0 0
0 0 0 -2 -1 0 0 0 0 0 1 0 0 0 0
0 0 0 -3 1 1 1 1 0 0 1 0 0 0 0
0 0 0 0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
Map{6}=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 2 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 3 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 -3 -2 -1 0 0 0 4 0 0 0 0
0 0 0 0 1 1 1 0 1 1 1 0 0 0 0
0 0 0 0 0 0 1 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
Map{7}=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 4 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 2 0 0
0 0 0 0 0 0 1 3 0 0 0 0 0 0 0
0 0 0 0 -3 -2 -1 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 1 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
Map{8}=[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 4 0 0 0 0 0 0 0 0
0 0 0 0 0 1 3 1 0 0 0 0 0 0 0
0 0 0 0 -2 -1 0 0 0 0 0 0 0 0 0
0 0 0 0 -3 1 1 1 1 1 0 0 0 0 0
0 0 0 0 0 0 2 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
Map{9}=[];
map=Map{level};
end
function loadMap(~,~)
delete(findobj('Tag','BASE'))
delete(findobj('Tag','EXIT'))
delete(findobj('Tag','APPLE'))
delete(findobj('Tag','STONE'))
% 繪制土塊
for i=15:-1:1
for j=15:-1:1
if MAP(i,j)==1
image(ax,70*(j-1)+35+[-SIZE.BASE/2,SIZE.BASE/2],...
70*(16-i)+35+[-SIZE.BASE/2,SIZE.BASE/2],...
flipud(MT.base.CData),...
'alphaData',flipud(MT.base.AlpData),...
'tag','BASE');
end
end
end
% 繪制出口
[ti,tj]=find(MAP==2);
image(ax,70*(tj-1)+35+[-SIZE.EXIT/2,SIZE.EXIT/2],...
70*(16-ti)+35+[-SIZE.EXIT/2,SIZE.EXIT/2],...
flipud(MT.exit.CData),...
'alphaData',flipud(MT.exit.AlpData),...
'tag','EXIT');
% 繪制蘋果
[ti,tj]=find(MAP==3);
if ~isempty(ti)
image(ax,70*(tj-1)+35+[-SIZE.APPLE/2,SIZE.APPLE/2],...
70*(16-ti)+35+[-SIZE.APPLE/2,SIZE.APPLE/2],...
flipud(MT.apple.CData),...
'alphaData',flipud(MT.apple.AlpData),...
'tag','APPLE','UserData',[ti,tj]);
end
% 繪制石塊
[ti,tj]=find(MAP==4);
if ~isempty(ti)
image(ax,70*(tj-1)+35+[-SIZE.STONE/2,SIZE.STONE/2],...
70*(16-ti)+35+[-SIZE.STONE/2,SIZE.STONE/2],...
flipud(MT.stone.CData),...
'alphaData',flipud(MT.stone.AlpData),...
'tag','STONE','UserData',[ti,tj]);
end
end
function refreshSnake(~,~)
delete(findobj('Tag','SNAKE'))
% 畫蛇頭
[ti,tj]=find(MAP==-1);
[ti_n,tj_n]=find(MAP==-2);
tSnakeC=MT.snake1.CData;
tSnakeAlp=MT.snake1.AlpData;
if tj_n>tj
tSnakeC=fliplr(tSnakeC);
tSnakeAlp=fliplr(tSnakeAlp);
end
if ti_n>ti
if MAP(ti,tj-1)==1
tSnakeC(:,:,1)=flipud(tSnakeC(end:-1:1,:,1)');
tSnakeC(:,:,2)=flipud(tSnakeC(end:-1:1,:,2)');
tSnakeC(:,:,3)=flipud(tSnakeC(end:-1:1,:,3)');
tSnakeAlp=flipud(tSnakeAlp');
else
tSnakeC(:,:,1)=flipud(tSnakeC(:,:,1)');
tSnakeC(:,:,2)=flipud(tSnakeC(:,:,2)');
tSnakeC(:,:,3)=flipud(tSnakeC(:,:,3)');
tSnakeAlp=flipud(tSnakeAlp');
end
end
if ti_n<ti
if MAP(ti,tj-1)==1
tSnakeC(:,:,1)=tSnakeC(end:-1:1,:,1)';
tSnakeC(:,:,2)=tSnakeC(end:-1:1,:,2)';
tSnakeC(:,:,3)=tSnakeC(end:-1:1,:,3)';
tSnakeAlp=tSnakeAlp';
else
tSnakeC(:,:,1)=tSnakeC(:,:,1)';
tSnakeC(:,:,2)=tSnakeC(:,:,2)';
tSnakeC(:,:,3)=tSnakeC(:,:,3)';
tSnakeAlp=tSnakeAlp';
end
end
image(ax,70*(tj-1)+35+[-SIZE.SNAKE/2,SIZE.SNAKE/2],...
70*(16-ti)+35+[-SIZE.SNAKE/2,SIZE.SNAKE/2],...
flipud(tSnakeC),...
'alphaData',flipud(tSnakeAlp),...
'tag','SNAKE');
[ti,tj]=find(MAP==min(MAP,[],[1,2]));
[ti_l,tj_l]=find(MAP==min(MAP,[],[1,2])+1);
tSnakeC=MT.snake4.CData;
tSnakeAlp=MT.snake4.AlpData;
switch true
case tj_l>tj
case tj_l<tj
tSnakeC=fliplr(tSnakeC);
tSnakeAlp=fliplr(tSnakeAlp);
case ti_l<ti
tSnakeC(:,:,1)=flipud(tSnakeC(:,:,1)');
tSnakeC(:,:,2)=flipud(tSnakeC(:,:,2)');
tSnakeC(:,:,3)=flipud(tSnakeC(:,:,3)');
tSnakeAlp=flipud(tSnakeAlp');
case ti_l>ti
tSnakeC(:,:,1)=tSnakeC(:,:,1)';
tSnakeC(:,:,2)=tSnakeC(:,:,2)';
tSnakeC(:,:,3)=tSnakeC(:,:,3)';
tSnakeAlp=tSnakeAlp';
end
% 畫蛇尾
image(ax,70*(tj-1)+35+[-SIZE.SNAKE/2,SIZE.SNAKE/2],...
70*(16-ti)+35+[-SIZE.SNAKE/2,SIZE.SNAKE/2],...
flipud(tSnakeC),...
'alphaData',flipud(tSnakeAlp),...
'tag','SNAKE');
% 畫蛇身體
for i=-2:-1:(min(MAP,[],[1,2])+1)
[ti,tj]=find(MAP==i);
[ti_l,tj_l]=find(MAP==i+1);
[ti_n,tj_n]=find(MAP==i-1);
switch true
case ti_l==ti_n
tSnakeC=MT.snake2.CData;
tSnakeAlp=MT.snake2.AlpData;
case tj_l==tj_n
tSnakeC=MT.snake2.CData;
tSnakeAlp=MT.snake2.AlpData;
tSnakeC(:,:,1)=tSnakeC(:,:,1)';
tSnakeC(:,:,2)=tSnakeC(:,:,2)';
tSnakeC(:,:,3)=tSnakeC(:,:,3)';
tSnakeAlp=tSnakeAlp';
case ti_l<ti_n&&tj_l>tj_n&&ti>ti_l
tSnakeC=MT.snake3.CData;
tSnakeAlp=MT.snake3.AlpData;
tSnakeC=rot90(tSnakeC,2);
tSnakeAlp=rot90(tSnakeAlp,2);
case ti_l<ti_n&&tj_l>tj_n&&tj<tj_l
tSnakeC=MT.snake3.CData;
tSnakeAlp=MT.snake3.AlpData;
case ti_l<ti_n&&tj_l<tj_n&&ti>ti_l
tSnakeC=MT.snake3.CData;
tSnakeAlp=MT.snake3.AlpData;
tSnakeC=flipud(tSnakeC);
tSnakeAlp=flipud(tSnakeAlp);
case ti_l<ti_n&&tj_l<tj_n&&tj>tj_l
tSnakeC=MT.snake3.CData;
tSnakeAlp=MT.snake3.AlpData;
tSnakeC=fliplr(tSnakeC);
tSnakeAlp=fliplr(tSnakeAlp);
case ti_l>ti_n&&tj_l>tj_n&&ti<ti_l
tSnakeC=MT.snake3.CData;
tSnakeAlp=MT.snake3.AlpData;
tSnakeC=fliplr(tSnakeC);
tSnakeAlp=fliplr(tSnakeAlp);
case ti_l>ti_n&&tj_l>tj_n&&tj<tj_l
tSnakeC=MT.snake3.CData;
tSnakeAlp=MT.snake3.AlpData;
tSnakeC=flipud(tSnakeC);
tSnakeAlp=flipud(tSnakeAlp);
case ti_l>ti_n&&tj_l<tj_n&&ti<ti_l
tSnakeC=MT.snake3.CData;
tSnakeAlp=MT.snake3.AlpData;
case ti_l>ti_n&&tj_l<tj_n&&tj>tj_l
tSnakeC=MT.snake3.CData;
tSnakeAlp=MT.snake3.AlpData;
tSnakeC=rot90(tSnakeC,2);
tSnakeAlp=rot90(tSnakeAlp,2);
end
image(ax,70*(tj-1)+35+[-SIZE.SNAKE/2,SIZE.SNAKE/2],...
70*(16-ti)+35+[-SIZE.SNAKE/2,SIZE.SNAKE/2],...
flipud(tSnakeC),...
'alphaData',flipud(tSnakeAlp),...
'tag','SNAKE');
end
end
end
以上就是基于Matlab實(shí)現(xiàn)抖音小游戲蘋果蛇的詳細(xì)內(nèi)容,更多關(guān)于Matlab蘋果蛇游戲的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單班級(jí)成績(jī)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單班級(jí)成績(jī)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
C/C++實(shí)現(xiàn)快速排序算法的兩種方式實(shí)例
快速排序是一種采用分治思想,在實(shí)踐中通常運(yùn)行較快一種排序算法,這篇文章主要給大家介紹了關(guān)于C/C++實(shí)現(xiàn)快速排序的兩種方式的相關(guān)資料,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考下2021-08-08
C++ 多態(tài)性虛函數(shù)和動(dòng)態(tài)綁定學(xué)習(xí)筆記
這篇文章主要為大家介紹了C++ 多態(tài)性虛函數(shù)和動(dòng)態(tài)綁定學(xué)習(xí)筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
C++類模板實(shí)戰(zhàn)之vector容器的實(shí)現(xiàn)
本文我們將做一個(gè)類模板實(shí)戰(zhàn)-手寫精簡(jiǎn)版vector容器。讓我們自己封裝一個(gè)數(shù)組類,可以適應(yīng)基本數(shù)據(jù)類型和自定義數(shù)據(jù)類型,感興趣的可以了解一下2022-07-07
C++數(shù)據(jù)結(jié)構(gòu)之鏈表詳解
這篇文章主要介紹了C++數(shù)據(jù)結(jié)構(gòu)之鏈表的創(chuàng)建的相關(guān)資料,希望通過(guò)本文幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下2021-08-08
C語(yǔ)言基于graphics.h實(shí)現(xiàn)圣誕樹(shù)
這篇文章主要介紹了圣誕樹(shù)代碼,c語(yǔ)言編程,基于graphics.h實(shí)現(xiàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12
C++實(shí)現(xiàn)softmax函數(shù)的面試經(jīng)驗(yàn)
這篇文章主要為大家介紹了C++實(shí)現(xiàn)softmax函數(shù)的面試經(jīng)驗(yàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

