① 求一个易语言的字节集加密算法,最好是类似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