当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 文/jorge如前所述,算法层的实现,不外乎两种操作:1。
 

 

    摘要:unit unit1; interface uses windows, messages, sysutils, variants, classes, graphics, controls, forms, dialogs, extctrls, stdctrls, jpeg; const lmousedown=false; type tform1 = class(tform) ......
    摘要:关键字:dialog、对话框、resizable1、问题的提出问题来自stanley_xu,希望得到只有关闭按钮(还可以有帮助),左上也没有程序的图标并且能够更改窗口大小的对话框。vcl中为tform设置了borderstyle和bordericons属性,用以简化窗口样式的设置(否则就要调用setwindowlong和getwindowlong等api函数)。tformborderstyle和t......


扫雷外挂的设计与实现(五)

文/jorge

就来看这个最简单的算法: 【程序编程相关:FastReport常见问题集

如前所述,算法层的实现,不外乎两种操作:1.如果一个方块的数值等于周围未挖开的方块数目,则把周围所有方块标记为雷;2.如果一个方块的数值等于周围已经标记为雷的方块个数,则在该块上同时单击左右键.实际上,这只是最简单的两种判断(简单到甚至不该称之为“判断”,而只是例行公事而已),而比这更复杂的分析判断还可以有很多,但现在我们追求的是程序的简单易懂,而且,就这两种最简单的判断,已经可以达到很好的效果了,在实际中它们绝对占到了扫雷所用时间的一大多半.更高级的判断,在扫雷外挂的0.2版本里也已经实现了,但在此处若要加以叙述,不免还要大幅增加篇幅. 【推荐阅读:游戏外挂设计技术探讨①

//根据cells中的数据进行判断,把适当的操作填入operations中 【扩展信息:Delphi 控制摄像头

=================================================================

procedure analyzecells;

var

  i, j: integer;

  neighborcount: integer;      //保存一个方块周围未挖开的方块的数目

begin

  //首先清空输出缓冲区

  for i:=0 to areawidth-1 do

  for j:=0 to areaheight-1 do

    operations[i, j] := opnone;

  //扫描输入缓冲区,执行两种最简单的判断

  for i:=0 to areawidth-1 do

  for j:=0 to areaheight-1 do

  begin

    //取得一个方块周围未挖开的方块的数目

    neighborcount := countneighbors(i, j, [csunknown, cspossible]);

    //只有1~8的数字,并且周围存在未挖开的方块,这样的方块才有分析价值

    if (cells[i, j]>cs0) and (cells[i, j]<=cs8) and (neighborcount > 0) then

      //第一种情况


...   下一页
    摘要:library dbinstall;{ important note about dll memory management: sharemem must be the first unit in your librarys uses clause and your projects (select project-view source) uses clause if your dll expo......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE