我正在写一个游戏,它是Gomoku的变种.基本上是一个巨大的板上的tic tac脚趾.
想知道是否有人知道一个好的人工智能策略.我目前的实现是非常愚蠢的,需要很长时间(O(n ^ 3),大约1-2秒才能移动):
-(void) moveAI {
//check if the enemy is trying to make a line horizontally, vertically, or diagonally
//O(n^3 * 3)
[self checkEnemies];
//check if we can make a line horizontally, vertically, or diagonally
//O(n^3 * 3)
[self checkIfWeCanMakeALine];
//otherwise just put the piece randomly
[self put randomly];
}
Run Code Online (Sandbox Code Playgroud)
编辑:谢谢大家的反馈!我会尝试你的答案,让你们知道我是否可以做出任何改进.
我有一个具有此层次结构的视图控制器:
查看控制器:

我想将垂直卷轴从我UIScrollView的兄弟转发到兄弟姐妹UITableView,这样当用户向上滚动时UIScrollView,它UITableView会向上滚动.最好的方法是什么?
我试过这些:
scrollViewDidScroll,因为滚动视图的contentOffset没有改变,所以不会调用它.UIScrollView和重写touchesMoved,我无法将触摸转发到表视图,因为我在此类中没有对它的引用.在我的一个XCTests课程中,我需要从资产目录中加载图像以测试图像处理逻辑.但是,似乎在测试目标中使用了UIImage(named: "imageName")返回nil.
我在我的资产目录中检查了测试目标成员资格,我还应该做些什么来启用从我的XCTest类中读取图像?
我有一个UIActivityViewController在我的iOS 6应用程序中,我正在推动更新,但我还没有使用iOS 7 SDK进行编译.
有没有办法在我UIActivityViewController的iOS7中禁用添加到阅读列表和AirDrop 而无需使用iOS 7 SDK重新编译?
ios ios6 uiactivityviewcontroller ios7 uiactivitytypeairdrop
我开始在视图控制器上编写Swift扩展.所以我现在有三个文件:
我的头文件,ViewController.h:
@interface MyViewController : UIViewController
@end
Run Code Online (Sandbox Code Playgroud)
我的Obj-C实现文件,ViewController.m:
@interface MyViewController () <UIScrollViewDelegate>
@property (strong, nonatomic) UIScrollView *scrollView;
@end
@implementation MyViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.scrollView = [[UIScrollView alloc] init];
[self customiseScrollView]; //This is Swift method called from Obj-C file
}
@end
Run Code Online (Sandbox Code Playgroud)
最后,ViewController.swift:
extension MyViewController {
func customiseScrollView() {
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,是否可以从我的Swift实现文件中访问我的Obj-C属性?每次我提到它,我都会收到一个错误:
Value of type 'MyViewController' has no member 'scrollView'
Run Code Online (Sandbox Code Playgroud)
奖励1:有人也可以澄清Swift组件是否能够看到.m是代表的内容.(澄清scrollView.delegate = self一下,在Swift中执行是一个编译错误,因为Swift文件没有意识到.m文件是UIScrollViewDelegate).
Bonus 2:Swift扩展文件可以调用从.m对应方声明的Obj-C方法吗?
在Facebook iOS SDK中,我可以要求这样的查询:
[_facebook requestWithGraphPath:@"me/feed" andDelegate:self];
Run Code Online (Sandbox Code Playgroud)
但是,例如,Facebook通常会使用URL来提供有限的JSON响应,以用于请求移至较早的日期.所以在JSON响应中,我将:
data = ( /*things here... status updates, photos, etc...*/
);
paging = {
next = "https://graph.facebook.com/me/feed?sdk=ios&sdk_version=2&access_token= <something>&until=2010-12-04";
previous = "https://graph.facebook.com/me/feed?sdk=ios&sdk_version=2&access_token=<something>&since=<something>";
};
Run Code Online (Sandbox Code Playgroud)
我想知道的是......我如何转到以前的URL?SDK是否提供了执行此操作的界面?
编辑:如果可能的话,我实际上想用Graph API回答,因为Facebook目前正在弃用REST API.
奖励:如果有人能解释Facebook返回的时间格式.我有2010-09-13T00%3A25%3A16%2B0000一个例子.
我试图在iPhone 4.0 SDK中请求这种URL(访问令牌略有修改,因为你真的不需要看到它):
https://graph.facebook.com/me?sdk=ios&sdk_version=2&access_token=123902817987|8cb9e8408d2685cef853cd80.9-747882379|UGu5NvcAHiXuGEGzkq&format=json&limit=40&until=1286619821
Run Code Online (Sandbox Code Playgroud)
但是我得到了这样的信息:
Failed with error: Error Domain=NSURLErrorDomain Code=-1000 "bad URL" UserInfo=0x9e657a0 {NSUnderlyingError=0x9e656a0 "bad URL", NSLocalizedDescription=bad URL}
Run Code Online (Sandbox Code Playgroud)
当我在Safari或Chrome中复制并粘贴时,它可以正常工作.我试着按照这里的建议进行更换|,但不起作用.%|
从终端询问它看起来像这样:
curl https://graph.facebook.com/me/statuses?sdk=ios&sdk_version=2&access_token=9999955817987|8ab9e8408d2685cef.3-747882379|UGuxWDuM&format=json&limit=40&until=1286619821
[1] 16190
[2] 16191
[3] 16194
[4] 16195
[5] 16196
[2] Done sdk_version=2
[4]- Done format=json
$ -bash: UGu5NvcAHiXuGEGzkq3KP8xWDuM: command not found
-bash: 8ab9e8408d2685cef853cd80.3-747882379: command not found
{"error":{"type":"OAuthException","message":"An active access token must be used to query information about the current user."}}
[1] Done curl https://graph.facebook.com/me/statuses?sdk=ios
[3]- Exit 127 access_token=9999955817987 | 8ab9e8408d2685cef.3-747882379 | …Run Code Online (Sandbox Code Playgroud) 如果我有一个Facebook应用程序,并且我的用户同意允许我的应用程序访问他们的信息,照片,朋友等,在他们登录时获取他们的信息是道德的,然后将其保存在内存中以便下次他转到我的应用程序,它可以加载更快?
如果是这样,用户何时注销?正确的做法是删除用户提供的所有缓存信息和照片吗?
Facebook有没有办法发现我们正在做这件事(保存他们的信息等)?
EIDT:要明确的是,Facebook的条款和协议在这个问题上并不十分明确(同意访问信息并不总是等于同意存储信息).在我将存储数据的地方,它将只在用户的磁盘中,而不是我自己的服务器.所以我无法保证数据被安全加密(如果有人窃取了手机,那么有人可能会获得数据)
是的,我的目的是为我的用户提供更好的应用体验,而不是其他任何东西.
编辑2:我被撕裂,一个非常高的投票回答说这没关系,因为我提供了更好的用户体验,但其他人说我正在破坏隐私.任何人都可以提供文件的链接吗?或者可以有更多人投票?我真的很高兴回应!
我有一个视图(UITableView在这种情况下,但这并不重要)UIViewController我想要在键盘弹出时调整高度.
在自动布局中执行此操作的最佳方法是什么?目前在视图中我有这些约束:
我认为最快的方法是删除高度和底部空间约束,并在keyboardDidAppear调用通知时调整代码中的实际视图大小,但有没有其他方法可以做到这一点?
编辑:我删除了高度限制,我的坏.
ios ×5
facebook ×2
objective-c ×2
uitableview ×2
algorithm ×1
autolayout ×1
gomoku ×1
ios4 ×1
ios6 ×1
ios7 ×1
iphone ×1
nsurlrequest ×1
swift ×1
uikit ×1
uilabel ×1
uiscrollview ×1
xcode ×1
xctest ×1