当前位置: 首页 > 知识库问答 >
问题:

射线攻击比特板

敖毅
2023-03-14

我试图计算给定64位长比特板表示的索引的射线攻击:

(defn se [board index]
  "Produces a ray attack from the indexed bit in the south-east direction"
  (reduce bit-or
    (for [bit (rest (range index 0 -7))]
      (bit-flip board bit))))

rook攻击(直接沿着一个文件或等级)非常简单。然而,上述代码的问题是,我最终得到了以下对角线Bishop攻击的可能性:

00000000
00100000
01000000
10000001
00000010
00000100
00001000
00010000

我该如何解释这块木板边缘脱落的情况?我使用的是大端映射(A8=0,H1=63)。

共有2个答案

洪梓
2023-03-14

我可能会使用电路板上的x,y坐标来做这件事:这使得在电路板边缘进行边界条件检查变得更容易,比如

(defn se [x y]
  "Produces a ray attack from the indexed bit in the south-east direction"
  (let [initial (bit-shift-left (bit-shift-left (long 1) x) (* y 8))
        dx 1 ;; x direction
        dy 1 ;; y direction
        distance (min 
                   (- 7 x) 
                   (- 7 y))
        shift (+ dx (* 8 dy))]
    (loop [value 0
           distance distance]
      (if (<= distance 0)
        value
        (recur (bit-or value (bit-shift-left initial (* distance shift))) (dec distance))))))

(defn bits [^long bitboard]
  (map 
    #(if (> (bit-and 1 (bit-shift-right bitboard %)) 0) 1 0)
    (range 64)))

(defn display [bitboard]
  (let [bits (partition 8 (bits bitboard))]
    (doseq [ss bits]
      (println (apply str ss)))))

(display (se 1 3))

00000000
00000000
00000000
00000000
00100000
00010000
00001000
00000100

通过一些额外的工作,您可以将其推广为向任何(dx,dy)方向投射射线,例如(1,0)对于向东移动的车。如果您设置距离限制,您甚至可以将(2,1)用于骑士......

我认为这将比为每个方向定义单独的功能更实用。

劳彦
2023-03-14
(defn se [board index]
  "Produces a ray attack from the indexed bit in the south-east direction"
  (reduce bit-or 0
    (for [bit (take (- 7 (rem index 8)) (rest (range index 0 -7)))]
      (bit-flip board bit))))
 类似资料:
  • 比特币确实是最安全的加密货币。它在协议的多个级别提供安全性。它经常呈现持续复杂的攻击。在本节中,我们将了解在比特币系统中的一些可能的攻击类型。 Sybil攻击 Sybil攻击发生在点对点网络中。恶意攻击者希望对比特币网络进行此攻击。在这种情况下,网络中的节点同时运行多个身份并破坏信誉系统中的权限。其主要目的是在网络中获得大部分影响力,以在系统中执行非法行为。 Sybil攻击难以检测和预防,但以下措

  • 简介 当今,无线网络随处可见。由于用户四处奔走,插入以太网网线来获取互联网访问的方式非常不方便。无线网络为了使用便利要付出一些代价;它并不像以太网连接那样安全。这一章中,我们会探索多种方式来操纵无线网络流量,这包括移动电话和无线网络。 9.1 WEP 无线网络破解 WEP(无线等效协议)于 1999 年诞生,并且是用于无线网络的最古老的安全标准。在 2003 年,WEP 被 WPA 以及之后被 W

  • 本章内容: 嗅探无线网络的私人信息 监听请求网络和识别隐藏的无线网络 控制无线无人机 确认Firesheep的使用 潜入蓝牙设备 利用蓝牙漏洞进行渗透 知识的增长并不是和树一样,种植一棵树,你只要把它放进地里,盖上点土,定期为他浇水就行。知识的增长却伴随着时间,工作和长期的努力。除此之外,不能用任何手段获得知识。 —美国拳击顶级大师,Ed Parker 简介:无线安全和冰人 2007年5月,美国特

  • “点击劫持”攻击允许恶意页面 以用户的名义 点击“受害网站”。 许多网站都被黑客以这种方式攻击过,包括 Twitter、Facebook 和 Paypal 等许多网站。当然,它们都已经被修复了。 原理 原理十分简单。 我们以 Facebook 为例,解释点击劫持是如何完成的: 访问者被恶意页面吸引。怎样吸引的不重要。 页面上有一个看起来无害的链接(例如:“变得富有”或者“点我,超好玩!”)。 恶意

  • 在本节中,我们将讨论如何攻击网站。对于攻击网站,我们有两种方法: 我们可以使用攻击迄今为止学到的网站方法的方法。因为我们知道网站安装在计算机上,所以可以像其他任何计算机一样尝试攻击和破解它。但是,我们知道网站安装在计算机上,可以像其他计算机一样尝试攻击和破解它。还可以使用服务器端攻击来查看安装了哪个操作系统,Web服务器或其他应用程序。如果发现了漏洞,我们可以使用它们中的任何一个来访问计算机。 另

  • 一、跨站脚本攻击 二、跨站请求伪造 三、SQL 注入攻击 四、拒绝服务攻击 参考资料 一、跨站脚本攻击 概念 跨站脚本攻击(Cross-Site Scripting, XSS),可以将代码注入到用户浏览的网页上,这种代码包括 HTML 和 JavaScript。 攻击原理 例如有一个论坛网站,攻击者可以在上面发布以下内容: // html location.href="//domain.com/?