小编Spe*_*cer的帖子

void函数指针的二维数组c++

我正在尝试在 2 个计算机“玩家”之间构建一个高效的石头剪刀布模拟器。我在这里看到的一个建议是使用矩阵来存储可能的结果。我真的很喜欢这个想法,因为这意味着我不必有 9 个不同的 if() 语句来说明所有可能的值。每当比赛结束时,我都有函数来迭代每个玩家的获胜、失败和平局的数量。因此,我认为如果我可以构建一个函数指针的二维数组,那么 [0][0] 表示双方都抛出“Rock”并导致 Draw,抛出函数 addDraw( ) 每个玩家。我找到了一个在这里工作的一维函数指针数组的例子。

当我尝试编译时,我的代码抛出了几个错误。让我知道是否需要其他任何东西。

调用结果的函数:

void Player::result(vector<Player*> &vals, int x, int y)
{
    Player *p1 = vals[0];
    Player *p2 = vals[1];

    void(*results1[3][3]) =
    {
        { p1->addDraws, p1->addWins, p1->addLosses },
        { p1->addLosses, p1->addDraws, p1->addWins },
        { p1->addWins, p1->addLosses, p1->addDraws }
    };
}
Run Code Online (Sandbox Code Playgroud)

添加赢、输和平局的函数:

void Player::addWins()
{
    wins++;
}

void Player::addLosses()
{
    losses++;
}

void Player::addDraws()
{
    draws++;
}
Run Code Online (Sandbox Code Playgroud)

所有函数都在 Player.h 中初始化并在 Player.cpp 中声明(我认为这是正确的术语)。我收到的最常见的错误是“错误 C2440:‘初始化’:无法从‘void (__thiscall Player::*)(void)’转换为‘void *’

c++ arrays pointers

5
推荐指数
1
解决办法
1496
查看次数

Google Apps 脚本 UrlFetchApp 返回未经授权的错误 401

这是我正在使用的代码。

function doc_to_html(id)
{
  var url = "https://docs.google.com/feeds/download/documents/export/Export?id="+id+"&exportFormat=html";
var param = 
    {
      method      : "get",
      headers     : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
      muteHttpExceptions:true,
    };
 var html = UrlFetchApp.fetch(url,param).getContentText();
  Logger.log(html);
}
Run Code Online (Sandbox Code Playgroud)

它曾多次进行测试,但现在返回“未经授权的错误 401”。更准确地说,它正在返回:

<html>
<head>
<TITLE>Unauthorized</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1>
<H2>Error 401</H2>
</BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)

我查看了所有能找到的有关 UrlFetchApp 的文档,没有看到任何配额或限制。我检查了脚本范围,并且https://www.googleapis.com/auth/script.external_request已获得授权。

export google-docs urlfetch google-apps-script

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