Objective-C怎样来实现2048算法类
来源:爱站网时间:2020-09-10编辑:网友分享
爱站技术频道小编今天给大家详细介绍下关于Objective-C怎样来实现2048算法类的内容,刚兴趣的小伙伴可以参考下哦,非常实用。
爱站技术频道小编今天给大家详细介绍下关于Objective-C怎样来实现2048算法类的内容,刚兴趣的小伙伴可以参考下哦,非常实用。
参数model有一个二维数组data,及阶数matrix
// .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=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,j,k; for(j=0; j = 0; i--){ k=i; 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,j,k; for(i=0;i =0;j--){ k=j; while(k+1=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 =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
通过本文学习了关于Objective-C怎样来实现2048算法类的内容后,大家是不是对Objective-C有了不一样的了解,更多资讯尽在js.aizhan.com。