void Start() { sliderHandler = GameObject.Find("SliderHandler").GetComponent <SliderHandler>(); dialogHandler = GameObject.Find("DialogBorder").GetComponent <DialogHandler>(); computerAI = GameObject.Find("ComputerAI").GetComponent <ComputerAI>(); diceHandler = GameObject.Find("DicePanel").GetComponent <DiceHandler>(); buttonHandler = GameObject.Find("ButtonHandler").GetComponent <ButtonHandler>(); }
public void DiceFourTest() { for (int i = 0; i < 100000; i++) { int testNumber = DiceHandler.DiceFour(); if (testNumber <= 0 || testNumber > 4) { Assert.Fail(); } } }
private bool CheckThreeVertical(DiceHandler die, out DiceHandler[] diceList) { diceList = new DiceHandler[3]; if (die.gridPosition.y - 2 >= 0) { DiceHandler twoDown = board[(int)die.gridPosition.x, (int)(die.gridPosition.y - 2)].GetComponent <DiceHandler>(); DiceHandler oneDown = board[(int)die.gridPosition.x, (int)(die.gridPosition.y - 1)].GetComponent <DiceHandler>(); if ((twoDown.dieColor == die.dieColor && twoDown.value == die.value) && (oneDown.dieColor == die.dieColor && oneDown.value == die.value)) { diceList[0] = die; diceList[1] = oneDown; diceList[2] = twoDown; return(true); } } if (die.gridPosition.y - 1 >= 0 && die.gridPosition.y + 1 < height) { DiceHandler oneDown = board[(int)die.gridPosition.x, (int)(die.gridPosition.y - 1)].GetComponent <DiceHandler>(); DiceHandler oneUp = board[(int)die.gridPosition.x, (int)(die.gridPosition.y + 1)].GetComponent <DiceHandler>(); if ((oneDown.dieColor == die.dieColor && oneDown.value == die.value) && (oneUp.dieColor == die.dieColor && oneUp.value == die.value)) { diceList[0] = oneUp; diceList[1] = die; diceList[2] = oneDown; return(true); } } if (die.gridPosition.y + 2 < height) { DiceHandler oneUp = board[(int)die.gridPosition.x, (int)(die.gridPosition.y + 1)].GetComponent <DiceHandler>(); DiceHandler twoUp = board[(int)die.gridPosition.x, (int)(die.gridPosition.y + 2)].GetComponent <DiceHandler>(); if ((oneUp.dieColor == die.dieColor && oneUp.value == die.value) && (twoUp.dieColor == die.dieColor && twoUp.value == die.value)) { diceList[0] = twoUp; diceList[1] = oneUp; diceList[2] = die; return(true); } } return(false); }
private bool CheckThreeHorizontal(DiceHandler die, out DiceHandler[] diceList) { diceList = new DiceHandler[3]; if (die.gridPosition.x - 2 >= 0) { DiceHandler twoLeft = board[(int)(die.gridPosition.x - 2), (int)die.gridPosition.y].GetComponent <DiceHandler>(); DiceHandler oneLeft = board[(int)(die.gridPosition.x - 1), (int)die.gridPosition.y].GetComponent <DiceHandler>(); if ((twoLeft.dieColor == die.dieColor && twoLeft.value == die.value) && (oneLeft.dieColor == die.dieColor && oneLeft.value == die.value)) { diceList[0] = twoLeft; diceList[1] = oneLeft; diceList[2] = die; return(true); } } if (die.gridPosition.x - 1 >= 0 && die.gridPosition.x + 1 < width) { DiceHandler oneLeft = board[(int)(die.gridPosition.x - 1), (int)die.gridPosition.y].GetComponent <DiceHandler>(); DiceHandler oneRight = board[(int)(die.gridPosition.x + 1), (int)die.gridPosition.y].GetComponent <DiceHandler>(); if ((oneLeft.dieColor == die.dieColor && oneLeft.value == die.value) && (oneRight.dieColor == die.dieColor && oneRight.value == die.value)) { diceList[0] = oneLeft; diceList[1] = die; diceList[2] = oneRight; return(true); } } if (die.gridPosition.x + 2 < width) { DiceHandler oneRight = board[(int)(die.gridPosition.x + 1), (int)die.gridPosition.y].GetComponent <DiceHandler>(); DiceHandler twoRight = board[(int)(die.gridPosition.x + 2), (int)die.gridPosition.y].GetComponent <DiceHandler>(); if ((oneRight.dieColor == die.dieColor && oneRight.value == die.value) && (twoRight.dieColor == die.dieColor && twoRight.value == die.value)) { diceList[0] = die; diceList[1] = oneRight; diceList[2] = twoRight; return(true); } } return(false); }
public void InstantiateBoard() { board = new GameObject[width, height]; isSwapping = true; timer = maxTime; int leftVal = 0; int prevVal = 0; // Set material by difficulty int maxCount = (int)difficulty; int count = 0; for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { GameObject tempDie = DicePool.instance.RetrieveDie(); tempDie.transform.position = new Vector3(transform.position.x + (x * xOffset), transform.position.y + (y * yOffset) + 10, 0); board[x, y] = tempDie; DiceHandler diceHandler = tempDie.GetComponent <DiceHandler>(); diceHandler.gridPosition = new Vector2(x, y); diceHandler.fallDelay = (y * 1.5f) + (x * 0.2f); diceHandler.GetComponent <MeshRenderer>().material = dieMaterials[count]; diceHandler.dieColor = (DiceColor)count; count++; if (count > maxCount) { count = 0; } if (x > 0) { leftVal = board[x - 1, y].GetComponent <DiceHandler>().value; } do { diceHandler.value = Random.Range(1, 7); }while (diceHandler.value == leftVal || diceHandler.value == prevVal); prevVal = diceHandler.value; Vector3 startPosition = diceHandler.transform.position; endPosition = new Vector3(transform.position.x + (x * xOffset), transform.position.y + (y * yOffset), 0); StartCoroutine(diceHandler.FallingRoutine(startPosition, endPosition)); } } }
private void ResetVertical(DiceHandler[] diceList) { isSwapping = true; float delay = 0.5f; // Move cleared dice to the top for (int i = 0; i < diceList.Length; i++) { diceList[i].isTumbling = true; int xPos = (int)diceList[i].gridPosition.x; int yPos = (int)diceList[i].gridPosition.y; Vector3 pos = diceList[i].transform.position; pos.y = resetHeight + (yOffset * i); diceList[i].transform.position = pos; diceList[i].value = Random.Range(1, 7); diceList[i].fallDelay = delay * i; } // Slide other dice down DiceHandler topDie = diceList[0]; if (topDie.gridPosition.y != height - 1) { for (int y = (int)(topDie.gridPosition.y + 1); y < height; y++) { DiceHandler die = board[(int)topDie.gridPosition.x, y].GetComponent <DiceHandler>(); Vector3 endPos = die.transform.position; endPos.y -= 1.1f * diceList.Length; StartCoroutine(die.SwapPosition(die.transform.position, endPos)); board[(int)die.gridPosition.x, y - diceList.Length] = die.gameObject; die.gridPosition = new Vector2(die.gridPosition.x, y - diceList.Length); } } // Drop cleared dice for (int i = 0; i < diceList.Length; i++) { Vector3 endPos = diceList[i].transform.position; endPos.y = 3.8f - (yOffset * (diceList.Length - i - 1)); StartCoroutine(diceList[i].FallingRoutine(diceList[i].transform.position, endPos)); int gridY = height - (diceList.Length - i); board[(int)diceList[i].gridPosition.x, gridY] = diceList[i].gameObject; diceList[i].gridPosition = new Vector2(diceList[i].gridPosition.x, gridY); } }
private bool CheckStraightSixVertical(DiceHandler die) { DiceHandler otherDie; // Check 2-6 int upCount = die.value - 2; for (int i = upCount; i > 0; i--) { if (die.gridPosition.y + i >= height) { return(false); } else { otherDie = board[(int)die.gridPosition.x, (int)(die.gridPosition.y + i)].GetComponent <DiceHandler>(); if (otherDie.dieColor != die.dieColor || otherDie.value != die.value - i) { return(false); } else { continue; } } } int downCount = 6 - die.value; for (int i = downCount; i > 0; i--) { if (die.gridPosition.y - i < 0) { return(false); } else { otherDie = board[(int)die.gridPosition.x, (int)(die.gridPosition.y - i)].GetComponent <DiceHandler>(); if (otherDie.dieColor != die.dieColor || otherDie.value != die.value + i) { return(false); } else { continue; } } } return(true); }
private bool CheckStraightSixHorizontal(DiceHandler die) { DiceHandler otherDie; // Check 2-6 int leftCount = die.value - 2; for (int i = leftCount; i > 0; i--) { if (die.gridPosition.x - i < 0) { return(false); } else { otherDie = board[(int)(die.gridPosition.x - i), (int)die.gridPosition.y].GetComponent <DiceHandler>(); if (otherDie.dieColor != die.dieColor || otherDie.value != die.value - i) { return(false); } else { continue; } } } int rightCount = 6 - die.value; for (int i = rightCount; i > 0; i--) { if (die.gridPosition.x + i >= width) { return(false); } else { otherDie = board[(int)(die.gridPosition.x + i), (int)die.gridPosition.y].GetComponent <DiceHandler>(); if (otherDie.dieColor != die.dieColor || otherDie.value != die.value + i) { return(false); } else { continue; } } } return(true); }
public void SwapDice(GameObject secondDie) { isSwapping = true; DiceHandler secondHandler = secondDie.GetComponent <DiceHandler>(); Vector2 tempGrid = secondHandler.gridPosition; Vector3 tempPos = secondDie.transform.position; secondHandler.gridPosition = selectedDie.gridPosition; board[(int)selectedDie.gridPosition.x, (int)selectedDie.gridPosition.y] = secondDie; selectedDie.gridPosition = tempGrid; board[(int)tempGrid.x, (int)tempGrid.y] = selectedDie.gameObject; StartCoroutine(secondHandler.SwapPosition(secondDie.transform.position, selectedDie.transform.position)); StartCoroutine(selectedDie.SwapPosition(selectedDie.transform.position, tempPos)); selectedDie = null; }
public void OnSelect(InputValue value) { Ray ray = Camera.main.ScreenPointToRay(mousePosition); RaycastHit hit; Physics.Raycast(ray, out hit, 20.0f); Debug.DrawRay(ray.origin, ray.direction, Color.blue, 1.0f); if (hit.transform != null && hit.transform.CompareTag("Die") && hit.transform.gameObject == gameObject) { if (GameManager.instance.IsSwapping) { return; } if (isSelected) { isSelected = false; GameManager.instance.selectedDie = null; } else { if (GameManager.instance.selectedDie == null) { isSelected = true; GameManager.instance.selectedDie = this; } else { DiceHandler selected = GameManager.instance.selectedDie; if ((gridPosition.x >= selected.gridPosition.x - 1 && gridPosition.x <= selected.gridPosition.x + 1 && gridPosition.y == selected.gridPosition.y) || (gridPosition.y >= selected.gridPosition.y - 1 && gridPosition.y <= selected.gridPosition.y + 1 && gridPosition.x == selected.gridPosition.x)) { GameManager.instance.SwapDice(gameObject); } } } } }
void Start() { stateHandler = GameObject.Find("StateHandler").GetComponent <StateHandler>(); diceHandler = GameObject.Find("DicePanel").GetComponent <DiceHandler>(); }
// Use this for initialization void Start() { diceHandler = gameObject.GetComponent<DiceHandler>(); diceResults = new int[diceHandler.maxNoDice]; }
public void CheckMatch(DiceHandler die) { DiceHandler[] diceList; if (CheckStraightFiveHorizontal(die)) { score += 250; UIManager.instance.SetScore(score); int left = die.value - 1; DiceHandler leftMostDie = board[(int)die.gridPosition.x - left, (int)die.gridPosition.y].GetComponent <DiceHandler>(); diceList = new DiceHandler[5]; for (int i = 0; i < 5; i++) { diceList[i] = board[(int)leftMostDie.gridPosition.x + i, (int)leftMostDie.gridPosition.y].GetComponent <DiceHandler>(); } ResetHorizontal(diceList); Debug.Log("Horizontal Straight 5 Made!"); return; } if (CheckStraightSixHorizontal(die)) { score += 250; UIManager.instance.SetScore(score); int left = die.value - 2; DiceHandler leftMostDie = board[(int)die.gridPosition.x - left, (int)die.gridPosition.y].GetComponent <DiceHandler>(); diceList = new DiceHandler[5]; for (int i = 0; i < 5; i++) { diceList[i] = board[(int)leftMostDie.gridPosition.x + i, (int)leftMostDie.gridPosition.y].GetComponent <DiceHandler>(); } ResetHorizontal(diceList); Debug.Log("Horizontal Straight 6 Made!"); return; } if (CheckStraightFiveVertical(die)) { score += 250; UIManager.instance.SetScore(score); int up = die.value - 1; DiceHandler upMostDie = board[(int)die.gridPosition.x, (int)die.gridPosition.y + up].GetComponent <DiceHandler>(); diceList = new DiceHandler[5]; for (int i = 0; i < 5; i++) { diceList[i] = board[(int)upMostDie.gridPosition.x, (int)upMostDie.gridPosition.y - i].GetComponent <DiceHandler>(); } ResetVertical(diceList); Debug.Log("Vertical Straight 5 Made!"); return; } if (CheckStraightSixVertical(die)) { score += 250; UIManager.instance.SetScore(score); int up = die.value - 2; DiceHandler upMostDie = board[(int)die.gridPosition.x, (int)die.gridPosition.y + up].GetComponent <DiceHandler>(); diceList = new DiceHandler[5]; for (int i = 0; i < 5; i++) { diceList[i] = board[(int)upMostDie.gridPosition.x, (int)upMostDie.gridPosition.y - i].GetComponent <DiceHandler>(); } ResetVertical(diceList); Debug.Log("Vertical Straight 6 Made!"); return; } if (CheckThreeHorizontal(die, out diceList)) { score += 100; UIManager.instance.SetScore(score); ResetHorizontal(diceList); Debug.Log("Match Three Horizontal!"); return; } if (CheckThreeVertical(die, out diceList)) { score += 100; UIManager.instance.SetScore(score); ResetVertical(diceList); Debug.Log("Match Three Vertical!"); return; } }