我的骰子值从 1 到 6。我还有从 A 到 Z 的字母。
在应用程序加载时,我将该自定义按钮的标题设置为“A”。当我点击骰子时,会生成一个随机数,即假设这里是 5
现在我的任务是将自定义按钮的标题/文本更改为“F”表示从 A 增加 5 个增量。
并且当我点击骰子时文本为“Z”时,如果我现在得到 4,我的输出将是“D”
我怎样才能完成这两个任务?
试试这个方法...
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"
如果您有任何问题,请告诉我。
这就是您可以使用 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];
}
我希望这能帮到您。
- (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];
}