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。
