首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与连接5游戏的比特板?

与连接5游戏的比特板?
EN

Stack Overflow用户
提问于 2013-11-05 11:20:43
回答 2查看 430关注 0票数 1

我需要你的帮助,以了解是否可以使用一个连接5游戏的比特板。因为我看到了很多连接4游戏的例子,但是如果板子很大,比如15x15或19x19,那就什么都没有了。我不明白我怎么能用64位来代表董事会。

谢谢你的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-05 11:27:28

哈?

当然,如果你所说的“比特板”只是指“每个单元格使用一位的2D数组”,那么这是可能的。

有时候,如果舍入每一行(或列)是一个完整的字节,这会更容易一些,但您不必这样做。

只要做这样的事情:

代码语言:javascript
复制
#include <stdint.h>
#include <limits.h>

#define WIDTH 22
#define HEIGHT 17
uint8_t bits[(WIDTH * HEIGHT + CHAR_BIT - 1) / CHAR_BIT];

它将bits声明为一个字节数组,其字节数足以容纳HEIGHT单元的WIDTH矩阵。

使用示例的值,它将是(22 * 17 + 7) /8或47字节长(假设CHAR_BIT为8)。

票数 1
EN

Stack Overflow用户

发布于 2013-11-05 11:39:50

这是可能的,就像解卷的答案中所解释的那样,但是这样做就否定了位板的主要优势,即在一个CPU指令中对整个数据结构执行逻辑操作。最优情况下,位板的大小将是平台指令集的宽度。

一种可能的解决办法是将板表示为多个较小的“标准”位板(32位或64位,视您的平台而定),并在每个迷你位板上分别应用逻辑操作。例如,一个由15x15组成的板可以分成4块8x8块,例如:

代码语言:javascript
复制
typedef uint64_t miniboard_type; // 8x8 board

typedef struct
{
    miniboard_type miniboard[4]; // Larger 15x15 board comprising 4 8x8 boards
} bitboard_type;

bitboard_type bitboard;

当然,我认为你可能也需要调整数学和逻辑,以考虑到迷你比特板之间的边缘(这取决于你想对你的主板做什么)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19787788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档