今天无聊到极点,自己老玩不过去.抄别人的样子,也写了个,过了一把瘾..
下载http://www.hdfdc.gov.cn/download/llk.exe另外问两个小问题:
第一为什么MFC静态DLL编绎后大了好几倍.难道只能用SDK才能小些吗?
第二就是DC重画时,闪客都没这么闪...哎.....
就这句: CDC m_dcCompatible是我的一张DC画布.
dc.BitBlt(0,0,1020,1000,&m_dcCompatible,0,0,SRCCOPY);
void CllkView::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CView::OnPaint()
dc.BitBlt(0,0,1020,1000,&m_dcCompatible,0,0,SRCCOPY);
OnPrepareDC(&dc);
OnDraw(&dc);
}
下载http://www.hdfdc.gov.cn/download/llk.exe另外问两个小问题:
第一为什么MFC静态DLL编绎后大了好几倍.难道只能用SDK才能小些吗?
第二就是DC重画时,闪客都没这么闪...哎.....
就这句: CDC m_dcCompatible是我的一张DC画布.
dc.BitBlt(0,0,1020,1000,&m_dcCompatible,0,0,SRCCOPY);
void CllkView::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CView::OnPaint()
dc.BitBlt(0,0,1020,1000,&m_dcCompatible,0,0,SRCCOPY);
OnPrepareDC(&dc);
OnDraw(&dc);
}
这个才对!
http://www.hdfdc.gov.cn/download/llk.rar
BOOL CllkView::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
return true;
//return CView::OnEraseBkgnd(pDC); //注掉,不重绘
}
从Build->Set Active Configuration->Win32 Release
{//判断是否能连通函数
//------------------主要算法----------------------
int xj[18],yj[11];
int pass=0; //xj[]yj[]分别用来计算算法中“井”字横方向和竖方向对应的空点出现的值,当其xj[x]值为2表示该水平或竖直方蛴兄睾系?br> int k;
int m;
int i;//取得a数组并写入到b数组中.
int temppdindex;//临时存放存的图片号码
temppdindex=a[ex][ey];
a[ex][ey] = 0;
a[fx][fy] = 0;
//___________________
for (i=0 ; i<x+2;i++)
{
xj=0;
}
for (i=0 ; i<y+2;i++)
{
yj=0;
}
xj[ex]++;
for (k=ex-1;k>-1;k--)
{
if ( 0 == a[k][ey])
{
xj[k]++;
}
else
{
break;
}
}
for (k=ex+1;k<x+2;k++)
{
if ( 0 == a[k][ey])
{
xj[k]++;
}
else
{
break;
}
}
xj[fx]++;
for (k=fx-1;k>-1;k--)
{
if ( 0 == a[k][fy])
{
xj[k]++;
}
else
{
break;
}
}
for (k=fx+1;k<x+2;k++)
{
if ( 0 == a[k][fy])
{
xj[k]++;
}
else
{
break;
}
}
//现在开始进行水平方向的扁历判断
for(k=0;k<x+2;k++)
{
if(xj[k]==2)
{
//if(Math.Abs(ey-fy) == 1)
if((ey-fy) == 1 || (ey-fy) == -1 )
{
//MessageBox.Show("可通1");
//--------------------------可通
a[ex][ey] = temppdindex;
a[fx][fy] = temppdindex;
return true;
}
else
{
pass=0;
for (m = (ey<fy ? ey:fy) ;m< ( ey<fy ? fy:ey);m++ )
{
if(a[k][m] !=0 )
{
pass=1;
break;
}
}
if(pass==0)
{
//MessageBox.Show("可通2");
//--------------------------可通
a[ex][ey] = temppdindex;
a[fx][fy] = temppdindex;
return true;
} }
}
}
//---------以上为水平2条通路判断,下面为竖直方向2条通路判断,下面方法判断和上面的原理相同,不做详细介绍了
yj[ey]++;
for (k=ey-1;k>-1;k--)
{
if ( 0 == a[ex][k])
{
yj[k]++;
}
else
{
break;
}
}
for (k=ey+1;k<y+2;k++)
{
if ( 0 == a[ex][k])
{
yj[k]++;
}
else
{
break;
}
}
yj[fy]++;
for (k=fy-1;k>-1;k--)
{
if ( 0 == a[fx][k])
{
yj[k]++;
}
else
{
break;
}
}
for (k=fy+1;k<y+2;k++)
{
if ( 0 == a[fx][k])
{
yj[k]++;
}
else
{
break;
}
}
//现在开始进行竖直方向的扁历判断
for(k=0;k<y+2;k++)
{
if(yj[k]==2)
{
//if(Math.Abs(ex-fx) == 1)
if((ex-fx) == 1 || (ex-fx) == -1)
{
//MessageBox.Show("可通3");
//--------------------------可通
a[ex][ey] = temppdindex;
a[fx][fy] = temppdindex;
return true;
}
else
{
pass=0;
for (m = (ex<fx ? ex:fx) ;m< ( ex<fx ? fx:ex);m++ )
{
if(a[m][k] !=0 )
{
pass=1;
break;
}
}
if(pass==0)
{
//MessageBox.Show("可通4");
//--------------------------可通
a[ex][ey] = temppdindex;
a[fx][fy] = temppdindex;
return true;
}
}
}
}
//-----------------主要算法------------------------------
a[ex][ey] = temppdindex;
a[fx][fy] = temppdindex;
return false;
}
这是从其他论坛中拷贝过来的,有借鉴意义。
请不要做浮躁的人
1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想
出来再参考别人的提示,你就知道自己和别人思路的差异。
2.初学者请不要看太多太多的书那会误人子弟的,先找本系统的学,很多人用了很久
都是只对部分功能熟悉而已,不系统还是不够的。
3.看帮助,不要因为很难而自己是初学者所以就不看;帮助永远是最好的参考手册,
虽然帮助的文字有时候很难看懂,总觉得不够直观。
4.不要被对象、属性、方法等词汇所迷惑;最根本的是先了解最基础知识。
5.不要放过任何一个看上去很简单的小问题--他们往往并不那么简单,或者可以引伸
出很多知识点;不会举一反三你就永远学不会。
6.知道一点东西,并不能说明你会写脚本,脚本是需要经验积累的。
7.学脚本并不难,JSP、ASP、PHP等等也不过如此--难的是长期坚持实践和不遗余力的博览
群书;
8.看再多的书是学不全脚本的,要多实践
9.把时髦的技术挂在嘴边,还不如把过时的技术记在心里;
10.学习脚本最好的方法之一就是多练习;
11.在任何时刻都不要认为自己手中的书已经足够了;
12.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;
13.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;
14.请把书上的例子亲手到电脑上实践,即使配套光盘中有源文件;
15.把在书中看到的有意义的例子扩充;并将其切实的运用到自己的工作中;
16.不要漏掉书中任何一个练习——请全部做完并记录下思路;
17.当你用脚本到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余
下的部分粗略的完成以保证这个代码的完整性,然后分析自己的错误并重新编写和工
作。
18.别心急,写脚本确实不容易;水平是在不断的实践中完善和发展的;
19.每学到一个脚本难点的时候,尝试着对别人讲解这个知识点并让他理解----你能
讲清楚才说明你真的理解了;
20.记录下在和别人交流时发现的自己忽视或不理解的知识点;
21.保存好你做过的所有的源文件----那是你最好的积累之一;
22.对于网络,还是希望大家能多利用一下,很多问题不是非要到论坛来问的,首先
你要学会自己找答案,比如google、百度都是很好的搜索引擎,你只要输入关键字就
能找到很多相关资料,别老是等待别人给你希望,看的出你平时一定也很懒!
23,到一个论坛,你学会去看以前的帖子,不要什么都不看就发帖子问,也许你的问
题早就有人问过了,你再问,别人已经不想再重复了,做为初学者,谁也不希望自己
的帖子没人回的。
24,虽然不是打击初学者,但是这句话还是要说:论坛论坛,就是大家讨论的地方,
如果你总期望有高手总无偿指点你,除非他是你亲戚!!讨论者,起码是水平相当的
才有讨论的说法,如果水平真差距太远了,连基本操作都需要别人给解答,谁还跟你
讨论呢。浮躁的人容易问:我到底该学什么;----别问,学就对了;
浮躁的人容易问:Js有钱途吗;----建议你去抢银行;
浮躁的人容易说:我要中文版!我英文不行!----不行?学呀!
浮躁的人分两种:只观望而不学的人;只学而不坚持的人;
浮躁的人永远不是一个高手。
有啥好保密,由于是随便做的练习用的,代码十分不规范,实在丢人,想到啥就做啥.不好意思见人
我敢向"毛,主..席"(CSDN这个词也不给发)发誓:程序就是用这段代码判断的.就这一点判断联通是最关键的有那么些少用,其它实现都是垃圾..
后面的实现,用C#或VC或VB,delphi任一个工具,一会就能实现.轻轻松松边听歌,边实现保证不超过二小时..PS:工作了七、八年,也快三十,好多年前就做过管理,感觉还是写代码时心情最愉快,没你所说的累,当兴趣变成机械工作时真的累,曾经试过,现在打杂,但还是很喜欢写自已感兴趣的代码,练练手..
当兴趣变成机械工作时真的累<<===极度赞同。现在眼睛太累了~~~~~