小编Enr*_*tyo的帖子

gomoku的AI策略(tic tac toe的变体)

我正在写一个游戏,它是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)

编辑:谢谢大家的反馈!我会尝试你的答案,让你们知道我是否可以做出任何改进.

algorithm artificial-intelligence gomoku

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

从UIScrollView转发垂直滚动到兄弟UITableView

我有一个具有此层次结构的视图控制器:

查看控制器:

  • UIScrollView(水平滚动)
  • UITableView(垂直滚动)

在此输入图像描述

我想将垂直卷轴从我UIScrollView的兄弟转发到兄弟姐妹UITableView,这样当用户向上滚动时UIScrollView,它UITableView会向上滚动.最好的方法是什么?

我试过这些:

  • 检测到垂直滚动scrollViewDidScroll,因为滚动视图的contentOffset没有改变,所以不会调用它.
  • 子类化UIScrollView和重写touchesMoved,我无法将触摸转发到表视图,因为我在此类中没有对它的引用.

uitableview uiscrollview uikit ios

13
推荐指数
1
解决办法
1227
查看次数

在测试目标中包含资产目录

在我的一个XCTests课程中,我需要从资产目录中加载图像以测试图像处理逻辑.但是,似乎在测试目标中使用了UIImage(named: "imageName")返回nil.

我在我的资产目录中检查了测试目标成员资格,我还应该做些什么来启用从我的XCTest类中读取图像?

xcode xctest asset-catalog

10
推荐指数
2
解决办法
1417
查看次数

从使用iOS 6 SDK构建的应用程序中排除AirDrop并添加到阅读列表

我有一个UIActivityViewController在我的iOS 6应用程序中,我正在推动更新,但我还没有使用iOS 7 SDK进行编译.

有没有办法在我UIActivityViewController的iOS7中禁用添加到阅读列表和AirDrop 而无需使用iOS 7 SDK重新编译?

ios ios6 uiactivityviewcontroller ios7 uiactivitytypeairdrop

9
推荐指数
1
解决办法
3046
查看次数

访问Swift扩展文件中的Obj-C属性

我开始在视图控制器上编写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方法吗?

objective-c swift swift-extensions

9
推荐指数
2
解决办法
4437
查看次数

如何使用iOS SDK转到Facebook JSON响应的下一页?

在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是否提供了执行此操作的界面?

编辑:如果可能的话,我实际上想用G​​raph API回答,因为Facebook目前正在弃用REST API.

奖励:如果有人能解释Facebook返回的时间格式.我有2010-09-13T00%3A25%3A16%2B0000一个例子.

facebook facebook-graph-api ios facebook-ios-sdk

8
推荐指数
2
解决办法
5091
查看次数

使用NSURL请求时网址错误

我试图在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)

iphone objective-c nsurlrequest ios4

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

Facebook数据收集道德问题

如果我有一个Facebook应用程序,并且我的用户同意允许我的应用程序访问他们的信息,照片,朋友等,在他们登录时获取他们的信息是道德的,然后将其保存在内存中以便下次他转到我的应用程序,它可以加载更快?

如果是这样,用户何时注销?正确的做法是删除用户提供的所有缓存信息和照片吗?

Facebook有没有办法发现我们正在做这件事(保存他们的信息等)?

EIDT:要明确的是,Facebook的条款和协议在这个问题上并不十分明确(同意访问信息并不总是等于同意存储信息).在我将存储数据的地方,它将只在用户的磁盘中,而不是我自己的服务器.所以我无法保证数据被安全加密(如果有人窃取了手机,那么有人可能会获得数据)

是的,我的目的是为我的用户提供更好的应用体验,而不是其他任何东西.

编辑2:我被撕裂,一个非常高的投票回答说这没关系,因为我提供了更好的用户体验,但其他人说我正在破坏隐私.任何人都可以提供文件的链接吗?或者可以有更多人投票?我真的很高兴回应!

facebook

7
推荐指数
1
解决办法
1110
查看次数

使用"自动布局"弹出键盘时,如何调整视图大小

我有一个视图(UITableView在这种情况下,但这并不重要)UIViewController我想要在键盘弹出时调整高度.

在自动布局中执行此操作的最佳方法是什么?目前在视图中我有这些约束:

  • 超级视图的顶层空间:0
  • 追踪空间到superview:0
  • 领先的超视空间:0
  • 底层空间到superview:0
  • 高度等于= 424

我认为最快的方法是删除高度和底部空间约束,并在keyboardDidAppear调用通知时调整代码中的实际视图大小,但有没有其他方法可以做到这一点?

编辑:我删除了高度限制,我的坏.

interface-builder uitableview ios autolayout

7
推荐指数
1
解决办法
6107
查看次数

如何从Storyboard/Xib设置UILabel的字母间距?

我知道有一些方法可以调整字母间距,如果我参考了UILabel,但有没有办法从Storyboard中做到这一点?

我没有看到这里的选项:

在此输入图像描述

nsattributedstring uilabel ios

7
推荐指数
1
解决办法
3391
查看次数