-2

我的骰子值从 1 到 6。我还有从 A 到 Z 的字母。

在应用程序加载时,我将该自定义按钮的标题设置为“A”。当我点击骰子时,会生成一个随机数,即假设这里是 5

现在我的任务是将自定义按钮的标题/文本更改为“F”表示从 A 增加 5 个增量。

并且当我点击骰子时文本为“Z”时,如果我现在得到 4,我的输出将是“D”

我怎样才能完成这两个任务?

4

3 回答 3

1

试试这个方法...

Array *a=[[NSArray arraywithObjects:@"A",@"B",........@"Z",nil];
 first DiceNumaber=1;

Then Random Number=5;

DiceNumber=DiceNumber+5;
//So, DiceNumber=6;




   Then
   if(DiceNumber>26){
 DiceNumber=DiceNumber%26;
}

Now, lblText.text=[a objectAtIndex:DiceNumber - 1];
//This will prints "F" 

如果您有任何问题,请告诉我。

于 2013-10-15T07:05:21.943 回答
0

这就是您可以使用 ASCII 值和 NSString 的方式。请注意,由于 NSString 正在使用 unichars,因此非 ASCII 字符串可能会出现意外结果。

首先,您必须获取当前字母表的 ascii 值。假设您当前的字母表是 A。那么它的 ascii 值是:

 // NSString to ASCII
  NSString *string = @"A";
  int asciiCode = [string characterAtIndex:0]; // 65

现在掷骰子,得到骰子值 5,然后将 5 添加到 ascii 值:

So, current asciiCode= asciiCode + 5; //70
// ASCII to NSString
// int asciiCode = 70;
if(asciiCode<91)
{
       NSString *string = [NSString stringWithFormat:@"%c", asciiCode]; //E
}
else
{
      int remainder = 90%asciiCode;
      NSString *string = [NSString stringWithFormat:@"%c", 65 + remainder-1];
}

我希望这能帮到您。

于 2013-10-15T07:01:33.720 回答
0
- (IBAction) buttonAction: (UIButton *) sender
{
    int offset = arc4random() % 6 + 1;
    char currentTitle = (sender.titleLabel.text.length > 0) ? [sender.titleLabel.text characterAtIndex: 0] : 'A';
    char nextTitle = 'A' + (currentTitle - 'A' + offset) % ('Z' - 'A');
    [sender setTitle: [NSString stringWithFormat: @"%c", nextTitle] forState: UIControlStateNormal];
}
于 2013-10-15T07:24:40.330 回答