jam*_*mil 8 iphone algorithm uibutton uilabel ios

正如我的屏幕截图显示我正在进行单词匹配游戏.在这个游戏中,我将我的单词分配给不同位置的特定序列中的不同UIButton(我的红色箭头显示此序列)和其余的UIButtons我指定一个随机字符( AZ).当我点击任何UIButtons时,它的标题将分配给UILabel,它位于当前部分的Fornt:我将这个UILabel文本放在UILabels文本下面,该文本不是计时器.当它与我的任何UILabel匹配时它的意志被删除.我已经实现了所有这个过程.
但我的问题是黑线表示的问题.如果玩家发现第一个单词是"DOG".他点击顺序中的两个UIButtons,但不按顺序中的第三个.(如黑线所示).这里我想要当玩家按下任何不在序列中的UIButtons然后删除之前的文本(这是" UILabel的DO",现在UILabel的文本只是"G".这是我获取UIButtons标题并将其分配给UILabel的代码.
- (void)aMethod:(id)sender
{
UIButton *button = (UIButton *)sender;
NSString *get = (NSString *)[[button titleLabel] text];
NSString *origText = mainlabel.text;
mainlabel.text = [origText stringByAppendingString:get];
if ([mainlabel.text length ]== 3)
{
if([mainlabel.text isEqualToString: a]){
lbl.text=@"Right";
[btn1 removeFromSuperview];
score=score+10;
lblscore.text=[NSString stringWithFormat:@"%d",score];
words=words-1;
lblwords.text=[NSString stringWithFormat:@"%d",words];
mainlabel.text=@"";
a=@"tbbb";
}
else if([mainlabel.text isEqualToString: c]){
lbl.text=@"Right";
[btn2 removeFromSuperview];
score=score+10;
lblscore.text=[NSString stringWithFormat:@"%d",score];
words=words-1;
lblwords.text=[NSString stringWithFormat:@"%d",words];
mainlabel.text=@"";
c=@"yyyy";
}
else
if([mainlabel.text isEqualToString: d]){
lbl.text=@"Right";
[btn3 removeFromSuperview];
score=score+10;
lblscore.text=[NSString stringWithFormat:@"%d",score];
words=words-1;
lblwords.text=[NSString stringWithFormat:@"%d",words];
mainlabel.text=@"";
d=@"yyyy";
}
else {
lbl.text=@"Wrong";
mainlabel.text=@"";
}
}}
Run Code Online (Sandbox Code Playgroud)
Thanx提前
从左到右为每个按钮分配标签。所以你将会有,
GButton.tag = 0; TButton.tag = 1; DButton.tag = 2; 。。。VButton.tag = 9; 。。。EButton.tag = 18; 。。。CButton.tag = 26;
现在跟踪先前按下的按钮和当前按下的按钮。当您的按钮委托点击时调用以下函数:
将以下代码写入您的 .h 文件
#define SEQ_TYPE_ANY 0
#define SEQ_TYPE_RIGHT 1
#define SEQ_TYPE_LEFT 2
#define SEQ_TYPE_TOP 3
#define SEQ_TYPE_BOTTOM 4
#define SEQ_TYPE_RIGHT_DIAGONAL_DOWN 5
#define SEQ_TYPE_RIGHT_DIAGONAL_UP 6
#define SEQ_TYPE_LEFT_DIAGONAL_DOWN 7
#define SEQ_TYPE_LEFT_DIAGONAL_UP 8
#define NO_OF_BUTTONS_IN_ROW 9
//Add below variables into your class
int curentSequence;
UILabel *resultLabel;
UIButton *previousButton;
//Declare property for previousButton
@property(nonatomic, retain) UIButton *previousButton;
//Write below code to .m file
@synthesize previousButton;
-(BOOL) isAdjacent:(UIButton *)currentButton
{
if(previousButton == nil)
{
resultLabel.text = currentButton.titleLabel.text;
curentSequence = SEQ_TYPE_ANY;
return TRUE;
}
if((curentSequence == SEQ_TYPE_ANY || curentSequence == SEQ_TYPE_RIGHT) &&
(previousButton.tag + 1 == currentButton.tag))
{
resultLabel.text = [resultLabel.text stringByAppendingString:currentButton.titleLabel.text];
curentSequence = SEQ_TYPE_ANY;
return TRUE;
}
else if((curentSequence == SEQ_TYPE_ANY || curentSequence == SEQ_TYPE_LEFT) &&
(previousButton.tag - 1 == currentButton.tag))
{
resultLabel.text = [resultLabel.text stringByAppendingString:currentButton.titleLabel.text];
curentSequence = SEQ_TYPE_LEFT;
return TRUE;
}
else if((curentSequence == SEQ_TYPE_ANY || curentSequence == SEQ_TYPE_TOP) &&
(previousButton.tag - NO_OF_BUTTONS_IN_ROW == currentButton.tag))
{
resultLabel.text = [resultLabel.text stringByAppendingString:currentButton.titleLabel.text];
curentSequence = SEQ_TYPE_TOP;
return TRUE;
}
else if((curentSequence == SEQ_TYPE_ANY || curentSequence == SEQ_TYPE_BOTTOM) &&
(previousButton.tag + NO_OF_BUTTONS_IN_ROW == currentButton.tag))
{
resultLabel.text = [resultLabel.text stringByAppendingString:currentButton.titleLabel.text];
curentSequence = SEQ_TYPE_BOTTOM;
return TRUE;
}
else if((curentSequence == SEQ_TYPE_ANY || curentSequence == SEQ_TYPE_RIGHT_DIAGONAL_DOWN) &&
(previousButton.tag + NO_OF_BUTTONS_IN_ROW + 1 == currentButton.tag))
{
resultLabel.text = [resultLabel.text stringByAppendingString:currentButton.titleLabel.text];
curentSequence = SEQ_TYPE_RIGHT_DIAGONAL_DOWN;
return TRUE;
}
else if((curentSequence == SEQ_TYPE_ANY || curentSequence == SEQ_TYPE_RIGHT_DIAGONAL_UP) &&
(previousButton.tag - NO_OF_BUTTONS_IN_ROW + 1 == currentButton.tag))
{
resultLabel.text = [resultLabel.text stringByAppendingString:currentButton.titleLabel.text];
curentSequence = SEQ_TYPE_RIGHT_DIAGONAL_UP;
return TRUE;
}
else if((curentSequence == SEQ_TYPE_ANY || curentSequence == SEQ_TYPE_LEFT_DIAGONAL_UP) &&
(previousButton.tag - NO_OF_BUTTONS_IN_ROW - 1 == currentButton.tag))
{
resultLabel.text = [resultLabel.text stringByAppendingString:currentButton.titleLabel.text];
curentSequence = SEQ_TYPE_LEFT_DIAGONAL_UP;
return TRUE;
}
else if((curentSequence == SEQ_TYPE_ANY || curentSequence == SEQ_TYPE_LEFT_DIAGONAL_DOWN) &&
(previousButton.tag + NO_OF_BUTTONS_IN_ROW - 1 == currentButton.tag))
{
resultLabel.text = [resultLabel.text stringByAppendingString:currentButton.titleLabel.text];
curentSequence = SEQ_TYPE_LEFT_DIAGONAL_DOWN;
return TRUE;
}
else
{
resultLabel.text = @"";
curentSequence = SEQ_TYPE_ANY;
return FALSE;
}
}
// Event handler for button event
- (void)aMethod:(id)sender
{
UIButton *currentButton = (UIButton *)sender;
BOOL result = [self isAdjacent:currentButton];
if(result == FALSE)
{
self.previousButton = nil;
resultLabel.text = @"";
curentSequence = SEQ_TYPE_ANY;
}
else
{
self.previousButton = sender;
}
}
Run Code Online (Sandbox Code Playgroud)
希望它会有所帮助。
| 归档时间: |
|
| 查看次数: |
555 次 |
| 最近记录: |