zoukankan      html  css  js  c++  java
  • test

    维生素A、钙质或铁元素
    指甲表面出现竖条纹,是缺乏维生素A的表现
    就是缺钙引起
    主要是缺乏搞密度蛋白质和钙

    #import "cocos2d.h"

     

    @interface HelloWorldLayer : CCLayer

    {

    CGPoint prePoint;

    NSInteger countCleared;

    NSMutableArray *arrayMap;

    NSInteger counter;

    }

     

    +(CCScene *) scene;

     

    @end

     

     

    @interface MapNode : NSObject

     

    @property (readwrite, nonatomic) NSInteger order;

    @property (readwrite, nonatomic) NSInteger imgid;

     

    @end

     

     

    =========================

     

    /

    /

    //  HelloWorldLayer.m

    //  demoCocos01

    //

    //  Created by huande on 12-8-30.

    //  Copyright __MyCompanyName__ 2012. All rights reserved.

    //

     

    #import "HelloWorldLayer.h"

    #import "AppDelegate.h"

    #import "SimpleAudioEngine.h"

    #import "IntroLayer.h"

     

    #define TAG_START_SPRITE100

    #define TAG_LABEL_CONNER501

    #define TAG_LABEL_NUMBER502

    #define OFFSET_X-40

    #define OFFSET_Y60

    #define SIZE_W40

    #define SIZE_H40

    #define TOTAL_X10

    #define TOTAL_Y10

    #define TOTAL_IMG16

    #define MAX_CLEARED24

     

    #pragma mark - HelloWorldLayer

     

    @implementation HelloWorldLayer

     

    + (CCScene *)scene

    {

    CCScene *scene = [CCScene node];

    HelloWorldLayer *layer = [HelloWorldLayernode];

    [scene addChild: layer];

    return scene;

    }

     

    - (id)init

    {

    self = [superinit];

    if(self) {

    [selfinitSound];

    [selfinitData];

    [selfinitView];

    }

    returnself;

    }

     

    - (void) dealloc

    {

    [arrayMaprelease];

    [superdealloc];

    }

     

    #pragma mark my own

     

    - (void)initSound

    {

    [[SimpleAudioEnginesharedEngine] setBackgroundMusicVolume:0.3f];

    [[SimpleAudioEnginesharedEngine] playBackgroundMusic:@"back1.mp3"loop:NO];

    [[CDAudioManagersharedManager] setBackgroundMusicCompletionListener:selfselector:@selector(soundFinish1)];

    }

     

    - (void)soundFinish1

    {

    [[SimpleAudioEnginesharedEngine] pauseBackgroundMusic];

    [[SimpleAudioEnginesharedEngine] playBackgroundMusic:@"back2.mp3"loop:NO];

    [[CDAudioManagersharedManager] setBackgroundMusicCompletionListener:selfselector:@selector(soundFinish2)];

    }

     

    - (void)soundFinish2

    {

    [[SimpleAudioEnginesharedEngine] pauseBackgroundMusic];

    [[SimpleAudioEnginesharedEngine] playBackgroundMusic:@"back3.mp3"loop:NO];

    [[CDAudioManagersharedManager] setBackgroundMusicCompletionListener:selfselector:@selector(soundFinish1)];

    }

     

    - (void)initData

    {

    prePoint = CGPointMake(-1, -1);

    countCleared = 0;

    counter = 0;

    NSMutableArray *array = [[NSMutableArrayalloc] init];

    srandom((unsignedint)time(nil));

    for (int i = 0; i < (TOTAL_X - 2) * (TOTAL_Y - 2); ++i) {

    MapNode *mapnode = [[MapNode alloc] init];

    mapnode.order = (int)(CCRANDOM_0_1() * NSIntegerMax) % (int)(CCRANDOM_0_1() * NSIntegerMax);

    mapnode.imgid = imgMap[i];

    [array addObject:mapnode];

    }

    NSArray *sortarray = [array sortedArrayUsingSelector:@selector(myCompare:)];;

    arrayMap = [[NSMutableArrayalloc] init];

     

    for (int x = 0; x < TOTAL_X; ++x) {

    for (int y = 0; y < TOTAL_Y; ++y) {

    if (x == 0 || x == (TOTAL_X - 1) || y == 0 || (y == TOTAL_Y - 1)) {

    MapNode *mapnode = [[MapNode alloc] init];

    mapnode.order = 0;

    mapnode.imgid = 0;

    [arrayMap addObject:mapnode];

    } else {

    int i = (y - 1) * (TOTAL_Y - 2) + x - 1;

    [arrayMap addObject:[sortarray objectAtIndex:i]];

    }

    }

    }

    }

     

    - (void)initView

    {

    self.isTouchEnabled = YES;

    CGSize size = [[CCDirectorsharedDirector] winSize];

    CCSprite *background;

    background = [CCSprite spriteWithFile:@"bg.png"];

    background.position = ccp(size.width/2, size.height/2);

    [self addChild: background];

    for (int y = 0; y < TOTAL_Y; ++y) {

    for (int x = 0; x < TOTAL_X; ++x) {

    NSInteger index = y * TOTAL_Y + x;

    if ([self imageFilename:index]) {

    CCSprite *sprite = [CCSprite spriteWithFile:[self imageFilename:index]];

                    sprite.scale=0.5;

    sprite.position = ccp(OFFSET_X + (SIZE_W / 2) + SIZE_W * x, OFFSET_Y + (SIZE_H / 2) + SIZE_H * y);

    [self addChild:sprite z:0 tag:(TAG_START_SPRITE + index)];

    }

    }

    }

     

    CCSprite *button;

    button = [CCSprite spriteWithFile:@"play.png"];

    button.position = ccp(size.width - 55, 25);

    [self addChild:button];

     

    CCLabelTTF *label = [CCLabelTTFlabelWithString:@"进度:0%"fontName:@"Arial"fontSize:20];

    label.position = ccp(50, 15);

    [selfaddChild:label z:0tag:TAG_LABEL_CONNER];

     

    CCLabelTTF *labelnum1 = [CCLabelTTFlabelWithString:@"1"fontName:@"Marker Felt"fontSize:64];

    labelnum1.positionccp( size.width /2 , size.height/2 );

    [self addChild: labelnum1];

     

    CCLabelTTF *labelnum2 = [CCLabelTTFlabelWithString:@"2"fontName:@"Marker Felt"fontSize:64];

    labelnum2.positionccp( size.width /2 , size.height/2 );

    labelnum2.visible = NO;

    [self addChild: labelnum2];

     

    CCLabelTTF *labelnum3 = [CCLabelTTFlabelWithString:@"3"fontName:@"Marker Felt"fontSize:64];

    labelnum3.positionccp( size.width /2 , size.height/2 );

    labelnum3.visible = NO;

    [self addChild: labelnum3];

     

    CCLabelTTF *labelnum4 = [CCLabelTTFlabelWithString:@"GO"fontName:@"Marker Felt"fontSize:64];

    labelnum4.positionccp( size.width /2 , size.height/2 );

    labelnum4.visible = NO;

    [self addChild: labelnum4];

     

    id ac  = [labelnum1 runAction:[CCShow action]];

    id ac0 = [labelnum1 runAction:[CCScaleByactionWithDuration:0.5scale:2]];

    id ac1 = [labelnum1 runAction:[CCHide action]];

    id ac2 = [labelnum2 runAction:[CCShow action]];

    id ac3 = [labelnum2 runAction:[CCScaleByactionWithDuration:0.5scale:2]];

    id ac4 = [labelnum2 runAction:[CCHide action]];

    id ac5 = [labelnum3 runAction:[CCShow action]];

    id ac6 = [labelnum3 runAction:[CCScaleByactionWithDuration:0.5scale:2]];

    id ac7 = [labelnum3 runAction:[CCHide action]];

    id ac8 = [labelnum4 runAction:[CCShow action]];

    id ac9 = [labelnum4 runAction:[CCScaleByactionWithDuration:0.5scale:2]];

    id ac10= [labelnum4 runAction:[CCHide action]];

    [labelnum1 runAction:[CCSequence actions:[CCDelayTime actionWithDuration:0.5], ac , ac0, ac1, nil]];

    [labelnum2 runAction:[CCSequence actions:[CCDelayTime actionWithDuration:1.0], ac2, ac3, ac4, nil]];

    [labelnum3 runAction:[CCSequence actions:[CCDelayTime actionWithDuration:1.5], ac5, ac6, ac7, nil]];

    [labelnum4 runAction:[CCSequence actions:[CCDelayTime actionWithDuration:2.0], ac8, ac9, ac10, nil]];

    }

     

    - (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

    {

    UITouch *touch = [touches anyObject];

     

    CGPoint ptouch = [touch locationInView:touch.view];

    if (ptouch.x > 250 && ptouch.y > 420) {

    [[SimpleAudioEnginesharedEngine] pauseBackgroundMusic];

    [self scheduleOnce:@selector(makeTransition:) delay:0];

    }

     

    CGPoint pointcurrent = [self pointOfView:[touch locationInView:touch.view]];

     

    if ([self isValiableNode:pointcurrent] == NO) {

    return;

    }

     

    if ([self isEmptyNode:pointcurrent]) {

    return;

    }

     

    [[SimpleAudioEnginesharedEngine] playEffect:@"choose.wav"];

     

    if ([self isSamePoints:pointcurrent other:prePoint]) {

    return;

    }

     

    CCSprite *spritecurrent = (CCSprite *)[self getChildByTag:(TAG_START_SPRITE + [self indexFromPoint:pointcurrent])];

    spritecurrent.scale = 0.6;

     

    if ([selfisValiableNode:prePoint]) {

    CCSprite *spritepre = (CCSprite *)[self getChildByTag:(TAG_START_SPRITE + [self indexFromPoint:prePoint])];

    if ([self canClearTwo:prePoint Current:pointcurrent]) {

    [[SimpleAudioEnginesharedEngine] playEffect:@"disappear1.wav"];

    [selfclearNode:prePoint];

    [self clearNode:pointcurrent];

    spritepre.visible = NO;

    spritecurrent.visible = NO;

    if (++countCleared >= MAX_CLEARED) {

    [[SimpleAudioEnginesharedEngine] pauseBackgroundMusic];

    [[SimpleAudioEnginesharedEngine] playEffect:@"win.mp3"];

    [self showWin];

    }

    CCLabelTTF *label = (CCLabelTTF *)[self getChildByTag:TAG_LABEL_CONNER];

    label.string = [NSString stringWithFormat:@"进度:%d%%", (int)(countCleared * 100 / MAX_CLEARED)];

    } else {

    spritepre.scale = 0.5;

    }

    }

     

    prePoint = pointcurrent;

    }

     

    #pragma mark util method

     

    - (void)showWin

    {

    CCLabelTTF *label = [CCLabelTTF labelWithString:@"恭喜过关!" fontName:@"Arial" fontSize:36];

    CGSize s = [[CCDirectorsharedDirector] winSize];

    label.position = ccp(s.width/2, s.height/2);

    [self addChild:label];

    [self scheduleOnce:@selector(makeTransition:) delay:2.0];

    }

     

    -(void) makeTransition:(ccTime)dt

    {

    [[CCDirectorsharedDirector] replaceScene:[CCTransitionFadetransitionWithDuration:1.0scene:[IntroLayerscene] withColor:ccWHITE]];

    }

     

    - (void)clearNode:(CGPoint)point

    {

    int index = [self indexFromPoint:point];

    MapNode *mapnode = [arrayMap objectAtIndex:index];

    mapnode.imgid = 0;

    }

     

    - (BOOL)isSamePoints:(CGPoint)p1 other:(CGPoint)p2

    {

    return (p1.x == p2.x && p1.y == p2.y);

    }

     

    - (BOOL)isValiableNode:(CGPoint)point

    {

    return point.x >= 0 && point.x < TOTAL_X && point.y >= 0 && point.y < TOTAL_Y;

    }

     

    - (BOOL)isEmptyNode:(CGPoint)point

    {

    int index = [self indexFromPoint:point];

    MapNode *mapnode = [arrayMap objectAtIndex:index];

    return (mapnode.imgid == 0);

    }

     

    - (BOOL)canClearTwo:(CGPoint)pointpre Current:(CGPoint)pointcurrent

    {

    BOOL bMatch = NO;

    int pre = [self indexFromPoint:pointpre];

    int current = [self indexFromPoint:pointcurrent];

    int p = [[arrayMap objectAtIndex:pre] imgid];

    int c = [[arrayMap objectAtIndex:current] imgid];

     

    if (p == c && [self match:pointcurrent other:pointpre]) {

    bMatch = YES;

    }

     

    return bMatch;

    }

     

    static int imgMap[64] = {

      1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 ,

      5 , 5 , 5 , 5 , 6 , 6 , 0 , 0 ,

      7 , 7 , 7 , 7 , 8 , 8 , 0 , 0 ,

      9 , 9 , 9 , 9 , 10, 10, 10, 10,

      11, 11, 11, 11, 12, 12, 12, 12,

      13, 13, 13, 13, 14, 14, 14, 14,

    15, 15, 16, 16, 0 , 0 , 0 , 0 ,

      0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,

    };

     

    - (NSString *)imageFilename:(NSInteger)index

    {

    int n = [[arrayMap objectAtIndex:index] imgid];

    if (n >= 1 && n <= TOTAL_IMG)

    return [NSStringstringWithFormat:@"%d.png", n];

    else

    returnnil;

    }

     

    - (CGPoint)pointOfView:(CGPoint)point

    {

    int x = -1;

    int y = -1;

    if (point.x > OFFSET_X && point.x < TOTAL_X * SIZE_W + OFFSET_X)

    x = (point.x - OFFSET_X) / SIZE_W;

    if (point.y > 480 - OFFSET_Y - TOTAL_Y * SIZE_H && point.y < 480 - OFFSET_Y)

    y = (480 - point.y - OFFSET_Y) / SIZE_H;

    returnCGPointMake(x, y);

    }

     

    - (NSInteger)indexFromPoint:(CGPoint)point

    {

    return point.y * TOTAL_Y + point.x;

    }

     

    #pragma mark link

     

    - (BOOL)match_direct:(CGPoint)a other:(CGPoint)b

    {

    if (!(a.x == b.x || a.y == b.y)) {

    returnNO;

    }

     

    int i;

    BOOL match_x = NO;

    if(a.x == b.x) {

    match_x = YES;

    if(a.y > b.y) {

    for(i = a.y - 1; i > b.y; --i) {

    CGPoint point = CGPointMake(a.x, i);

    if(![self isValiableNode:point] ||

    ![self isEmptyNode:point]) {

    match_x = NO;

    }

    }

    }

    if(b.y > a.y) {

    for(i = b.y - 1; i > a.y; --i) {

    CGPoint point = CGPointMake(a.x, i);

    if(![self isValiableNode:point] ||

    ![self isEmptyNode:point]) {

    match_x = NO;

    }

    }

    }

    }

     

    BOOL match_y = NO;

    if(a.y == b.y) {

    match_y = YES;

    if(a.x > b.x) {

    for(i = a.x - 1; i > b.x; --i) {

    CGPoint point = CGPointMake(i, a.y);

    if(![self isValiableNode:point] ||

    ![self isEmptyNode:point]) {

    match_y = NO;

    }

    }

    }

    if(b.x > a.x) {

    for(i = b.x - 1; i > a.x; --i) {

    CGPoint point = CGPointMake(i, a.y);

    if(![self isValiableNode:point] ||

    ![self isEmptyNode:point]) {

    match_y = NO;

    }

    }

    }

    }

     

    return match_x || match_y;

    }

     

    - (BOOL)match_one_corner:(CGPoint)a other:(CGPoint)b

    {

    CGPoint point = CGPointMake(b.x, a.y);

    if([self isValiableNode:point] &&

    [self isEmptyNode:point] &&

    [self match_direct:a other:point] &&

    [self match_direct:b other:point]) {

    returnYES;

    }

     

    point = CGPointMake(a.x, b.y);

    if([self isValiableNode:point] &&

    [self isEmptyNode:point] &&

    [self match_direct:a other:point] &&

    [self match_direct:b other:point]) {

    returnYES;

    }

     

    returnNO;

    }

     

    - (BOOL)match_two_corner:(CGPoint)a other:(CGPoint)b

    {

    for(int i = a.x - 1; i >= 0; --i) {

    CGPoint point = CGPointMake(i, a.y);

    if(![self isValiableNode:point] || ![self isEmptyNode:point]) {

    break;

    } else {

    if([selfmatch_one_corner:point other:b]) {

    returnYES;

    }

    }

    }

     

    for(int i = a.x + 1; i < TOTAL_X; ++i) {

    CGPoint point = CGPointMake(i, a.y);

    if(![self isValiableNode:point] || ![self isEmptyNode:point]) {

    break;

    } else {

    if([selfmatch_one_corner:point other:b]) {

    returnYES;

    }

    }

    }

     

    for(int i = a.y - 1; i >= 0; --i) {

    CGPoint point = CGPointMake(a.x ,i);

    if(![self isValiableNode:point] || ![self isEmptyNode:point]) {

    break;

    } else {

    if([selfmatch_one_corner:point other:b]) {

    returnYES;

    }

    }

    }

     

    for(int i = a.y + 1; i < TOTAL_Y; ++i) {

    CGPoint point = CGPointMake(a.x ,i);

    if(![self isValiableNode:point] || ![self isEmptyNode:point]) {

    break;

    } else {

    if([selfmatch_one_corner:point other:b]) {

    returnYES;

    }

    }

    }

     

    returnNO;

    }

     

    - (BOOL)match:(CGPoint)a other:(CGPoint)b

    {

    if([selfmatch_direct:a other:b]) {

    returnYES;

    }

     

    if([selfmatch_one_corner:a other:b]) {

    returnYES;

    }

     

    if([selfmatch_two_corner:a other:b]) {

    returnYES;

    }

     

    returnNO;

    }

     

    @end

     

    @implementation MapNode

     

    - (NSComparisonResult) myCompare:(MapNode *)other {

    if (self.order > other.order) {

    return1;

    } else if (self.order == other.order) {

    return0;

    } else {

    return -1;

    }

    }

     

    @end

  • 相关阅读:
    LeetCode 24. Swap Nodes in Pairs (两两交换链表中的节点)
    LeetCode 1041. Robot Bounded In Circle (困于环中的机器人)
    LeetCode 1037. Valid Boomerang (有效的回旋镖)
    LeetCode 1108. Defanging an IP Address (IP 地址无效化)
    LeetCode 704. Binary Search (二分查找)
    LeetCode 744. Find Smallest Letter Greater Than Target (寻找比目标字母大的最小字母)
    LeetCode 852. Peak Index in a Mountain Array (山脉数组的峰顶索引)
    LeetCode 817. Linked List Components (链表组件)
    LeetCode 1019. Next Greater Node In Linked List (链表中的下一个更大节点)
    29. Divide Two Integers
  • 原文地址:https://www.cnblogs.com/eebb/p/2851837.html
Copyright © 2011-2022 走看看