private void CrushFiveCandiesHorizontal(Node currentNode, DLinked candiesLinkedList) { Node currentNodeRight = currentNode.right; Node currentNodeRightRight = currentNodeRight.right; Node currentNodeLeft = currentNode.left; Node currentNodeLeftLeft = currentNodeLeft.left; currentNode.data.Name = "."; currentNodeRight.data.Name = "."; currentNodeRightRight.data.Name = "."; currentNodeLeft.data.Name = "."; currentNodeLeftLeft.data.Name = "."; Console.WriteLine("finish "); candiesLinkedList.Print(); Console.WriteLine("Generating New Nodes ...: "); //generate Random GenerateNewRandom(currentNode); GenerateNewRandom(currentNodeRight); GenerateNewRandom(currentNodeRightRight); GenerateNewRandom(currentNodeLeft); GenerateNewRandom(currentNodeLeftLeft); CheckGrid(candiesLinkedList); candiesLinkedList.Print(); }
private void CrushFourCandiesVertical(Node startNode, DLinked candiesLinkedList) { Node upNode = startNode.GetUpNode(startNode); Node startNodeDown = startNode.GetDownNode(startNode); Node startNodeDownDown = startNodeDown.GetDownNode(startNodeDown); Node startNodeDownDownDown = startNodeDownDown.GetDownNode(startNodeDownDown); if (upNode == null) { startNode.data.Name = "."; startNodeDown.data.Name = "."; startNodeDownDown.data.Name = "."; startNodeDownDownDown.data.Name = "."; } else { startNodeDownDownDown = SwapNodes(startNodeDownDownDown, upNode); startNode.data.Name = "."; startNodeDown.data.Name = "."; startNodeDownDown.data.Name = "."; startNodeDownDownDown.data.Name = "."; } Console.WriteLine("finish "); candiesLinkedList.Print(); Console.WriteLine("Generating New Nodes ...: "); //generate Random GenerateNewRandom(startNode); GenerateNewRandom(startNodeDown); GenerateNewRandom(startNodeDownDown); GenerateNewRandom(startNodeDownDownDown); CheckGrid(candiesLinkedList); candiesLinkedList.Print(); }
private void CrushFiveCandiesVertical(Node currentNode, DLinked candiesLinkedList) { Node currentNodeUp = currentNode.GetUpNode(currentNode); Node currentNodeUpUp = currentNodeUp.GetUpNode(currentNodeUp); Node currentNodeDown = currentNode.GetDownNode(currentNode); Node currentNodeDownDown = currentNodeDown.GetDownNode(currentNodeDown); currentNode.data.Name = "."; currentNodeUp.data.Name = "."; currentNodeUpUp.data.Name = "."; currentNodeDown.data.Name = "."; currentNodeDownDown.data.Name = "."; Console.WriteLine("finish "); candiesLinkedList.Print(); Console.WriteLine("Generating New Nodes ...: "); //generate Random GenerateNewRandom(currentNode); GenerateNewRandom(currentNodeUp); GenerateNewRandom(currentNodeUpUp); GenerateNewRandom(currentNodeDown); GenerateNewRandom(currentNodeDownDown); CheckGrid(candiesLinkedList); candiesLinkedList.Print(); }
private void CrushCandyWithTwoUpCandies(Node currentNodeAfterSwap, DLinked candiesLinkedList) { Node newCurrentUp = new Node(); Node newCurrentUpUp = new Node(); Node TopNode = new Node(); while (TopNode != null) { //swap current Up newCurrentUp = currentNodeAfterSwap.GetUpNode(currentNodeAfterSwap); newCurrentUpUp = newCurrentUp.GetUpNode(newCurrentUp); TopNode = newCurrentUpUp.GetUpNode(newCurrentUpUp); if (TopNode == null) { currentNodeAfterSwap.data.Name = "."; newCurrentUp.data.Name = "."; newCurrentUpUp.data.Name = "."; break; } else { currentNodeAfterSwap = SwapNodes(currentNodeAfterSwap, TopNode); Node currentNodeAfterSwapUp = currentNodeAfterSwap.GetUpNode(currentNodeAfterSwap); if (currentNodeAfterSwapUp == null) { currentNodeAfterSwap.data.Name = "."; newCurrentUp.data.Name = "."; newCurrentUpUp.data.Name = "."; break; } else { Node currentNodeAfterSwapDown = currentNodeAfterSwap.GetDownNode(currentNodeAfterSwap); Node currentNodeAfterSwapDownDown = currentNodeAfterSwapDown.GetDownNode(currentNodeAfterSwapDown); currentNodeAfterSwapUp = SwapNodes(currentNodeAfterSwapUp, currentNodeAfterSwapDownDown); } } } Console.WriteLine("finish "); candiesLinkedList.Print(); Console.WriteLine("Generating New Nodes ...: "); //generate Random GenerateNewRandom(currentNodeAfterSwap); GenerateNewRandom(newCurrentUp); GenerateNewRandom(newCurrentUpUp); CheckGrid(candiesLinkedList); candiesLinkedList.Print(); }
private void MoveCandyDown(Node currentNode, Node nodeToSwap, DLinked candiesLinkedList, int index, string direction) { Node currentNodeAfterSwap = new Node(); if (MatchTwoRightTwoLeft(currentNode, nodeToSwap)) { currentNodeAfterSwap = SwapNodes(currentNode, nodeToSwap); candiesLinkedList.Print(); TotalScore += 5 * currentNodeAfterSwap.data.Score; CrushFiveCandiesHorizontal(currentNodeAfterSwap, candiesLinkedList); } else if (MatchTwoRightOneLeft(currentNode, nodeToSwap)) { currentNodeAfterSwap = SwapNodes(currentNode, nodeToSwap); } else if (MatchTwoLeftOneRight(currentNode, nodeToSwap)) { currentNodeAfterSwap = SwapNodes(currentNode, nodeToSwap); } else if (MatchTwoDown(currentNode, nodeToSwap)) { currentNodeAfterSwap = SwapNodes(currentNode, nodeToSwap); candiesLinkedList.Print(); TotalScore += 3 * currentNode.data.Score; CrushCandyWithTwoDownCandies(currentNodeAfterSwap, candiesLinkedList); } else if (MatchTwoRight(currentNode, nodeToSwap)) { currentNodeAfterSwap = SwapNodes(currentNode, nodeToSwap); candiesLinkedList.Print(); TotalScore += 3 * currentNode.data.Score; CrushCandyWithTwoRightCandies(currentNodeAfterSwap, candiesLinkedList); } else if (MatchTwoLeft(currentNode, nodeToSwap)) { currentNodeAfterSwap = SwapNodes(currentNode, nodeToSwap); candiesLinkedList.Print(); TotalScore += 3 * currentNode.data.Score; CrushCandyWithTwoLeftCandies(currentNodeAfterSwap, candiesLinkedList); } else if (MatchOneRightOneLeft(currentNode, nodeToSwap)) { currentNodeAfterSwap = SwapNodes(currentNode, nodeToSwap); } else { DisplayUnmatchedDirection(index, direction, candiesLinkedList); } }
public void CandiesGrid() { DLinked candiesLinkedList = new DLinked(); Random rnd = new Random(); for (int i = 0; i < size; i++) { Node newNode = new Node(); newNode.data.Score = rnd.Next(1, 5); newNode = SetNodeName(newNode); //int nod = rnd.Next(1, 5); //obj.add(nod); candiesLinkedList.add(newNode); if (i == 0) { TopL = candiesLinkedList.head; } if (i == 24) { RDown = candiesLinkedList.tail; } } CheckGrid(candiesLinkedList); candiesLinkedList.Print(); Play(candiesLinkedList); }
private void CrushCandyWithTwoLeftCandies(Node currentNodeAfterSwap, DLinked candiesLinkedList) { Node newCurrentUp = new Node(); while (newCurrentUp != null) { //swap current Up newCurrentUp = currentNodeAfterSwap.GetUpNode(currentNodeAfterSwap); if (newCurrentUp == null) { currentNodeAfterSwap.data.Name = "."; currentNodeAfterSwap.left.data.Name = "."; currentNodeAfterSwap.left.left.data.Name = "."; break; } else { currentNodeAfterSwap = SwapNodes(currentNodeAfterSwap, newCurrentUp); //swap current.right up Node currentNodeAfterSwapLeft = currentNodeAfterSwap.left; Node newCurrentRightDown = currentNodeAfterSwapLeft.GetDownNode(currentNodeAfterSwapLeft); currentNodeAfterSwapLeft = SwapNodes(currentNodeAfterSwapLeft, newCurrentRightDown); //swap current right right up Node currentNodeAfterSwapLeftLeft = currentNodeAfterSwapLeft.left; Node newCurrentRightRightUp = currentNodeAfterSwapLeftLeft.GetUpNode(currentNodeAfterSwapLeftLeft); currentNodeAfterSwapLeftLeft = SwapNodes(currentNodeAfterSwapLeftLeft, newCurrentRightRightUp); } } Console.WriteLine("finish "); candiesLinkedList.Print(); Console.WriteLine("Generating New Nodes ...: "); //generate Random GenerateNewRandom(currentNodeAfterSwap); GenerateNewRandom(currentNodeAfterSwap.left); GenerateNewRandom(currentNodeAfterSwap.left.left); CheckGrid(candiesLinkedList); candiesLinkedList.Print(); }
private void MoveCandyLeft(Node currentNode, Node nodeToSwap, DLinked candiesLinkedList, int index, string direction) { Node currentNodeAfterSwap = new Node(); if (MatchTwoUpTwoDown(currentNode, nodeToSwap)) { currentNodeAfterSwap = SwapNodes(currentNode, nodeToSwap); candiesLinkedList.Print(); TotalScore += 5 * currentNodeAfterSwap.data.Score; CrushFiveCandiesVertical(currentNodeAfterSwap, candiesLinkedList); } else if (MatchTwoLeft(currentNode, nodeToSwap)) { currentNodeAfterSwap = SwapNodes(currentNode, nodeToSwap); candiesLinkedList.Print(); TotalScore += 3 * currentNodeAfterSwap.data.Score; CrushCandyWithTwoLeftCandies(currentNodeAfterSwap, candiesLinkedList); } else if (MatchTwoUpOneDown(currentNode, nodeToSwap)) { currentNodeAfterSwap = SwapNodes(currentNode, nodeToSwap); candiesLinkedList.Print(); TotalScore += 4 * currentNodeAfterSwap.data.Score; Node currentUp = currentNodeAfterSwap.GetUpNode(currentNodeAfterSwap); Node startNode = currentUp.GetUpNode(currentUp); CrushFourCandiesVertical(startNode, candiesLinkedList); } else if (MatchTwoDownOneUp(currentNode, nodeToSwap)) { currentNodeAfterSwap = SwapNodes(currentNode, nodeToSwap); candiesLinkedList.Print(); TotalScore += 4 * currentNodeAfterSwap.data.Score; Node startNode = currentNodeAfterSwap.GetUpNode(currentNodeAfterSwap); CrushFourCandiesVertical(startNode, candiesLinkedList); } else if (MatchTwoUp(currentNode, nodeToSwap)) { currentNodeAfterSwap = SwapNodes(currentNode, nodeToSwap); candiesLinkedList.Print(); TotalScore += 3 * currentNodeAfterSwap.data.Score; CrushCandyWithTwoUpCandies(currentNodeAfterSwap, candiesLinkedList); } else if (MatchTwoDown(currentNode, nodeToSwap)) { currentNodeAfterSwap = SwapNodes(currentNode, nodeToSwap); candiesLinkedList.Print(); TotalScore += 3 * currentNodeAfterSwap.data.Score; CrushCandyWithTwoDownCandies(currentNodeAfterSwap, candiesLinkedList); } else if (MatchOneUpOneDown(currentNode, nodeToSwap)) { currentNodeAfterSwap = SwapNodes(currentNode, nodeToSwap); TotalScore += 3 * currentNodeAfterSwap.data.Score; Node currentUp = currentNodeAfterSwap.GetUpNode(currentNodeAfterSwap); CrushCandyWithTwoDownCandies(currentUp, candiesLinkedList); } else { DisplayUnmatchedDirection(index, direction, candiesLinkedList); } }