gpt4 book ai didi

ios - 自定义卡片组应用程序的数据和类设计

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:52:29 26 4
gpt4 key购买 nike

我正在为自定义塔罗牌开发一个应用程序,它应该能够洗牌、选择一张牌并给出牌的描述。

我的主要问题是:

  1. 在 Card 类中使用什么作为数据持有者。一共有36张牌。每个都有不同的 png/文本用于 frontImage/description,但每个都有相同的背面图像(就像玩牌一样)。我假设这将是某种数组,但我不知道如何声明两个图像和文本(正面/背面/描述)并将其链接到单个索引位置,或者如果我需要 3 个单独的数组,那么如何我将它们相互链接以便它们都能获得正确的数据?

  2. 牌组类:我假设将是一个空数组,它在洗牌后从卡片类中获得对象?我有一个很好的洗牌方法,我一直在使用 NSLog 在控制台中尝试,但基本上需要在任何卡片类上实现它?甲板将显示在“FlowCover”(http://chaosinmotion.com/flowcover.html)中。这是有效的,我已经整理出“didselect”方法来更改 View 但是-

  3. 选择:我不确定哪个对象将保存并将所选数据从面板传递到所选 View 。我假设它必须与卡片类是同一个对象?

最佳答案

  1. 将三个“事物”链接到单个索引位置的典型方法是将事物放入单个类中,然后将该类的对象放在索引位置。
  2. deck 可以是一个简单的 NSMutableArray,它是 objective-c 的可编辑对象容器
  3. 选择可以是第二个 NSMutableArray,或者您可以将选定的属性添加到每张卡片。两者都是可行的选择,但您的算法会因情况而异。

所以有一个包含静态背面图像的 CardClass(即背面图像存在于您从它实例化的每个对象中)。将属性添加到正面图像和描述的类中。然后创建您的列表作为这些对象的集合。

//Card.h
@interface Card : NSObject

{
UIImage * back;
UIImage * front;
NSString * description;
}
@property (readonly) UIImage * back;
@property (readonly) UIImage * front;
@property (readonly) NSString * description;
- (id) initWithFront:(UIImage *)setFront Description:(NSString*)setDescription;
@end

//Card.m
#import "Card.h"

static UIImage * backimage = nil;

@implementation Card
@synthesize back;
@synthesize front;
@synthesize description;

+(void) initialize
{
if (!backimage){
backimage = [[UIImage alloc]initWithContentsOfFile:@"imagefile.png"]; //though imagefile.png will be replaced with a reference to a plist.info string
}
}

- (id) initWithFront:(UIImage *)setFront Description:(NSString*)setDescription{
if (self = [super init]){
front=setFront;
description= setDescription;
back = backimage;
}
return self;
}
@end

//... elsewhere, perhaps your main viewDidLoad method
NSMutableArray *deck = [NSMutableArray initWithCapacity:36];
Card * card1 = [[CardClass alloc] initWithFront:@"card1.png" Description:@"card 1"];
[deck addObject:card1];
... //etc to create the remaining cards in the whole deck

扩展您的 NSMutableClass 使其具有随机播放例程。参见 What's the Best Way to Shuffle an NSMutableArray?

关于ios - 自定义卡片组应用程序的数据和类设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10016097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com