基本上它是我正在研究的pacman克隆游戏.我有一个Enemy类,并且创建了这个类的4个实例,它们代表了游戏中的4个幽灵.
所有幽灵都在屏幕的随机区域启动,然后他们必须朝着pacman角色前进.当玩家控制pacman,移动它时,他们应该跟随它并采取最接近他的方式.
没有迷宫/障碍物(尚未)所以整个地图(400x400像素)都是开放的.
对于播放器和每个Ghost,我可以检索X,Y,图像宽度和高度属性.此外,我已经有了一个碰撞检测算法,所以不要担心,只是鬼魂找到他们的方式pacman.
!伪代码意味着什么?我知道!代表阶乘,但我无法翻译它.
例如:
得到操作
if (operation!= ’B’ OR operation != ’D’ OR operation!= ’W’) then
print "Invalid Operation"
Run Code Online (Sandbox Code Playgroud)
这是什么意思?请帮助我的中期是几个小时:S
在此先感谢您的帮助 :)
有人可以向我展示一个合并链式哈希表的删除算法示例吗?
我的插入算法是这样的:
Insert (key)
int p = hash(key)
if d[p] = NIL then
d[p] = key
next[p] = NIL
else
while next[p] != NIL
p = next[p]
endwhile
td[firstEmpty] = key
next[p] = firstEmpty
next[firstEmpty] = NIL
endif
UpdateFirstEmpty(); //sets firstEmpty to first empty slot with lowest index
endInsert
Run Code Online (Sandbox Code Playgroud)
假设表中的槽数为 13。散列函数返回Key%13。
Keys | 5 | 18 | 16 | 15 | 13 | 31 | 26 |
Hash(key)| 5 | 5 | 3 | 2 | 0 | …Run Code Online (Sandbox Code Playgroud) 我不是来自cs背景,我试图理解什么是用于什么.在伪代码中,我看到了很多这样的:
for i <--- 1 to n-1 do
j <--- find-Min(A,i,n)
A[j] <-> A[i]
end for
Run Code Online (Sandbox Code Playgroud)
什么是<---和<->用来指?
如何使用BFS或DFS算法设计算法以确定非连通图的连通分量,该算法必须能够表示每个连通分量的顶点集.
这是我的方法:
1)将所有顶点初始化为未访问.
2)从任意顶点开始对图进行DFS遍历v.如果DFS遍历不访问所有顶点,则返回false.
3)反转所有弧(或找到图的转置或反转)
4)在反转图中将所有顶点标记为未访问.
5)从相同的顶点v开始执行反向图的DFS遍历(与步骤2相同).如果DFS遍历不访问所有顶点,则返回false.否则返回true.
这个想法是,如果每个节点都可以从顶点v到达,并且每个节点都可以到达v,那么图形就是强连接的.在步骤2中,我们检查是否可以从v到达所有顶点.在步骤4中,我们检查所有顶点是否都可以到达v(在反向图中,如果所有顶点都可以从v到达,那么所有顶点都可以到达原始图中的v).
知道如何改进这个解决方案吗?
我在找到兑换货币问题的良好解决方案时遇到了问题.我花了一整天的时间考虑所有案例的优雅和快速解决方案.
声明:
我们有一些汇率如...
这个比率不是真实的,可能每天都会改变一次.利率的数量可能与世界货币一样大(约150).
我们被要求将任何货币的金额转换为另一种货币,我们应该给出答案(如果可以的话)给出兑换货币汇率.
最好的情况是如果您直接交换(显示在列表中),在更糟糕的情况下,您应该以中间交换率跳转很多次.
注意:从EUR到USD,您可以假设uSD到EUR是反向的.
我希望问题很清楚.
有任何想法吗??
给定一组2d点(笛卡尔形式),我需要找到最小面积椭圆,使得集合中的每个点都位于椭圆上或内部.
我在这个网站上找到了伪代码形式的解决方案,但是我在C++中实现解决方案的尝试却没有成功.
下图以图形方式说明了我的问题的解决方案是什么样的:
在我的尝试中,我使用了特征库来进行矩阵上的各种操作.
//The tolerance for error in fitting the ellipse
double tolerance = 0.2;
int n = 10; // number of points
int d = 2; // dimension
MatrixXd p = MatrixXd::Random(d,n); //Fill matrix with random points
MatrixXd q = p;
q.conservativeResize(p.rows() + 1, p.cols());
for(size_t i = 0; i < q.cols(); i++)
{
q(q.rows() - 1, i) = 1;
}
int count = 1;
double err = 1;
const double init_u …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用换位表实现 alpha beta 剪枝,我在维基百科中找到了该算法的伪代码:https: //en.wikipedia.org/wiki/Negamax#cite_note-Breuker-1 \n但是我相信这psudocode 是错误的,我认为 alphaOrig 是无用的,而不是:
\n\nif bestValue \xe2\x89\xa4 alphaOrig\n ttEntry.Flag := UPPERBOUND\nRun Code Online (Sandbox Code Playgroud)\n\n它应该是:
\n\nif bestValue \xe2\x89\xa4 \xce\xb1\n ttEntry.Flag := UPPERBOUND\nRun Code Online (Sandbox Code Playgroud)\n\n谁能确认我是否正确或向我解释为什么我错了,谢谢!
\n\n这里是伪代码:
\n\nfunction negamax(node, depth, \xce\xb1, \xce\xb2, color)\n\nalphaOrig := \xce\xb1\n\n// Transposition Table Lookup; node is the lookup key for ttEntry\nttEntry := TranspositionTableLookup( node )\nif ttEntry is valid and ttEntry.depth \xe2\x89\xa5 depth\n if ttEntry.Flag = EXACT\n return ttEntry.Value\n else if ttEntry.Flag = LOWERBOUND\n \xce\xb1 := max( \xce\xb1, ttEntry.Value)\n else if ttEntry.Flag …Run Code Online (Sandbox Code Playgroud) 这个问题更通用,而不是针对特定语言,因此我将解释我的问题以及我在伪代码中尝试过的内容。
我正在尝试从 JWK 集中生成 PEM 公钥。JWK 包括“e”(指数)和“n”(模)变量。我的问题是,在不使用任何库和 OpenSSL 命令行工具的情况下将此 JWK 转换为 PEM 的确切步骤是什么。
这是JWK供参考:
{
"kty": "RSA",
"alg": "RS512",
"kid": "26887d3ee3293c526c0e6dd05f122df53aa3f13d7dad06d25e266fa6f51db79fb52422aaf79f121476237e98dcd6640350fee47fec70e783544ec9a36e4605bc",
"use": "sig",
"n": "14m79mVwIE0JxQdKrgXVf7dVcBS90U0TvG7Yf7dG4NJocz1PNUrKrzGhe_FryOe0JahL_sjA2_rKw7NBCpuVx_zSPFRw6kqjewGicjXGus5Fmlf3zDuqwV4BWIFHyQexMPOly0agFfcM0M0MgBULXjINgBs9MwnRv7JVfRoGqXHsNM45djFDd3o4liu4LPlge_DquZUFLNu-BYAyAlWkz0H2TepZhGrN9VEPmxzQkNzXc1R4MpZvbxrRRgaAA2z094ik3hk86JhfyFq-LDcueZhtshmrYZ95LWgMlQ7PixkeK1HkeEYMt20lmNzR8B8KabimYmibxA4Ay9gpRwfp-Q",
"e": "AQAB"
}
Run Code Online (Sandbox Code Playgroud)
我的大部分研究源自node-jwk-to-pem库(可以在这里找到: https: //github.com/Brightspace/node-jwk-to-pem)和一个使用JOSE库的StackOverflow问题在 PHP 中(可以在这里找到:How to conversion a public key from a JWK into PEM for OpenSSL?)
根据我通过阅读上述库(加上一些其他文章和问题,但没有完全提到逐步过程)所发现的,我发现第一步是将模数和指数转换为整数(特别是 BigInt)。这通常会导致以下结果:
n = 27209154847141595039206198313134388207882403216639061643382959557246344691110642716248339592972939239825436848454712213431917464875221502188500634554426063986720722251339335488215426908010590565758292169712942346285217861588132983738839891250753593240057639347814778952277719613395670962156961452389927728643840215833830614315091417876959205843957512422401240879135352731575182574836052718961865690645602829768565458494497550672252951063585023601307115444743487394113997186698238507983094748342588645472362960665610355698438390751920697759620235642103374737421940385132232531739910444003185620313592808726865629407737
e = 65537
Run Code Online (Sandbox Code Playgroud)
使用此信息,我将如何从指数和模数生成 PEM 公钥?任何伪代码或建议都将是令人难以置信的!
pseudocode ×10
algorithm ×4
java ×2
android ×1
c++ ×1
cryptography ×1
currency ×1
eigen ×1
hash ×1
javascript ×1
jwk ×1
negamax ×1
operators ×1
path-finding ×1
pem ×1
rsa ×1