一码学程 OC Round #4

 目录A : 时间调整                                  B : xkchen要出差                              C : 飞行棋                             D : 难度计算一片开门红。。。好吧来讲讲题A : 时间调整戳这里时间限制: 1000 MS 内存限制: 131072 KB...
摘要由CSDN通过智能技术生成

 

目录

A : 时间调整                                  B : xkchen要出差                              C : 飞行棋                             D : 难度计算

一片开门红。。。

好吧来讲讲题

A : 时间调整

戳这里

时间限制: 1000 MS 内存限制: 131072 KB 提交总数: 19 AC总数: 3

问题描述

公司最近准备购置16个时钟挂在大厅里,每个时钟表示一个国家的时间,是不是觉得时钟买的有点多??哈哈,没错,购置这么多就是为了让这个题目有难度!!!时钟刚购回来时,所有的时针都指向12点、3点、6点或9点,四种情况.现在要吧所有时钟的时间都指向12点。但是由于时钟一购回来就挂墙壁上了,所有只能通过控制10个开关来调整时钟的时针指向。没按一次开关,该开关控制的时钟就会顺时针转动3个小时。(12点->3点、3点->6点、6点->9点、9->12点),每个开关控制的时钟如下所示。时钟从0开始编号 第1个开关:0,1,2 第2个开关:3,7,9,11 第3个开关:4,10,14,15 第4个开关:0,4,5,6,7 第5个开关:6,7,8,10,12 第6个开关:0,2,14,15 第7个开关:3,1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是一个使用 Objective-C 编写的手势解锁密码的示例代码: 首先,在你的项目中创建一个名为 "GestureLockView" 的 UIView 子类。这个类将用于绘制手势解锁的视图。 GestureLockView.h: ```objective-c #import <UIKit/UIKit.h> @protocol GestureLockViewDelegate <NSObject> - (void)gestureLockView:(UIView *)lockView didFinishWithPath:(NSString *)path; @end @interface GestureLockView : UIView @property (nonatomic, weak) id<GestureLockViewDelegate> delegate; @end ``` GestureLockView.m: ```objective-c #import "GestureLockView.h" @interface GestureLockView() @property (nonatomic, strong) NSMutableArray *selectedButtons; @end @implementation GestureLockView - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { self.backgroundColor = [UIColor clearColor]; self.selectedButtons = [NSMutableArray array]; } return self; } - (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); for (int i = 0; i < 9; i++) { CGFloat x = (i % 3) * 100 + 25; CGFloat y = (i / 3) * 100 + 25; CGRect frame = CGRectMake(x, y, 50, 50); UIButton *button = [[UIButton alloc] initWithFrame:frame]; button.tag = i + 1; button.layer.cornerRadius = 25.0; button.layer.borderWidth = 1.0; button.layer.borderColor = [UIColor blackColor].CGColor; [button setBackgroundImage:[self imageWithColor:[UIColor blueColor]] forState:UIControlStateSelected]; [button setBackgroundImage:[self imageWithColor:[UIColor whiteColor]] forState:UIControlStateNormal]; [button addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:button]; } if (self.selectedButtons.count > 0) { UIBezierPath *path = [UIBezierPath bezierPath]; for (int i = 0; i < self.selectedButtons.count; i++) { UIButton *button = self.selectedButtons[i]; CGPoint point = button.center; if (i == 0) { [path moveToPoint:point]; } else { [path addLineToPoint:point]; } } [path addLineToPoint:self.currentPoint]; [[UIColor blueColor] set]; path.lineWidth = 5.0; CGContextAddPath(context, path.CGPath); CGContextStrokePath(context); } } - (void)buttonTapped:(UIButton *)button { button.selected = YES; [self.selectedButtons addObject:button]; [self setNeedsDisplay]; } - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { [self handleTouches:touches]; } - (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { [self handleTouches:touches]; } - (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { NSMutableString *path = [NSMutableString string]; for (UIButton *button in self.selectedButtons) { [path appendFormat:@"%ld", button.tag]; } [self.delegate gestureLockView:self didFinishWithPath:path]; [self reset]; } - (void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { [self reset]; } - (void)handleTouches:(NSSet<UITouch *> *)touches { UITouch *touch = [touches anyObject]; CGPoint point = [touch locationInView:self]; for (UIButton *button in self.subviews) { if (CGRectContainsPoint(button.frame, point)) { if (![self.selectedButtons containsObject:button]) { button.selected = YES; [self.selectedButtons addObject:button]; } break; } } self.currentPoint = point; [self setNeedsDisplay]; } - (void)reset { for (UIButton *button in self.selectedButtons) { button.selected = NO; } [self.selectedButtons removeAllObjects]; [self setNeedsDisplay]; } - (UIImage *)imageWithColor:(UIColor *)color { CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f); UIGraphicsBeginImageContext(rect.size); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetFillColorWithColor(context, [color CGColor]); CGContextFillRect(context, rect); UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return image; } @end ``` 在你的视图控制器中,你可以添加一个 GestureLockView 实例,并设置它的 delegate。当手势解锁完成时,GestureLockView 将调用代理方法 gestureLockView:didFinishWithPath:,你可以在这个方法中处理解锁的逻辑。 ViewController.h: ```objective-c #import <UIKit/UIKit.h> #import "GestureLockView.h" @interface ViewController : UIViewController <GestureLockViewDelegate> @end ``` ViewController.m: ```objective-c #import "ViewController.h" @interface ViewController () @property (nonatomic, strong) GestureLockView *lockView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; self.lockView = [[GestureLockView alloc] initWithFrame:CGRectMake(0, 0, 300, 400)]; self.lockView.center = self.view.center; self.lockView.delegate = self; [self.view addSubview:self.lockView]; } - (void)gestureLockView:(UIView *)lockView didFinishWithPath:(NSString *)path { NSLog(@"Path: %@", path); if ([path isEqualToString:@"123"]) { NSLog(@"Unlock success!"); } else { NSLog(@"Unlock failed!"); } } @end ``` 这里的解锁密码是 "123"。你可以根据需要修改这个密码。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值