小编yac*_*acc的帖子

如何在ZX Spectrum basic中模仿逻辑XOR?

有时在ZX Spectrum Basic中进行编码时,我需要评估由两个操作数和逻辑xor形成的逻辑表达式,如下所示:

IF (left operand) xor (right operand) THEN
Run Code Online (Sandbox Code Playgroud)

由于ZX Basic只知道NOT,OR和AND我不得不求助于某种奇特的计算,其中包括左/右操作数的多种用法.这很尴尬,因为它消耗时间和内存,如果你在8位机器上工作,这两者都很稀疏.我想知道是否有一个模仿xor运算符的巧妙技巧.

为了测试结果,我提供了一个小代码示例:

 5 DEF FN x(a,b)=(a ??? b) : REM the xor formula, change here
10 FOR a=-1 TO 1 : REM left operand
20 FOR b=-1 TO 1 : REM right operand
30 LET r=FN x(a,b) : REM compute xor
40 PRINT "a:";a;" b:";b;" => ";r
50 NEXT b
60 NEXT a
Run Code Online (Sandbox Code Playgroud)

你能帮我找一个高性能的解决方案吗?到目前为止,我尝试过,DEF FN x(a,b)=(a AND NOT b) OR (b AND NOT a)但它有点笨拙.

编辑:

如果你想测试你的想法,我建议使用BasinC …

basic zxspectrum xor retro-computing

13
推荐指数
3
解决办法
411
查看次数

如何从 Catch2 测试用例中访问自定义命令行选项?

我使用自定义主文件添加了我自己的命令行选项:

https://github.com/catchorg/Catch2/blob/master/docs/own-main.md#adding-your-own-command-line-options

  // ...
  auto cli 
    = session.cli() // Get Catch's composite command line parser
    | Opt( height, "height" ) // bind variable to a new option, with a hint string
        ["-g"]["--height"]    // the option names it will respond to
        ("how high?");        // description string for the help output

  // ...
}
Run Code Online (Sandbox Code Playgroud)

现在我想height在测试用例中使用命令行选项。什么是最好的方法来做到这一点?

c++ command-line catch2

6
推荐指数
0
解决办法
356
查看次数

避免角色因胶囊对撞机而跳跃

我的统一游戏有一个带有胶囊对撞机的角色。当角色撞到胶囊球形部分上的另一个对撞机时,角色被送入空中。如何避免这种情况?

这是一个解释问题的视频

我已经有了一些解决方案,但它并没有真正起作用:

  • 使用圆柱对撞机代替胶囊,但它不存在。我尝试用 meshcollider 制作一个,但结果不如 caspule collider,因为 meshcollider 不是完美的圆形。我也尝试用许多 rect collider 制作一个,但它产生了与 meshcollider 相同的问题。

  • 当角色在地面上时设置一个非常大的重力,但问题是我在游戏中有倾斜的平面,所以它也不起作用。

感谢您的帮助

c# collision-detection unity-game-engine

6
推荐指数
1
解决办法
1272
查看次数

代码块无法找到头文件

所以几个小时前我开始在codelite中学习c ++,但是我感到很沮丧,所以我只是得到了代码块并导入了项目.但现在每当我尝试编译它时返回:

致命错误:imports.h:没有这样的文件或目录

这是我在codeblocks中的项目层次结构:

IMG

这就是项目文件夹的样子:

IMG

我究竟做错了什么?

c++ codeblocks

5
推荐指数
2
解决办法
2万
查看次数

工具栏animateLayout更改奇怪的行为

我在代码中设置了animateLayoutChanges = true,以对片段中的选项进行动画处理。

当我打开PreferenceFragment时,我启用了向上导航图标,然后在我关闭它时将其禁用,但是它的行为很奇怪,在标题左侧(导航图标所在的位置)留有某种填充。

这是显示正在发生的事情的gif:

img

你们对为什么会发生有任何想法吗?我在互联网上搜索了很多东西,但是什么也没找到。

是否有任何解决方法以相同方式为这些项目设置动画?谢谢。

android

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

将句柄对象传递给 C++ 会导致引用泄漏?

我在调试一个简单的 for 循环时遇到了这个问题,其中迭代时间会随着时间的推移而增长。这个问题似乎源于这样一个事实,即将句柄对象传递给 C++ MEX 函数会延长句柄的生命周期,直到脚本结束。

这是重现该问题的最小示例。

首先,该类只是让我们跟踪对象何时被删除:

classdef Foo < handle
methods
  function this = Foo()
  end
  function delete(this)
    disp("DELETE FOO");
  end
end
end
Run Code Online (Sandbox Code Playgroud)

然后,C++-MEX 函数什么都不做:

classdef Foo < handle
methods
  function this = Foo()
  end
  function delete(this)
    disp("DELETE FOO");
  end
end
end
Run Code Online (Sandbox Code Playgroud)

编译这个(work_with_Foo.cpp):

>> mex work_with_Foo.cpp
Run Code Online (Sandbox Code Playgroud)

最后,测试脚本:

#include "mex.hpp"
#include "mexAdapter.hpp"
class MexFunction : public matlab::mex::Function
{
public:
  void operator()(matlab::mex::ArgumentList /*outputs*/, matlab::mex::ArgumentList /*inputs*/) override
  {
  }
};
Run Code Online (Sandbox Code Playgroud)

它提供了输出:

DELETE FOO
DELETE FOO
DELETE FOO
End of regular loop …
Run Code Online (Sandbox Code Playgroud)

c++ matlab mex

5
推荐指数
0
解决办法
123
查看次数

TI-Basic光线投射(TI-83 Plus)

我一直在关注这个帖子:https://www.omnimaga.org/ti-basic-language/raycasting-halp/

我尝试了什么.如何在TI-Basic中进行光线投射,是否可以绘制一个简单的墙并移动?我有一个TI-83 Plus.

3d ti-basic

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