我正在使用Cocos2d,这是一个用于创建iPhone游戏的框架.最近他们发布了Mac支持,我正在为Mac制作一个简单的游戏.
但是,我对如何检查Mac键盘上何时按下X键一无所知.
Objective-C的
我需要检查我的VB.net应用程序中是否按下了SHIFT或CTRL键,有什么想法吗?(得到一个布尔值)
如果我在类接口中声明一个变量,我可以在我的类的任何地方使用这样的变量.真棒.
如果我使用@property (retain) Something *myVar;我可以访问该变量self.myVar...但是,有什么区别?我应该使用一种方法还是另一种方法?
我有一个类似的字符串 "abcdefg..."
我想找到字母d所在的索引,所以我可以得到数字3.
我设法通过循环遍历字符串中的每个字母来做到这一点,但这听起来不太方便.还有另外一种方法吗?
我不完全确定这是否是正确的问题.嗯,我想这是一个编程问题.
我正在尝试用Java创建一个简单的PID控制器模拟.
简而言之,存在目标值和当前值.当前值由数字修改.您为PID控制器提供当前值,它将尝试返回一个数字,希望这个数字将使当前值接近目标值.加班,你使用PID控制器的次数越多,它就会"学习"(使用积分和导数),并最终会返回越来越准确的值.这对于通过控制车轮运动来维持船的平衡是有用的.
PID控制器使用的公式非常通用且非常简单 - 或者我认为.在下面的示例中,PID控制器返回的值只是添加到当前值.我认为它适用于更复杂的应用程序(涉及乘法或除法等).这是我的计划:
public class PID {
private static double Kp = 0.1;
private static double Kd = 0.01;
private static double Ki = 0.005;
private static double targetValue = 100.0;
private static double currentValue = 1.0;
private static double integral = 0.0;
private static double previousError = 0.0;
private static double dt = 0.5;
private static double max = 5;
private static double min = -5;
public static void main(String[] args) throws Exception { …Run Code Online (Sandbox Code Playgroud) 我有一组Card实例.
Card[] allCards;
Run Code Online (Sandbox Code Playgroud)
我应该在以下条件下获得这些卡的所有可能组合:
出于大学目的,我不应该使用任何能够更轻松地完成这项工作的花哨库.
我确实已经完成了它,但考虑到没有限制,我通常会做的算法不起作用.
这几乎是他们在这里要求的python:找到所有可能的组合
有任何想法吗?我不想要代码或任何东西 - 我只是迷失了算法/想法.
我的问题(更详细)
我可以通过制作两个循环(一个在另一个循环中)来制作对.我可以通过三个循环(一个在另一个在另一个内)来制作三元组.
但我不知道如何解决这个具体问题,因为:
我可以找到一些组合,但不是动态的.
开始学习汇编,我得到了一些在Linux上创建的Hello World汇编代码.我想让它适用于64位Mac OS X.
code.asm:
SECTION .data
hola: db "Hola!",10
tam: equ $-hola
SECTION .text
global main
main:
mov edx,tam
mov ecx,hola
mov ebx,1
mov eax,4
int 0x80
mov ebx,0
mov eax,1
int 0x80
Run Code Online (Sandbox Code Playgroud)
这就是我做的:
nasm -f macho32 -o object.o code.asm
gcc -m32 -o program object.o
Run Code Online (Sandbox Code Playgroud)
这告诉我:
体系结构i386的未定义符号:"_ main",引自:crt1.10.6.o中的start ld:未找到体系结构i386的符号
搜索此错误,我发现了这个问题:nasm和gcc:32位链接失败(64位Mac OS X)
一个答案说
您遇到的问题是您正在创建一个与Mac OS X对象格式不兼容的32位Linux(ELF)对象文件.尝试将'-f elf'切换为'-f macho32'.
但我肯定在用-f macho32.那么问题是什么呢?
struct sigaction newSignalAction;
memset(&newSignalAction, 0, sizeof(newSignalAction));
newSignalAction.sa_handler = &SignalHandler;
sigaction(SIGSEGV, &newSignalAction, NULL);
[TestFlight takeOff:@"etc etc etc"];
Run Code Online (Sandbox Code Playgroud)
然后
void SignalHandler(int sig) {
NSLog(@"Boom");
}
Run Code Online (Sandbox Code Playgroud)
我试图执行一个SIGSEGV信号:
int *p = NULL;
*p = 1;
Run Code Online (Sandbox Code Playgroud)
但是没有调用我的处理程序。相反,Xcode指出了这一行*p = 1。
我读过你不能用信号处理程序打印东西。也许这就是问题所在。有什么可怎么办呢?我听说您应该保存数据-所以我想我可以在Documents目录中创建文件。我也尝试这样做,但是文件也未创建。
在网站上有一个文件。PHP 脚本将其修改如下:
$contents = file_get_contents("MyFile");
// ** Modify $contents **
// Now rewrite:
$file = fopen("MyFile","w+");
fwrite($file, $contents);
fclose($file);
Run Code Online (Sandbox Code Playgroud)
修改非常简单。它获取文件的内容并添加几行。然后它会覆盖该文件。
我知道 PHP 具有将内容附加到文件而不是重新覆盖它的功能。但是,我想继续使用这种方法,因为我将来可能会更改修改算法(因此追加可能还不够)。
无论如何,我正在对此进行测试,发出了 100 个请求。每次调用脚本时,我都会在文件中添加一个新行:
第一次调用:
第一的!
第二次调用:
第一的!
第二!
第三次调用:
第一的!
第二!
第三!
很酷。但是之后:
第四次调用:
第四!
第五个电话:
第四!
第五!
如您所见,第一行、第二行和第三行完全消失了。
我已经确定问题不是内容字符串修改算法(我已经单独测试过)。读取或写入文件时出现问题。
我认为问题很可能是在读取文件内容时:如果$contents出于某种奇怪的原因为空,那么上面显示的行为是有道理的。
我不是 PHP 专家,但也许我几乎同时执行 100 次调用的事实导致了这个问题。如果有两个进程,一个正在写入文件,而另一个正在读取文件怎么办?
这个问题的推荐方法是什么?当多个进程可以写入/读取同一个文件时,我应该如何管理文件修改?
我的主服务器计算机上运行着H2服务器进程,允许进行TCP连接。
假设我要执行100个SQL查询:
SELECT * FROM TEST
Run Code Online (Sandbox Code Playgroud)
而且,出于我自己的目的,我想对每个线程进行一个查询。让我们使用Connection线程之间共享的一个和一个对象来完成此操作:
Connection对象。Connection调用SQL查询。上面的方法可以工作,但是会有点慢。当然,毕竟,如果有人正在使用Connection,则其他人必须等待它。
那么,让我们Connection为每个线程做一个:
Connection对象并调用SQL查询。快得多了。但是我觉得100个连接有点浪费。也许50个连接就可以了。我听说我可以用JdbcConnectionPool这种东西。
JdbcConnectionPool最多50个连线的。pool.getConnection()然后调用SQL查询。嗯 太慢了 如果有的话,它和第一种方法一样慢。也许出于好奇,我应该将最大连接数设置为100...
...而且仍然很慢。奇怪的。我的理解是,具有100个连接的池相当于为我的100个线程中的每个线程建立一个连接。
可能是什么问题?这是最后一个测试的代码:
import java.sql.Connection;
import java.sql.ResultSet;
import org.h2.jdbcx.JdbcConnectionPool;
public class App {
public static void main(String[] args) throws Exception {
Class.forName("org.h2.Driver");
JdbcConnectionPool pool = JdbcConnectionPool.create("url", "user", "password");
pool.setMaxConnections(100);
for (int i = 0; i < 100; ++i) {
Thread …Run Code Online (Sandbox Code Playgroud)