小编Nua*_*eux的帖子

Tic Tac Toe Python的Minimax算法

我有点理解minimax算法如何适用于Tic Tac Toe python,但我不知道如何在Python中实际编码...这是我到目前为止所做的:

from copy import deepcopy

class TicTacToeBrain :

    def __init__(self, player = "x") :
        self._squares = {}
        self._copySquares = {}
        self._winningCombos = (
        [0, 1, 2], [3, 4, 5], [6, 7, 8],
        [0, 3, 6], [1, 4, 7], [2, 5, 8],
        [0, 4, 8], [2, 4, 6])

    def createBoard(self) :
        for i in range(9) :
            self._squares[i] = None
        print(self._squares)

    def showBoard(self) :
        print(self._squares[0], self._squares[1], self._squares[2])
        print(self._squares[3], self._squares[4], self._squares[5])
        print(self._squares[6], self._squares[7], self._squares[8])

    def getAvailableMoves(self) :
        self._availableMoves = [] …
Run Code Online (Sandbox Code Playgroud)

python algorithm minimax

3
推荐指数
1
解决办法
6820
查看次数

AVX2 64位无符号整数比较

我正在尝试比较两个__m256i(4 个打包的 64 位整数)。为此,我使用_mm256_cmpgt_epi64函数。

除了一些比较之外,该函数按预期工作,就好像该函数没有考虑 64 位整数的最大位一样。如下图第二次和第三次对比。

这里是一个 MCVE,我期望每个 64 位整数 from 都a大于其对等整数b(因此cp应该是0xFFF...FFF):

#include <immintrin.h>
#include <x86intrin.h>
#include <stdio.h>
#include <inttypes.h>

// gcc mcve.c -mavx2 -madx && ./a.out

int print_avx2_hex256(__m256i ymm)
{
    const size_t n = sizeof(__m256i) / sizeof(u_int64_t);
    u_int64_t buffer[n];
    _mm256_storeu_si256((__m256i*)buffer, ymm);
    for (int i=0; i<n; ++i)
        printf("%016"PRIx64" ", buffer[i]);
    printf("\n");

    return 0;
}

int compare(__m256i a, __m256i b)
{
    __m256i cp = _mm256_cmpgt_epi64(a,b);

    print_avx2_hex256(cp); // Comparison …
Run Code Online (Sandbox Code Playgroud)

c integer compare avx2

2
推荐指数
1
解决办法
1747
查看次数

标签 统计

algorithm ×1

avx2 ×1

c ×1

compare ×1

integer ×1

minimax ×1

python ×1