美文网首页
iOS 拼图游戏

iOS 拼图游戏

作者: ldclll | 来源:发表于2017-05-26 11:35 被阅读158次

    使用UICollectionView实现简单的拼图游戏,思路就是使用有图的cell与空白的cell进行交换

    初始化截图
    游戏胜利截图

    首先定义model类并实现相应的方法

    //初始化
    - (instancetype)initWithSerie:(NSInteger)serie;
    
    //一二维转换
    - (NSInteger)indexWithPoint:(CGPoint)point;
    - (CGPoint)pointWithIndex:(NSInteger)index;
    
    //设置胜利数组
    - (void)setWinArr;
    
    //设置游戏数组
    - (void)setPlayArr;
    
    //设置空白位置
    //- (void)removeNumber:(NSInteger)num;
    - (BOOL)isWin;
    
    //交换位置
    - (void)changeLocation:(CGPoint)cPoint :(CGPoint)wPoint;
    
    //返回基点
    - (CGPoint)upPoint;
    - (CGPoint)downPoint;
    - (CGPoint)leftPoint;
    - (CGPoint)rightPoint;
    
    //判断是否越界
    - (BOOL)isUpOut:(CGPoint)point;
    - (BOOL)isDownOut:(CGPoint)point;
    - (BOOL)isLeftOut:(CGPoint)point;
    - (BOOL)isRightOut:(CGPoint)point;
    
    //控制器
    - (void)up;
    - (void)down;
    - (void)left;
    - (void)right;
    - (void)Key;
    
    

    Controller代码

    
    - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
    {
        return [self.TextField.text integerValue]*[self.TextField.text integerValue];
    }
    
    - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
    {
        UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
        
        UIImageView *image = (UIImageView *)[cell viewWithTag:1];
        NSString *str = [NSString stringWithFormat:@"%@", _puz.playArr[indexPath.row]];
        image.image = [UIImage imageNamed:str];
        
        return cell;
    }
    
    - (IBAction)TextDidEndOnExit:(id)sender
    {
        self.puz = [[puzzle alloc] initWithSerie:[self.TextField.text integerValue]];
        
        [self.CollectionView reloadData];
    }
    
    - (IBAction)UpButton:(id)sender
    {
        [self.puz up];
        [self.CollectionView reloadData];
    }
    
    - (IBAction)DownButton:(id)sender
    {
        [self.puz down];
        if ([_puz isWin]) {
            alert(@"恭喜你通关了!", @"ok")
        }
        
        [self.CollectionView reloadData];
    }
    
    - (IBAction)LeftButton:(id)sender
    {
        [self.puz left];
        [self.CollectionView reloadData];
    }
    
    - (IBAction)RightButton:(id)sender
    {
        [self.puz right];
        if ([_puz isWin]) {
            alert(@"恭喜你通关了!", @"ok")
        }
    
        [self.CollectionView reloadData];
    }
    
    - (IBAction)KeyButton:(id)sender
    {
        [self.puz Key];
        [self.CollectionView reloadData];
        if ([_puz isWin]) {
            alert(@"恭喜你通关了!", @"ok")
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:iOS 拼图游戏

          本文链接:https://www.haomeiwen.com/subject/osgtfxtx.html