iOS版2048算法类

iOS版2048算法类,第1张

概述iOS版2048算法

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

 // .h文件@class DataModel;@interface Algorithm : NSObject@property (nonatomic,assign) int addscore;         // 加分- (voID)caculatetop:(DataModel *)model;            // 上滑规则- (voID)caculateBottom:(DataModel *)model;         // 下滑规则- (voID)caculateleft:(DataModel *)model;           // 左滑规则- (voID)caculateRight:(DataModel *)model;          // 右滑规则- (BOol)randNewOne:(DataModel *)data;- (int)getAddscore;@end// .m文件@implementation Algorithm#pragma mark - 滑动规则- (voID)caculatetop:(DataModel *)model {    [self up_remove_blank:model];    [self up:model];}- (voID)caculateBottom:(DataModel *)model {    [self down_remove_blank:model];    [self down:model];}- (voID)caculateleft:(DataModel *)model {    [self left_remove_blank:model];    [self left:model];}- (voID)caculateRight:(DataModel *)model {    [self right_remove_blank:model];    [self right:model];}- (int)getAddscore {    int temp = _addscore;    _addscore = 0;    return temp;}#pragma mark - 新一个- (BOol)randNewOne:(DataModel *)model {    array data = [model getData];    int all = 0;    for (int i=0; i<model.matrix; i++) {        for (int j=0; j<model.matrix; j++) {            if (data[i][j] == 0) {                all = all + 1;            }        }    }    if (all == 0) {        return NO;    }    int index = arc4random() % all;    all = 0;    for (int i=0; i<model.matrix; i++) {        for (int j=0; j<model.matrix; j++) {            if (data[i][j] == 0) {                all = all + 1;                if (all == index+1) {                    data[i][j] = 2;                    return YES;                }            }        }    }    return NO;}#pragma mark - 滑动算法- (voID)up_remove_blank:(DataModel *)model {    array data = [model getData];    int i,j,k;    for(j=0;j < model.matrix;j++){        for(i=1;i < model.matrix;i++){            k=i;            while(k-1>=0&&data[k-1][j]==0){//上面的那个为空                //swap(data[k][j],data[k-1][j]);                int temp = data[k][j];                data[k][j] = data[k-1][j];                data[k-1][j] = temp;                k--;            }        }    }}- (voID)down_remove_blank:(DataModel *)model {    array data = [model getData];    int i,k;    for(j=0; j < model.matrix; j++){        for(i = model.matrix-2; i >= 0; i--){            k=i;            while(k+1<=model.matrix-1&&data[k+1][j]==0){//上面的那个为空                //swap(a[k][j],a[k][j]);                int temp = data[k][j];                data[k][j] = data[k+1][j];                data[k+1][j] = temp;                k++;            }        }    }}- (voID)left_remove_blank:(DataModel *)model {    array data = [model getData];    int i,k;    for(i=0;i < model.matrix;i++){        for(j=1;j<model.matrix;j++){            k=j;            while(k-1>=0&&data[i][k-1]==0){//上面的那个为空                //swap(a[i][k],a[i][k-1]);                int temp = data[i][k];                data[i][k] = data[i][k-1];                data[i][k-1] = temp;                k--;            }        }    }}- (voID)right_remove_blank:(DataModel *)model {    array data = [model getData];    int i,k;    for(i=0;i<model.matrix;i++){        for(j=model.matrix-2;j>=0;j--){            k=j;            while(k+1<=model.matrix-1&&data[i][k+1]==0){//上面的那个为空                //swap(a[i][k],a[i][k+1]);                int temp = data[i][k];                data[i][k] = data[i][k+1];                data[i][k+1] = temp;                k++;            }        }    }}- (voID)left:(DataModel *)model {    array data = [model getData];    int i,j;    for(i=0;i<model.matrix;i++){        for(j=0;j<model.matrix-1;j++){            if(data[i][j]==data[i][j+1]){                _addscore = _addscore + data[i][j];                data[i][j]+=data[i][j+1];                data[i][j+1]=0;                [self left_remove_blank:model];            }        }    }}- (voID)right:(DataModel *)model {    array data = [model getData];    int i,j;    for(i=0;i<model.matrix;i++){        for(j=model.matrix-1;j>=1;j--){            if(data[i][j]==data[i][j-1]){                _addscore = _addscore + data[i][j];                data[i][j]+=data[i][j-1];                data[i][j-1]=0;                [self right_remove_blank:model];            }        }    }}- (voID)up:(DataModel *)model {    array data = [model getData];    int i,j;    for(j=0;j<model.matrix;j++){//每一列        for(i=0;i<model.matrix-1;i++){            if(data[i][j]==data[i+1][j]){                _addscore = _addscore + data[i][j];                data[i][j]=data[i][j]+data[i+1][j];                data[i+1][j]=0;                //移除空格                [self up_remove_blank:model];            }        }    }}- (voID)down:(DataModel *)model {    array data = [model getData];    int i,j;    for(j=0;j<model.matrix;j++){//每一列        for(i=model.matrix-1;i>=1;i--){            if(data[i][j]==data[i-1][j]){                _addscore = _addscore + data[i][j];                data[i][j]=data[i][j]+data[i-1][j];                data[i-1][j]=0;                //移除空格                [self down_remove_blank:model];            }        }    }}@end

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的iOS版2048算法类全部内容,希望文章能够帮你解决iOS版2048算法类所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1105980.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存