① 求一個易語言的位元組集加密演算法,最好是類似MD5這種能把任意長度的位元組集加密成固定長度的密文的。當然
MD5
不可能直接解密的
不存在一種可逆的演算法(能加密和加密)能把不同的明文加密成固定長度的密文
② 易語言如何實現數字的加密與解密
1,易語言有自帶的加解密
2,用常用的SHA1 或者MD5加密
3,自己編寫演算法咯
③ 易語言遞歸演算法怎麼用,求高手給舉個簡單點的例子
遞歸,簡單說是子程序自己調用自己。
例子:
.版本 2
.子程序 左右查找
.參數 左邊值, 整數型
.參數 右邊值, 整數型
.參數 查找數組, , 數組
.參數 ww, , 參考 可空 數組
.局部變數 i, 整數型
.局部變數 j, 整數型
.局部變數 中間值, 整數型
.如果真 (左邊值 ≥ 右邊值)
返回 ()
.如果真結束
i = 左邊值
j = 右邊值
.判斷循環首 (j ≠ i)
.判斷循環首 (查找數組 [左邊值] ≤ 查找數組 [j] 且 i < j)
j = j - 1
.判斷循環尾 ()
.判斷循環首 (查找數組 [左邊值] ≥ 查找數組 [i] 且 i < j)
i = i + 1
.判斷循環尾 ()
.如果真 (i < j)
中間值 = 查找數組 [j]
查找數組 [j] = 查找數組 [i]
查找數組 [i] = 中間值
.如果真結束
.判斷循環尾 ()
中間值 = 查找數組 [左邊值]
查找數組 [左邊值] = 查找數組 [i]
查找數組 [i] = 中間值
左右查找 (左邊值, i - 1, 查找數組, ) ' 繼續處理左邊的,這里是個遞歸的過程
左右查找 (i + 1, 右邊值, 查找數組, ) ' 繼續處理右邊的,這里是個遞歸的過程
ww = 查找數組
' 以上是快速排序的代碼實現,核心所在是遞歸的過程。
④ 易語言如何對軟體解密讀取加密數據
加密數據
(讀入文件(「需要加密的文件」),「密碼文本可自定義,解密需要用到」
,#RC4演算法
)
解密數據
(讀入文件(「需要解密的文件」),「加密的密碼文本」
,#RC4演算法)
了解一下這兩個命令,返回類型為位元組集,可以用寫到文件寫出加密後的文件
當你需要在軟體中打開加密文件,可以新建一個位元組集變數,存放解密後的數據,然後在從變數中讀取數據
⑤ 大神幫幫看下 有四個錯誤 簡易的迷宮代碼
#include<stdio.h>
#include<conio.h>
#include<windows.h>
#include<time.h>
#defineheight31//高度為奇數
#definewidth25//寬度為奇數
#defineWall1
#defineRoad0
#defineStart2
#defineEnd3
#defineEsc5
#defineUp1
#defineDown2
#defineLeft3
#defineRight4
intmap[height+2][width+2];
voidgotoxy(intx,inty)//移動坐標
{
COORDcoord;
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}
voidhidden()//隱藏游標
{
HANDLEhOut=GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFOcci;
GetConsoleCursorInfo(hOut,&cci);
cci.bVisible=0;//賦1為顯示,賦0為隱藏
SetConsoleCursorInfo(hOut,&cci);
}
voidcreate(intx,inty)//隨機生成迷宮
{
intc[4][2]={0,1,1,0,0,-1,-1,0};//四個方向
inti,j,t;//將方向打亂
for(i=0;i<4;i++)
{
j=rand()%4;
t=c[i][0];c[i][0]=c[j][0];c[j][0]=t;
t=c[i][1];c[i][1]=c[j][1];c[j][1]=t;
}
map[x][y]=Road;
for(i=0;i<4;i++)
if(map[x+2*c[i][0]][y+2*c[i][1]]==Wall)
{
map[x+c[i][0]][y+c[i][1]]=Road;
create(x+2*c[i][0],y+2*c[i][1]);
}
}
intget_Key()//接受按鍵
{
charc;
while(c=getch())
{
if(c==27)returnEsc;//Esc
if(c!=-32)continue;
c=getch();
if(c==72)returnUp;//上
if(c==80)returnDown;//下
if(c==75)returnLeft;//左
if(c==77)returnRight;//右
}
return0;
}
voidpaint(intx,inty)//畫迷宮
{
gotoxy(2*y-2,x-1);
switch(map[x][y])
{
caseStart:
printf("入");break;//畫入口
caseEnd:
printf("出");break;//畫出口
caseWall:
printf("$");break;//畫檣
caseRoad:
printf("");break;//畫路
}
}
voidgame()
{
intx=2,y=1;//玩家開始位置
intc;//接受按鍵
while(1)
{
gotoxy(2*y-1,x-1);
printf("※");//畫出玩家位置
if(map[x][y]==End)//判斷是否到達出口
{
gotoxy(30,24);
printf("到達終點,按任意鍵結束");
getch();
break;
}
c=get_Key();
if(c==Esc)
{
gotoxy(0,24);
break;
}
switch(c)
{
caseUp://向上走
if(map[x-1][y]!=Wall)
{
paint(x,y);
x--;
}
break;
caseDown://向下走
if(map[x+1][y]!=Wall)
{
paint(x,y);
x++;
}
break;
caseLeft://向左走
if(map[x][y-1]!=Wall)
{
paint(x,y);
y--;
}
break;
caseRight://向右走
if(map[x][y+1]!=Wall)
{
paint(x,y);
y++;
}
break;
}
}
}
intmain()
{
inti,j;
srand((unsigned)time(NULL));//初始化隨即種子
hidden();//隱藏游標
for(i=0;i<height+1;i++)
for(j=0;j<height+1;j++)
if(i==0||i==(height+1)||j==0||j==(width+1))//初始化迷宮
map[i][j]=Road;
elsemap[i][j]=Wall;
create(2*(rand()%(height/2)+1),2*(rand()%(width/2)+1));//從隨即一個點生成迷宮
for(i=0;i<=height+1;i++)//邊界處理
{
map[i][0]=Wall;
map[i][width+1]=Wall;
}
for(j=0;j<width+1;j++)//邊界處理
{
map[0][j]=Wall;
map[height+1][j]=Wall;
}
map[2][1]=Start;//給定入口
map[height-1][width]=End;//給定出口
for(i=1;i<height;i++)
for(j=1;j<=width;j++)//畫出迷宮
paint(i,j);
game();//開始游戲
getch();
return0;
}
⑥ 迷宮問題詳細的演算法或Pascal程序帶注釋
Dinic演算法的思想是為了減少增廣次數,建立一個輔助網路L,L與原網路G具有相同的節點數,但邊上的容量有所不同,在L上進行增廣,將增廣後的流值回寫到原網路上,再建立當前網路的輔助網路,如此反復,達到最大流。分層的目的是降低尋找增廣路的代價。
演算法步驟如下:
STEP1:建造原網路G的一個分層網路L。
STEP2:用增廣路演算法計算L的最大流F,若在L中找不到增廣路,演算法結束。
SETP3:根據F更新G中的流f,轉STEP1。
分層網路的構造演算法:
STEP1:標號源節點s,M[s]=0。
STEP2:調用廣度優先遍歷演算法,執行一步遍歷操作,當前遍歷的弧e=v1v2,令r=G.u(e)-G.f(e)。
若r>0,則
(1) 若M[v2]還沒有遍歷,則M[v2]=M[v1]+1,且將弧e加入到L中,容量L.u(e)=r。
(2) 若M[v2]已經遍歷且M[v2]=M[v1]+1,則將邊e加入到L中,容量L.u(e)=r。
(3) 否則L.u(e)=0。
否則L.u(e)=0。
重復本步直至G遍歷完。其中的G.u(e)、G.f(e)、L.u(e)分別表示圖G中弧e的容量上界和當前流量,圖L中弧e的容量上界。
下附程序 (鄰接表的程序,希望看得懂)
Program zw_dinicc;
type
o=record
point,next,c:longint;
end;
Var
i,j,k,p,n,m,head,tail,s,t,tot,a1,a2,a3,tot1,a4:longint;
h,l:array[1..55002]of longint;
first:array[1..55002]of longint;
e:array[1..310002] of o;
procere add(a,b,c:longint);
begin
e[tot1].point:=b; e[tot1].next:=first[a]; e[tot1].c:=c; first[a]:=tot1; inc(tot1);
end;
procere init;
var i,x,y,q:longint;
begin
tot1:=2;
readln(n,m);
for i:=m+2 to n+m+1 do
begin
read(a1);
add(i,n+m+2,a1);
add(n+m+2,i,0);
end;
for i:=2 to m+1 do
begin
read(a1,a2,a3);
add(i,1+m+a1,65536000); add(1+m+a1,i,0);
add(i,1+m+a2,65536000); add(1+m+a2,i,0);
add(1,i,a3);add(i,1,0);
inc(j,a3);
end;
n:=2+m+n;
s:=1;
t:=n;
end;
//以上為建邊,用的是殘量網路
procere bfs;{構建分層圖,從原點開始廣搜}
var
i,j,k,now:longint;
begin
head:=1; tail:=1; l[head]:=s; fillchar(h,sizeof(h),127); h[s]:=0;
while head<= tail do
begin
now:=l[head]; inc(head); k:=first[now];
while k>0 do
begin
if (h[e[k].point]>n) and(e[k].c>0) then{如果可以流,且該點未被訪問}
begin
h[e[k].point]:=h[now]+1;
inc(tail);
l[tail]:=e[k].point;
end;
k:=e[k].next;
end;
end;
end;
function dfs(now,low:longint):longint;{根據分層圖增廣,low表示到now為止最多可增廣流量}
var
i,j,k,tmp:longint;
begin
if now=t then exit(low);
dfs:=0; k:=first[now];
while k>0 do
begin
if (e[k].c>0) and (h[e[k].point]=h[now]+1) then{如果在分層圖中符合限制}
begin
if e[k].c<low then tmp:=dfs(e[k].point,e[k].c){尋找可接受的最大流量}
else tmp:=dfs(e[k].point,low);
if tmp=0 then h[e[k].point]:=maxlongint shr 1;
dec(low,tmp);{把可流量減去增廣值}
dec(e[k].c,tmp);
inc(e[k xor 1].c,tmp);
inc(dfs,tmp);
if low=0 then break;{若無法再增廣,退出}
end;
k:=e[k].next;
end;
end;
Procere main;
begin
bfs;
while h[t]<n do{如果在分層圖中找得到匯點}
begin
inc(tot,dfs(s,maxlongint));{根據分層圖增廣}
bfs;{根據新的流量構建分層圖}
end;
end;
Begin
assign(input,'profit.in');reset(input);
assign(output,'profit.out');rewrite(output);
init;
main;
writeln(j-tot);
close(input);close(output);
End.
看在本人手打這么多東西的份上,選我吧
⑦ 易語言怎麼製作迷宮小游戲
這很簡單!
1.
放一個動畫框1,兩個動畫物體.准備2張圖片,一張是迷宮圖,一張是小人。
2.
將動畫物體1和動畫物體2放到動畫框上去,然後打代碼
動畫框1.創建物體
(動畫物體1,
0,
0,
,
)
動畫框1.自動方向鍵移動
(動畫框1.創建物體
(動畫物體2,
200,
70,
,
),
5,
,
真,
0,
#上游標鍵,
#下游標鍵,
#左游標鍵,
#右游標鍵,
,
)
3.
將動畫物體1.也就是地圖的屬性里有個類型值,改為
1
。還有個自動獲取透明值,改為真,
4.
試試看
備用方案:
如果還不會可以:
1.下載教程去。
2.打開你說的那個笑臉迷宮,雙擊那個笑臉,就會出現窗口程序集,可以看見代碼,你自己應該能看懂!
3.如果還不會,可以問我,我給你發我做迷宮的教程圖片!
希望你學會!
打字好累...望各位先生女士贊我吧...
⑧ 易語言按鈕用鍵盤方向鍵移動,讓我指定的位置不能通過,比如像迷宮那樣只有一條路可以走,碰牆就不能移動
可能可以解決你
你自己用畫圖畫一個迷宮圖放在動畫物體上也行
⑨ 易語言怎麼加密字元數字
直接用【 加密數據 ()】
調用格式: 〈位元組集〉 加密數據 (位元組集 位元組集數據,文本型 密碼文本,[整數型 加密演算法]) - 數據操作支持庫一->數據加解密
英文名稱:Encrypt
加密一段位元組集數據,返回加密後的結果位元組集。如果失敗,返回空位元組集。本命令為初級命令。
參數<1>的名稱為「位元組集數據」,類型為「位元組集(bin)」。為命令提供所需的位元組集數據。
參數<2>的名稱為「密碼文本」,類型為「文本型(text)」。
參數<3>的名稱為「加密演算法」,類型為「整數型(int)」,可以被省略。指定具體使用的加密演算法,可以為以下常量值之一:1: #DES演算法; 2: #RC4演算法。加密和解密必須使用相同的演算法,有關演算法的具體說明請參閱有關文獻。如果本參數被省略,則默認值為1,即DES演算法。
操作系統需求: Windows、Linux