2013-05-31 22 views
0

我想開發一個益智遊戲,我們在塊中顯示一個洗牌詞,用戶必須點擊以適當的順序形成這個詞。我有一個約3k字的數組,我有現在我想要最終選擇一個字符串,將其打亂並在框中顯示混排的排列,例如說這個單詞是板球,它應該在屏幕上顯示下面的格式:隨機NSString字符和排列塊

enter image description here

這裏是我混洗的陣列和形成的混亂一個

srandom(time(NULL)); 
for (NSInteger x=0;x<[greWordsArray count];x++) 
{ 
    NSInteger randomNumber = (random() % ([greWordsArray count] - x)) + x; 
    [greWordsArray exchangeObjectAtIndex:x withObjectAtIndex:randomNumber]; 
} 

我也忘了說我有一個「新」按鈕,如果用戶點擊它,應該出現新的單詞,像往常一樣,它應該在混洗模式下,然後以塊的形式顯示。

可以有一個人請指導我如何做到這一點,我不知道用在塊顯示字符是什麼,無論是按鈕,文本字段或其他一些object.I還需要根據有關改變的塊數一些援助關於單詞長度。還有如何在標籤上顯示選定的字符。我承認我們可以將標籤和字符放在它上面,但推薦的方法是,我應該爲每個字符或單個標籤貼上標籤,然後允許間距取決於人物選擇。如果是這樣,我應該怎麼做。

人們會想我曾嘗試過的,但請幫助我,因爲我是這些類型的益智遊戲的新手,至少爲我提供了一些可以理解的來源開始。

回答

0

我發現很多更加精確和符合邏輯的答案我的問題表現出來,

如上所述,我們需要對數組進行混洗並形成一個排序後的數組,我們需要根據索引爲jumbledWord指定一個隨機詞,比如說:

int randomWordIndex = (int)arc4random%[greWordsArray count]; 
self.jumbledWord = [greWordsArray objectAtIndex:randomWordIndex]; 

現在,我們已經準備好與基於Word中創建按鈕length.Here是:

-(void)buttonsCreation:(int)noOfButtons 
{ 
    NSMutableArray *charactersArray = [NSMutableArray array]; 
    self.wordButtons = [[NSMutableArray alloc]initWithCapacity:20]; 

    BOOL record = NO; 
    int randomNumber; 

    for (int i=0; [charactersArray count] < jumbledWord.length; i++) //Loop for generate different random values 
    { 
     randomNumber = arc4random() % jumbledWord.length;//generating random number 
     if(i==0) 
     { 
      [charactersArray addObject:[NSNumber numberWithInt:randomNumber]]; 
     } 
     else 
     { 
      for (int j=0; j<= [charactersArray count]-1; j++) 
      { 
       if (randomNumber ==[[charactersArray objectAtIndex:j] intValue]) 
        record = YES; 
      } 
      if (record == YES) 
       record = NO; 
      else 
       [charactersArray addObject:[NSNumber numberWithInt:randomNumber]]; 
     } 
    } 

    int arrayValue; 
    float x = 100.0; 
    float y = 100.0; 
    for(int i=0;i<[jumbledWord length];i++) 
    { 
     if(i>=0 && i<10) 
     { 
      arrayValue = [[charactersArray objectAtIndex:i] intValue]; 
      x = x + 33; 
      UIButton *characterButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
      characterButton.frame = CGRectMake(x,175.0, 35.0, 35.0); 
      [wordButtons addObject:characterButton]; 
      NSString *characterValue = [NSString stringWithFormat:@"%c",[jumbledWord characterAtIndex:arrayValue]]; 
      [characterButton setTitle:characterValue forState:UIControlStateNormal]; 
      [characterButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 
      [characterButton setTag:arrayValue]; 
      [self.view addSubview:characterButton]; 
     } 
     else if(i>=10 && i<15) 
     { 
      y = y + 33; 
      UIButton *characterButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
      characterButton.frame = CGRectMake(y,200.0, 35.0, 35.0); 
      [wordButtons addObject:characterButton]; 
      NSString *characterValue = [NSString stringWithFormat:@"%c",[jumbledWord characterAtIndex:i]]; 
      [characterButton setTitle:characterValue forState:UIControlStateNormal]; 
      [characterButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; 
      [characterButton setTag:i]; 
      [self.view addSubview:characterButton]; 
     } 
    } 
} 

請注意,x和y的值可能會因一個人的requirement.I已經暫時設置座標位置x和y的基礎上的字長,你可以改變,如果你想,謝謝:)

希望它有助於一個人,快樂的編碼!

2

假設你有wordsArray它由3K話

int randomWordIndex = arc4random%[wordsArray count]; 

NSString *jumbledWord = [wordsArray objectAtIndex:randomWordIndex]; 
NSMutableArray *characterArray = [[NSMutableArray alloc]init]; 
// character array having all characters of array 

for (int i = 0; i< = [jumbledWord length]); i++) 

{ 

    int randomCharacterIndex = arc4random%[jumbledWord length]; 
    [characterArray insertObject: 
         [NSString stringWithFormat: @"%@", 
          [jumbledWord characterAtIndex:i]] 
        atIndex:randomCharacterIndex] ; 

} 

現在你可以使用標籤或tableview中或任何

+0

如何在塊中顯示混洗字,應該使用按鈕或文本字段還是其他對象,如何在標籤中顯示按下的字符,我應該使用多個標籤還是僅使用1個標籤,以及在新建時如何顯示字母按鈕被按下 –

+0

@EshwarChaitanya可以使用表視圖....因爲具有這種方法表視圖.... - (無效)的tableView:(UITableView的*)的tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath :(NSIndexPath *)toIndexPath – alpha

+0

不,不,我猜你誤解了上下文,實際上在我的遊戲中沒有視圖範圍,我希望用戶在視圖中顯示混亂的單詞,在混亂的街區之上,無論是在標籤上還是以往。 –