void PrintBag() { string output = ""; for (int i = 0; i < tiles.Length; i++) { if (tiles[i] != null) { LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { output += letter.GetLetter(); } else { output += ','; } } else { output += "null"; } } Debug.Log(output); }
private void PopulateBlockList(GameContent gameContent) { BlockList = new List <Block>(); HiddenList = new List <Block>(); LetterValue letterValue = new LetterValue(gameContent); Block block; int xcord = XCORD; int ycord = YCORD; List <int> randomSelectList = Randomize(); for (int ii = 0; ii < 12; ii++) { block = new Block(xcord, ycord, letterValue.LetterValueList[randomSelectList[ii]].Value, letterValue.LetterValueList[randomSelectList[ii]].Sprite, spriteBatch, gameContent); block.HitBox = new Rectangle(xcord, ycord, 128, 128); BlockList.Add(block); block = new Block(xcord, ycord, letterValue.LetterValueList[randomSelectList[ii]].Value, gameContent.question, spriteBatch, gameContent); block.HitBox = new Rectangle(xcord, ycord, 128, 128); HiddenList.Add(block); xcord += BSIZE + GAP; if (ii == ROW || ii == (ROW * 2) + 1 || ii == (ROW * 3) + 2) { ycord += BSIZE + GAP; xcord = XCORD; } } }
//returns the tile with a specific letter value //returns null if all such tiles are used up public GameObject DealSpecificTile(char letter) { int index = 150; //arbitrary large value //find the tile for (int i = 0; i < tiles.Length; i++) { if (tiles[i] != null) { LetterValue letterVal = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letterVal != null) { if (letterVal.GetLetter() == letter) { index = i; } } } } //if a matching tile was found if (index != 150) { GameObject tile = tiles[index]; tiles[index] = null; PrintBag(); bagCount--; return(tile); } else { return(null); } }
public void Hint() { int hintIndex = -1; int replaceIndex = -1; bool fromEmpty = false; for (int ii = 0; ii < EmptyList.Count; ii++) { if (EmptyList[ii].Value != WinCheck[ii].Value || EmptyList[ii].IsEmptyBlock) { hintIndex = ii; ii = EmptyList.Count; } } if (hintIndex != -1) { LetterValue hintValue = WinCheck[hintIndex]; for (int ii = 0; ii < BlockList.Count; ii++) { if (BlockList[ii].Value == hintValue.Value) { replaceIndex = ii; ii = BlockList.Count; } } if (replaceIndex == -1) { for (int ii = 0; ii < EmptyList.Count; ii++) { if (EmptyList[ii].Value == hintValue.Value) { replaceIndex = ii; ii = EmptyList.Count; fromEmpty = true; } } } } if (hintIndex != -1 && replaceIndex != -1) { if (fromEmpty) { EmptyList[replaceIndex].IsSelected = true; EmptyList[hintIndex].IsSelected = true; MoveHighlightedBlock(EmptyList[replaceIndex].HitBox); } else { BlockList[replaceIndex].IsSelected = true; EmptyList[hintIndex].IsSelected = true; MoveHighlightedBlock(BlockList[replaceIndex].HitBox); } UsedHint = true; } }
/*Prints letters in player's hand to console*/ void PrintHand() { string output = "PlayerHand: "; for (int i = 0; i < hand.Length; i++) { LetterValue letter = hand[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { output += letter.GetLetter(); } else { output += ','; } } //Debug.Log(output); }
/*Checks board that player is using*/ public void CheckBoard() { char[,] boardLetters = new char[16, 25]; int totalLetters = 0; //ask each cell if it has a child, if so get the letter for (int i = 0; i < 16; i++) { for (int j = 0; j < 25; j++) { //Debug.Log("Index: " + cells[i,j].transform.GetSiblingIndex()); //if the cell has a child if (cells[i, j].transform.childCount > 0) { GameObject child = cells[i, j].transform.GetChild(0).gameObject; //get letter LetterValue letterObj = child.GetComponent(typeof(LetterValue)) as LetterValue; if (letterObj != null) { boardLetters[i, j] = letterObj.GetLetter(); totalLetters++; } else { boardLetters[i, j] = ' '; } } else { boardLetters[i, j] = ' '; } } } //if not all letters were played if (totalLetters < hand.Length) { Debug.Log("Not all tiles were played."); modalPanel.Choice("You must play all tiles.", okayErrorAction); } else { //check board int error = boardChecker.CheckBoard(boardLetters, 16, 25); Debug.Log("BoardChecker returned: " + error); //if board is all good if (error == 0) { Debug.Log("Bag count: " + tileDistributor.GetBagCount()); if (tileDistributor.GetBagCount() <= 1) { Debug.Log("You win!"); modalPanel.Choice("You win!\nYou have used all tiles.", okayErrorAction); } else { modalPanel.Choice("Good job! Here's another tile!", dealOneTileAction); } } //disconnected tile else if (error == 1) { modalPanel.Choice("It looks like you have a disconnected word!", okayErrorAction); } //wrong word else if (error == 2) { modalPanel.Choice("Oops...you misspelled a word.", okayErrorAction); } } Print2DArray(boardLetters); }
public void CreateGame(SpriteBatch spriteBatch, GameContent gameContent, GameState state) { Skip = false; IsWinner = false; UsedHint = false; switch (state) { case GameState.SpellingBlocksNature: CategoryIndex = 0; break; case GameState.SpellingBlocksAnimals: CategoryIndex = 1; break; case GameState.SpellingBlocksMachines: CategoryIndex = 2; break; } BlockList = new List <Block>(); EmptyList = new List <Block>(); LetterValues = new LetterValue(gameContent); WinCheck = new List <LetterValue>(); AllWords = new Words(gameContent); Random random = new Random(); CurrentWordIndex = random.Next(0, WORD_COUNT); List <LetterValue> wordPreBlocks = new List <LetterValue>(); for (int ii = 0; ii < AllWords.WordsLists[CategoryIndex][CurrentWordIndex].Value.Count(); ii++) { wordPreBlocks.Add(AllWords.WordsLists[CategoryIndex][CurrentWordIndex].Value[ii]); WinCheck.Add(AllWords.WordsLists[CategoryIndex][CurrentWordIndex].Value[ii]); } while (wordPreBlocks.Count < BLOCK_COUNT) { wordPreBlocks.Add(LetterValues.LetterValueList[random.Next(0, ALPHABET)]); } Randomize(wordPreBlocks); int blockPosX = 112; //remove this ? int blockPosY = 480; Block block; for (int ii = 0; ii < wordPreBlocks.Count; ii++) { block = new Block(blockPosX, blockPosY, wordPreBlocks[ii].Value, wordPreBlocks[ii].Sprite, spriteBatch, gameContent); BlockList.Add(block); blockPosX += 64 + 16; } blockPosX = GetBlockPositionX(AllWords.WordsLists[CategoryIndex][CurrentWordIndex].Value.Count()); blockPosY = 384; for (int ii = 0; ii < AllWords.WordsLists[CategoryIndex][CurrentWordIndex].Value.Count(); ii++) { block = new Block(blockPosX, blockPosY, '0', gameContent.emptySprite, spriteBatch, gameContent) { IsEmptyBlock = true }; EmptyList.Add(block); blockPosX += 64 + 16; } }
// Use this for initialization void Awake() { Debug.Log("running"); for (int i = 0; i < 144; i++) { Debug.Log(i); Instantiate(tilePrefab, new Vector3(100, 100, 0), Quaternion.identity); } //load sprites sprites = Resources.LoadAll <Sprite>("Letters"); //not working Debug.Log("size of sprites: " + sprites.Length); //returns 0 //add all tiles to array tiles = GameObject.FindGameObjectsWithTag("Tile"); Debug.Log(tiles.Length); if (tiles != null) { //A for (int i = 0; i < 13; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[1]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('A'); } spriteR.sortingLayerName = "Tiles"; spriteR.sortingOrder = 10; } //B for (int i = 13; i < 16; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[2]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('B'); } spriteR.sortingLayerName = "Tiles"; } //C for (int i = 16; i < 19; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[3]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('C'); } spriteR.sortingLayerName = "Tiles"; } //D for (int i = 19; i < 25; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[4]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('D'); } spriteR.sortingLayerName = "Tiles"; } //E for (int i = 25; i < 43; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[5]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('E'); } spriteR.sortingLayerName = "Tiles"; } //F for (int i = 43; i < 46; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[6]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('F'); } spriteR.sortingLayerName = "Tiles"; } //G for (int i = 46; i < 50; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[7]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('G'); } spriteR.sortingLayerName = "Tiles"; } //H for (int i = 50; i < 53; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[8]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('H'); } spriteR.sortingLayerName = "Tiles"; } //I for (int i = 53; i < 65; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[9]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('I'); } spriteR.sortingLayerName = "Tiles"; } //J for (int i = 65; i < 67; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[10]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('J'); } spriteR.sortingLayerName = "Tiles"; } //K for (int i = 67; i < 69; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[11]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('K'); } spriteR.sortingLayerName = "Tiles"; } //L for (int i = 69; i < 74; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[12]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('L'); } spriteR.sortingLayerName = "Tiles"; } //M for (int i = 74; i < 77; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[13]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('M'); } spriteR.sortingLayerName = "Tiles"; } //N for (int i = 77; i < 85; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[14]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('N'); } spriteR.sortingLayerName = "Tiles"; } //O for (int i = 85; i < 96; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[15]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('O'); } spriteR.sortingLayerName = "Tiles"; } //P for (int i = 96; i < 99; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[16]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('P'); } spriteR.sortingLayerName = "Tiles"; } //Q for (int i = 99; i < 101; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[17]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('Q'); } spriteR.sortingLayerName = "Tiles"; } //R for (int i = 101; i < 110; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[18]; Debug.Log(i); LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('R'); } spriteR.sortingLayerName = "Tiles"; } //S for (int i = 110; i < 116; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[19]; LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('S'); } spriteR.sortingLayerName = "Tiles"; } //T for (int i = 116; i < 125; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[20]; Debug.Log(i); LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('T'); } spriteR.sortingLayerName = "Tiles"; } //U for (int i = 125; i < 131; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[21]; Debug.Log(i); LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('U'); } spriteR.sortingLayerName = "Tiles"; } //V for (int i = 131; i < 134; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[22]; Debug.Log(i); LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('V'); } spriteR.sortingLayerName = "Tiles"; } //W for (int i = 134; i < 137; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[23]; Debug.Log(i); LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('W'); } spriteR.sortingLayerName = "Tiles"; } //X for (int i = 137; i < 139; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[24]; Debug.Log(i); LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('X'); } spriteR.sortingLayerName = "Tiles"; } //Y for (int i = 139; i < 142; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[25]; Debug.Log(i); LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('Y'); } spriteR.sortingLayerName = "Tiles"; } //Z for (int i = 142; i < 144; i++) { spriteR = tiles[i].GetComponent <SpriteRenderer>(); spriteR.sprite = sprites[26]; Debug.Log(i); LetterValue letter = tiles[i].GetComponent(typeof(LetterValue)) as LetterValue; if (letter != null) { letter.SetLetter('Z'); } spriteR.sortingLayerName = "Tiles"; } } else { Debug.Log("null"); } PrintBag(); }
// Use this for initialization void Awake() { Instance = this; }