本源代碼是基于STM32F4xx硬件平臺(tái)設(shè)計(jì)的貪吃蛇小游戲,主要難點(diǎn)在:隨機(jī)點(diǎn)產(chǎn)生、貪吃蛇轉(zhuǎn)向、貪吃蛇貪吃點(diǎn);本部分主要接收產(chǎn)生隨機(jī)點(diǎn),產(chǎn)生隨機(jī)點(diǎn)需要注意兩個(gè)方面:1、隨機(jī)點(diǎn)在有效的范圍內(nèi);2、貪吃點(diǎn)與貪吃蛇不重合。產(chǎn)生隨機(jī)點(diǎn)主要有兩個(gè)函數(shù),分別如下://隨機(jī)數(shù)產(chǎn)生任務(wù)void rng_chansheng(void *p_arg){OS_ERR err;while(1){OSSemPend(&RNG_SEM,0,OS_OPT_PEND_BLOCKING,0,&err);zou.x = RNG_Get_RandomRange(0,50)*8 + 40;zou.y = RNG_Get_RandomRange(0,50)*8 + 260;lcd_fangkuan(zou.x,zou.y,zou.x+SHE_FAANGKUAN_SIZE,zou.y+SHE_FAANGKUAN_SIZE);OSTimeDlyHMSM(0,0,0,500,OS_OPT_TIME_HMSM_STRICT,&err); //延時(shí)500ms}}//往下方向畫一個(gè)實(shí)心的正方形,代表貪食蛇的一段void lcd_fangkuan(u16 x1,u16 y1,u16 x2 ,u16 y2){u16 i,j;u16 xx,yy;if(((x2 - x1) != SHE_FAANGKUAN_SIZE)||((y2 - y1) != SHE_FAANGKUAN_SIZE))return ;if(x1 > x2) {xx = x1;x1 = x2;x2 = xx;}if(y1 > y2){yy = y1;y1 = y2;y2 = yy;}if((y1 < 260)|| (y2 > 660)||(x1 < 40)||(x2 > 448)){game_yun_error = 1;LCD_ShowString(150,300,500,24,24,"GAME OVER!!");return ;}for(i=x1; i<x2; i++){for(j=y1; j<y2; j++){LCD_DrawPoint(i,j);}}}
上傳時(shí)間: 2022-08-10
上傳用戶:
Hopfield 網(wǎng)——擅長(zhǎng)于聯(lián)想記憶與解迷路 實(shí)現(xiàn)H網(wǎng)聯(lián)想記憶的關(guān)鍵,是使被記憶的模式樣本對(duì)應(yīng)網(wǎng)絡(luò)能量函數(shù)的極小值。 設(shè)有M個(gè)N維記憶模式,通過(guò)對(duì)網(wǎng)絡(luò)N個(gè)神經(jīng)元之間連接權(quán) wij 和N個(gè)輸出閾值θj的設(shè)計(jì),使得: 這M個(gè)記憶模式所對(duì)應(yīng)的網(wǎng)絡(luò)狀態(tài)正好是網(wǎng)絡(luò)能量函數(shù)的M個(gè)極小值。 比較困難,目前還沒(méi)有一個(gè)適應(yīng)任意形式的記憶模式的有效、通用的設(shè)計(jì)方法。 H網(wǎng)的算法 1)學(xué)習(xí)模式——決定權(quán)重 想要記憶的模式,用-1和1的2值表示 模式:-1,-1,1,-1,1,1,... 一般表示: 則任意兩個(gè)神經(jīng)元j、i間的權(quán)重: wij=∑ap(i)ap(j),p=1…p; P:模式的總數(shù) ap(s):第p個(gè)模式的第s個(gè)要素(-1或1) wij:第j個(gè)神經(jīng)元與第i個(gè)神經(jīng)元間的權(quán)重 i = j時(shí),wij=0,即各神經(jīng)元的輸出不直接返回自身。 2)想起模式: 神經(jīng)元輸出值的初始化 想起時(shí),一般是未知的輸入。設(shè)xi(0)為未知模式的第i個(gè)要素(-1或1) 將xi(0)作為相對(duì)應(yīng)的神經(jīng)元的初始值,其中,0意味t=0。 反復(fù)部分:對(duì)各神經(jīng)元,計(jì)算: xi (t+1) = f (∑wijxj(t)-θi), j=1…n, j≠i n—神經(jīng)元總數(shù) f()--Sgn() θi—神經(jīng)元i發(fā)火閾值 反復(fù)進(jìn)行,直到各個(gè)神經(jīng)元的輸出不再變化。
上傳時(shí)間: 2015-03-16
上傳用戶:JasonC
詞法分析程序,可對(duì)以下的C源程序進(jìn)行分析:main() {int a[12] ,sum for(i=1 i<=12 i++) {for(j=1 j<=12 j++)scanf("%d",&a[i][j]) } for(i=12 i>=1 i--){ for(j=12 j>=1 j--){ if(i==j&&i+j==13)sum+=a[i][j] } } printf("%c",sum) }
上傳時(shí)間: 2013-12-26
上傳用戶:skhlm
算法介紹 矩陣求逆在程序中很常見,主要應(yīng)用于求Billboard矩陣。按照定義的計(jì)算方法乘法運(yùn)算,嚴(yán)重影響了性能。在需要大量Billboard矩陣運(yùn)算時(shí),矩陣求逆的優(yōu)化能極大提高性能。這里要介紹的矩陣求逆算法稱為全選主元高斯-約旦法。 高斯-約旦法(全選主元)求逆的步驟如下: 首先,對(duì)于 k 從 0 到 n - 1 作如下幾步: 從第 k 行、第 k 列開始的右下角子陣中選取絕對(duì)值最大的元素,并記住次元素所在的行號(hào)和列號(hào),在通過(guò)行交換和列交換將它交換到主元素位置上。這一步稱為全選主元。 m(k, k) = 1 / m(k, k) m(k, j) = m(k, j) * m(k, k),j = 0, 1, ..., n-1;j != k m(i, j) = m(i, j) - m(i, k) * m(k, j),i, j = 0, 1, ..., n-1;i, j != k m(i, k) = -m(i, k) * m(k, k),i = 0, 1, ..., n-1;i != k 最后,根據(jù)在全選主元過(guò)程中所記錄的行、列交換的信息進(jìn)行恢復(fù),恢復(fù)的原則如下:在全選主元過(guò)程中,先交換的行(列)后進(jìn)行恢復(fù);原來(lái)的行(列)交換用列(行)交換來(lái)恢復(fù)。
上傳時(shí)間: 2015-04-09
上傳用戶:wang5829
一個(gè)簡(jiǎn)單的類似鋼琴的游戲,能夠發(fā)出3個(gè)8度音, 低音:1~7; 中音:Q~U或q~u; 高音:A~J或a~j;
標(biāo)簽: 鋼琴
上傳時(shí)間: 2015-06-09
上傳用戶:784533221
Floyd-Warshall算法描述 1)適用范圍: a)APSP(All Pairs Shortest Paths) b)稠密圖效果最佳 c)邊權(quán)可正可負(fù) 2)算法描述: a)初始化:dis[u,v]=w[u,v] b)For k:=1 to n For i:=1 to n For j:=1 to n If dis[i,j]>dis[i,k]+dis[k,j] Then Dis[I,j]:=dis[I,k]+dis[k,j] c)算法結(jié)束:dis即為所有點(diǎn)對(duì)的最短路徑矩陣 3)算法小結(jié):此算法簡(jiǎn)單有效,由于三重循環(huán)結(jié)構(gòu)緊湊,對(duì)于稠密圖,效率要高于執(zhí)行|V|次Dijkstra算法。時(shí)間復(fù)雜度O(n^3)。 考慮下列變形:如(I,j)∈E則dis[I,j]初始為1,else初始為0,這樣的Floyd算法最后的最短路徑矩陣即成為一個(gè)判斷I,j是否有通路的矩陣。更簡(jiǎn)單的,我們可以把dis設(shè)成boolean類型,則每次可以用“dis[I,j]:=dis[I,j]or(dis[I,k]and dis[k,j])”來(lái)代替算法描述中的藍(lán)色部分,可以更直觀地得到I,j的連通情況。
標(biāo)簽: Floyd-Warshall Shortest Pairs Paths
上傳時(shí)間: 2013-12-01
上傳用戶:dyctj
求標(biāo)準(zhǔn)偏差 > function c=myfunction(x) > [m,n]=size(x) > t=0 > for i=1:numel(x) > t=t+x(i)*x(i) > end > c=sqrt(t/(m*n-1)) function c=myfunction(x) [m,n]=size(x) t=0 for i=1:m for j=1:n t=t+x(i,j)*x(i,j) end end c=sqrt(t/(m*n-1
標(biāo)簽: gt myfunction function numel
上傳時(shí)間: 2014-01-15
上傳用戶:hongmo
求標(biāo)準(zhǔn)偏差 > function c=myfunction(x) > [m,n]=size(x) > t=0 > for i=1:numel(x) > t=t+x(i)*x(i) > end > c=sqrt(t/(m*n-1)) function c=myfunction(x) [m,n]=size(x) t=0 for i=1:m for j=1:n t=t+x(i,j)*x(i,j) end end c=sqrt(t/(m*n-1
標(biāo)簽: gt myfunction function numel
上傳時(shí)間: 2013-12-26
上傳用戶:dreamboy36
求標(biāo)準(zhǔn)偏差 > function c=myfunction(x) > [m,n]=size(x) > t=0 > for i=1:numel(x) > t=t+x(i)*x(i) > end > c=sqrt(t/(m*n-1)) function c=myfunction(x) [m,n]=size(x) t=0 for i=1:m for j=1:n t=t+x(i,j)*x(i,j) end end c=sqrt(t/(m*n-1
標(biāo)簽: gt myfunction function numel
上傳時(shí)間: 2016-06-28
上傳用戶:change0329
求標(biāo)準(zhǔn)偏差 > function c=myfunction(x) > [m,n]=size(x) > t=0 > for i=1:numel(x) > t=t+x(i)*x(i) > end > c=sqrt(t/(m*n-1)) function c=myfunction(x) [m,n]=size(x) t=0 for i=1:m for j=1:n t=t+x(i,j)*x(i,j) end end c=sqrt(t/(m*n-1
標(biāo)簽: gt myfunction function numel
上傳時(shí)間: 2014-09-03
上傳用戶:jjj0202
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1