Advertisement
jemongolfin98

Guess Word GameManager Script

Mar 13th, 2025 (edited)
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 22.00 KB | Gaming | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. using UnityEngine.SceneManagement;
  6. using TMPro;
  7. using System;
  8. using Random = UnityEngine.Random;
  9. using Unity.VisualScripting;
  10.  
  11. public class GameManager : MonoBehaviour
  12. {
  13.     public GameObject letter;
  14.     public GameObject center;
  15.     public GameObject hintButton;
  16.     public GameObject pausedButton;
  17.     public GameObject startGamePanel;
  18.     public GameObject nextWordButton;
  19.     public GameObject gamePanel;
  20.     public GameObject hintPanel;
  21.     public GameObject successPanel;
  22.     public GameObject failPanel;
  23.     public GameObject pausedPanel;
  24.  
  25.  
  26.     public TMP_Text letterGuessed01;
  27.     public TMP_Text letterGuessed02;
  28.     public TMP_Text letterGuessed03;
  29.     public TMP_Text guessesLeftText;
  30.     public TMP_Text hintText;
  31.  
  32.  
  33.     private string wordToGuess = "";
  34.     private int lengthOfWordToGuess;
  35.  
  36.     public char [] lettersToGuess;
  37.     public bool [] lettersGuessed;
  38.  
  39.     private string [] wordsToGuess = new string [] {"resume", "handshake","linkedin", "internship", "jobshadowing", "businessattire", "networking", "technicalskills", "softskills", "coverletter" };
  40.  
  41.     int randomNumber;
  42.     int guessesLeft;
  43.     int wordCounter = 0;
  44.     //int i = 0;
  45.  
  46.  
  47.     bool word0Completed = false;
  48.     bool word1Completed = false;
  49.     bool word2Completed = false;
  50.     bool word3Completed = false;
  51.     bool word4Completed = false;
  52.     bool word5Completed = false;
  53.     bool word6Completed = false;
  54.     bool word7Completed = false;
  55.     bool word8Completed = false;
  56.     bool word9Completed = false;
  57.  
  58.     bool wrongLetterGuessed = false;
  59.  
  60.     //Timer
  61.     public int timeLeft = 60;
  62.     public TMP_Text timeLeftText;
  63.     float currCountdownValue;
  64.  
  65.     public bool wordGuessed;
  66.  
  67.     public int lettersCorrect;
  68.  
  69.  
  70.     // Start is called before the first frame update
  71.     public void Start()
  72.     {
  73.         center = GameObject.Find ("CenterOfScreen");
  74.         startGamePanel.SetActive(true);
  75.  
  76.         //guessesLeft = 3;
  77.  
  78.         letterGuessed01.text = "";
  79.         //letterGuessed02.text = "";
  80.         //letterGuessed03.text = "";
  81.  
  82.         //ChooseWord01();
  83.        
  84.         //InitGame();
  85.         //InitLetters();
  86.     }
  87.  
  88.     // Update is called once per frame
  89.     public void Update()
  90.     {
  91.         timeLeftText.text = "Time Left: " + timeLeft;
  92.        
  93.         // Time Left
  94.         if (timeLeft > 30)
  95.         {
  96.             hintButton.SetActive(false);
  97.             failPanel.SetActive(false);
  98.         }
  99.         else if (timeLeft <= 30 && timeLeft >= 1)
  100.         {
  101.             hintButton.SetActive(true);
  102.             failPanel.SetActive(false);
  103.         }
  104.         else if (timeLeft == 0)
  105.         {
  106.             GameObject letter;
  107.             int i = 0;
  108.             while (letter = GameObject.Find("letter" + (i+1)))
  109.             {
  110.                 //Destroy(letter);
  111.                 letter.SetActive(false);
  112.                 i++;
  113.             }
  114.            
  115.             failPanel.SetActive(true);
  116.             gamePanel.SetActive(false);
  117.             Time.timeScale = 0f;
  118.            
  119.         }
  120.  
  121.         switch (randomNumber)
  122.         {
  123.             case 0:
  124.                 // "Resume"
  125.                 hintText.text = "Summarized document of professional career, usually 1-page.";
  126.                 break;
  127.             case 1:
  128.                 // "Handshake"
  129.                 hintText.text = "Job search and career prep website promoted by many universities.";
  130.                 break;
  131.             case 2:
  132.                 // "LinkedIn"
  133.                 hintText.text = "Social Media platform for Professionals.";
  134.                 break;
  135.             case 3:
  136.                 // "Internship"
  137.                 hintText.text = "Opportunity to work and learn for a company during a preset amount of time, usually for pay.";
  138.                 break;
  139.             case 4:
  140.                 // "Job Shadowing"
  141.                 hintText.text = "Opportunity to watch/observe professionals in their actual work space.";
  142.                 break;
  143.             case 5:
  144.                 // "Business Attire"
  145.                 hintText.text = "Usually worn at professional/networking events and/or interviews.";
  146.                 break;
  147.             case 6:
  148.                 // "Networking"
  149.                 hintText.text = "To build relationships with professionals within your career field.";
  150.                 break;
  151.             case 7:
  152.                 // "Technical Skills"
  153.                 hintText.text = "Skills needed to do the job or be successful in a speciifc career.";
  154.                 break;
  155.             case 8:
  156.                 // "Soft Skills"
  157.                 hintText.text = "Skills needed to be successful in a team or workplace environment.";
  158.                 break;
  159.             case 9:
  160.                 // "Cover Letter"
  161.                 hintText.text = "Document used to express why you are qualified for a job position.";
  162.                 break;
  163.         }
  164.  
  165.         if (wordGuessed == true)
  166.         {
  167.             Time.timeScale = 0f;
  168.             //Destroy(letter);
  169.             successPanel.SetActive(true);
  170.             gamePanel.SetActive(false);
  171.  
  172.             GameObject letter;
  173.             int i = 0;
  174.             while (letter = GameObject.Find("letter" + (i+1)))
  175.             {
  176.                 //Destroy(letter);
  177.                 letter.SetActive(false);
  178.                 i++;
  179.             }
  180.         }
  181.         else
  182.         {
  183.             successPanel.SetActive(false);
  184.         }
  185.        
  186.         guessesLeftText.text = "Guesses Left: " + guessesLeft;
  187.  
  188.         if (wordCounter < 9)
  189.         {
  190.             nextWordButton.SetActive(true);
  191.         }
  192.         else
  193.         {
  194.             nextWordButton.SetActive(false);
  195.         }
  196.  
  197.         if (Input.GetKey(KeyCode.Escape))
  198.         {
  199.             Application.Quit();
  200.         }
  201.  
  202.         //CheckKeyboard ();
  203.         //CheckKeyboard2 ();
  204.         //CheckKeyboard2a ();
  205.         CheckKeyboard2a1 ();
  206.         //CheckKeyboard3 ();
  207.         //CheckKeyboard3a ();
  208.         //CheckKeyboard3a1 ();
  209.     }
  210.  
  211.     public void InitGame()
  212.     {
  213.         //int randomNumber = Random.Range (0, wordsToGuess.Length - 1);
  214.         //randomNumber = Random.Range (0, wordsToGuess.Length - 1);
  215.         //wordToGuess = wordsToGuess [randomNumber];
  216.  
  217.         lengthOfWordToGuess = wordToGuess.Length;
  218.         wordToGuess = wordToGuess.ToUpper ();
  219.         lettersToGuess = new char[lengthOfWordToGuess];
  220.         lettersGuessed = new bool [lengthOfWordToGuess];  
  221.         lettersToGuess = wordToGuess.ToCharArray ();
  222.  
  223.         StartCoroutine(StartCountdown());
  224.     }
  225.    
  226.     public void InitLetters()
  227.     {
  228.         // GameObject letter;
  229.         // int i = 0;
  230.         // while (letter = GameObject.Find("letter" + (i+1)))
  231.         // {
  232.         //     Destroy(letter);
  233.         //     letter.SetActive(false);
  234.         //     i++;
  235.         // }
  236.        
  237.         int nbletters = lengthOfWordToGuess;
  238.    
  239.         for (int i = 0; i < nbletters; i++)
  240.         {
  241.             Vector3 newPosition;
  242.             newPosition = new Vector3 (center.transform.position.x + ((i-nbletters/2.5f) *50), center.transform.position.y, center.transform.position.z);
  243.             GameObject l = (GameObject)Instantiate (letter, newPosition, Quaternion.identity);
  244.    
  245.             l.name = "letter" + (i + 1);
  246.             l.transform.SetParent(GameObject.Find ("Letters").transform);
  247.         }
  248.     }
  249.  
  250.     public void CheckKeyboard()
  251.     {
  252.         if (Input.GetKeyDown(KeyCode.A))
  253.         {
  254.             for (int i=0; i < lengthOfWordToGuess; i++)
  255.             {
  256.                 if (!lettersGuessed [i])
  257.                 {
  258.                     if (lettersToGuess [i] == 'A')
  259.                     {
  260.                         lettersGuessed [i] = true;
  261.                         GameObject.Find("letter"+(i+1)).GetComponent<TMP_Text>().text = "A";
  262.                     }
  263.                 }
  264.             }
  265.         }
  266.     }
  267.  
  268.     public void CheckKeyboard2()
  269.     {
  270.         if (Input.anyKeyDown)
  271.         {
  272.             char letterPressed = Input.inputString.ToCharArray () [0];
  273.             int letterPressedAsInt = System.Convert.ToInt32 (letterPressed);
  274.  
  275.             if (letterPressedAsInt >= 97 && letterPressed <= 122)
  276.             {
  277.                 for (int i=0; i < lengthOfWordToGuess; i++)
  278.                 {
  279.                     if (!lettersGuessed [i])
  280.                     {
  281.                         letterPressed = System.Char.ToUpper (letterPressed);
  282.  
  283.                         if (lettersToGuess [i] == letterPressed)
  284.                         {
  285.                             lettersGuessed [i] = true;
  286.                             wrongLetterGuessed = false;
  287.                             GameObject.Find("letter"+(i+1)).GetComponent<TMP_Text>().text = letterPressed.ToString();
  288.                         }
  289.                         else if (lettersToGuess [i] != letterPressed)
  290.                         {
  291.                             lettersGuessed [i] = false;
  292.                             wrongLetterGuessed = true;
  293.                             letterGuessed01.text = letterPressed.ToString();
  294.                         }
  295.                     }
  296.                     // else
  297.                     // {
  298.                     //     //successPanel.SetActive(true);
  299.                     //     wordGuessed = true;
  300.                     // }
  301.                     if (lettersToGuess.Length == 0)
  302.                     {
  303.                         wordGuessed = true;
  304.                     }
  305.                 }
  306.             }
  307.         }
  308.     }
  309.  
  310.     public void CheckKeyboard2a()
  311.     {
  312.         if (Input.anyKeyDown)
  313.         {
  314.             char letterPressed = Input.inputString.ToCharArray () [0];
  315.             int letterPressedAsInt = System.Convert.ToInt32 (letterPressed);
  316.  
  317.             if (letterPressedAsInt >= 97 && letterPressedAsInt <= 122)
  318.             {
  319.                 // Check for the letter inside the word
  320.                 letterPressed = System.Char.ToUpper(letterPressed);
  321.                 if (!wordToGuess.Contains(letterPressed, StringComparison.CurrentCultureIgnoreCase))
  322.                 {
  323.                     wrongLetterGuessed = true;
  324.                     letterGuessed01.text = letterPressed.ToString();
  325.                 }
  326.                 else
  327.                 {
  328.                     for (int i=0; i < wordToGuess.Length; i++)
  329.                     {
  330.                         if (wordToGuess[i] == letterPressed)
  331.                         {
  332.                             // reveal the letter, and increment lettersCorrect
  333.                             GameObject.Find("letter"+(i+1)).GetComponent<TMP_Text>().text = letterPressed.ToString();
  334.                             lettersCorrect++;
  335.                         }
  336.                     }
  337.                 }
  338.  
  339.                 // Now that's all done, let's see if the word is revealed
  340.                 if (lettersCorrect == wordToGuess.Length)
  341.                 {
  342.                     wordGuessed = true;
  343.                 }
  344.             }
  345.         }
  346.     }
  347.  
  348.     public void CheckKeyboard2a1()
  349.     {
  350.         if (Input.anyKeyDown)
  351.         {
  352.             char letterPressed = Input.inputString.ToCharArray () [0];
  353.             int letterPressedAsInt = System.Convert.ToInt32 (letterPressed);
  354.  
  355.             if (letterPressedAsInt >= 97 && letterPressedAsInt <= 122)
  356.             {
  357.                 // Check for the letter inside the word
  358.                 letterPressed = System.Char.ToUpper(letterPressed);
  359.                 if (!wordToGuess.Contains(letterPressed, StringComparison.CurrentCultureIgnoreCase))
  360.                 {
  361.                     wrongLetterGuessed = true;
  362.                     letterGuessed01.text = letterPressed.ToString();
  363.                 }
  364.                 else
  365.                 {
  366.                     for (int i=0; i < wordToGuess.Length; i++)
  367.                     {
  368.                         if (wordToGuess[i] == letterPressed)
  369.                         {
  370.                             if (letterPressed.ToString() != GameObject.Find("letter"+(i+1)).GetComponent<TMP_Text>().text)
  371.                             {
  372.                                 // reveal the letter, and increment lettersCorrect
  373.                                 GameObject.Find("letter"+(i+1)).GetComponent<TMP_Text>().text = letterPressed.ToString();
  374.                                 lettersCorrect++;
  375.                             }
  376.                             else
  377.                             {
  378.                                 lettersCorrect += 0;
  379.                             }
  380.                         }
  381.                     }
  382.                 }
  383.  
  384.                 // Now that's all done, let's see if the word is revealed
  385.                 if (lettersCorrect == wordToGuess.Length)
  386.                 {
  387.                     wordGuessed = true;
  388.                 }
  389.             }
  390.         }
  391.     }
  392.  
  393.     public void CheckKeyboard3()
  394.     {
  395.         if (!string.IsNullOrEmpty(Input.inputString))
  396.         {
  397.             char letterPressed = Input.inputString[0];
  398.             int letterPressedAsInt = System.Convert.ToInt32 (letterPressed);
  399.  
  400.             if (letterPressedAsInt >= 97 && letterPressed <= 122)
  401.             {
  402.                 for (int i=0; i < lengthOfWordToGuess; i++)
  403.                 {
  404.                     if (!lettersGuessed [i])
  405.                     {
  406.                         letterPressed = System.Char.ToUpper (letterPressed);
  407.  
  408.                         if (lettersToGuess [i] == letterPressed)
  409.                         {
  410.                             lettersGuessed [i] = true;
  411.                             wrongLetterGuessed = false;
  412.                             GameObject.Find("letter"+(i+1)).GetComponent<TMP_Text>().text = letterPressed.ToString();
  413.                         }
  414.                         else if (lettersToGuess [i] != letterPressed)
  415.                         {
  416.                             lettersGuessed [i] = false;
  417.                             wrongLetterGuessed = true;
  418.                             letterGuessed01.text = letterPressed.ToString();
  419.                         }
  420.                     }
  421.                     // else
  422.                     // {
  423.                     //     //successPanel.SetActive(true);
  424.                     //     wordGuessed = true;
  425.                     // }
  426.                     if (lettersToGuess == null && lettersToGuess.Length == 0)
  427.                     {
  428.                         wordGuessed = true;
  429.                     }
  430.                 }
  431.             }
  432.         }
  433.     }
  434.  
  435.     public void CheckKeyboard3a()
  436.     {
  437.         if (!string.IsNullOrEmpty(Input.inputString))
  438.         {
  439.             char letterPressed = Input.inputString[0];
  440.             int letterPressedAsInt = System.Convert.ToInt32 (letterPressed);
  441.  
  442.             if (letterPressedAsInt >= 97 && letterPressedAsInt <= 122)
  443.             {
  444.                 // Check for the letter inside the word
  445.                 letterPressed = System.Char.ToUpper(letterPressed);
  446.                 if (!wordToGuess.Contains(letterPressed, StringComparison.CurrentCultureIgnoreCase))
  447.                 {
  448.                     wrongLetterGuessed = true;
  449.                     letterGuessed01.text = letterPressed.ToString();
  450.                 }
  451.                 else
  452.                 {
  453.                     for (int i=0; i < wordToGuess.Length; i++)
  454.                     {
  455.                         if (wordToGuess[i] == letterPressed)
  456.                         {
  457.                             // reveal the letter, and increment lettersCorrect
  458.                             GameObject.Find("letter"+(i+1)).GetComponent<TMP_Text>().text = letterPressed.ToString();
  459.                             lettersCorrect++;
  460.                         }
  461.                     }
  462.                 }
  463.  
  464.                 // Now that's all done, let's see if the word is revealed
  465.                 if (lettersCorrect == wordToGuess.Length)
  466.                 {
  467.                     wordGuessed = true;
  468.                 }
  469.             }
  470.         }
  471.     }
  472.  
  473.     public void CheckKeyboard3a1()
  474.     {
  475.         if (!string.IsNullOrEmpty(Input.inputString))
  476.         {
  477.             char letterPressed = Input.inputString[0];
  478.             int letterPressedAsInt = System.Convert.ToInt32 (letterPressed);
  479.  
  480.             if (letterPressedAsInt >= 97 && letterPressedAsInt <= 122)
  481.             {
  482.                 // Check for the letter inside the word
  483.                 letterPressed = System.Char.ToUpper(letterPressed);
  484.                 if (!wordToGuess.Contains(letterPressed, StringComparison.CurrentCultureIgnoreCase))
  485.                 {
  486.                     wrongLetterGuessed = true;
  487.                     letterGuessed01.text = letterPressed.ToString();
  488.                 }
  489.                 else
  490.                 {
  491.                     for (int i=0; i < wordToGuess.Length; i++)
  492.                     {
  493.                         if (wordToGuess[i] == letterPressed)
  494.                         {
  495.                             if (letterPressed.ToString() != GameObject.Find("letter"+(i+1)).GetComponent<TMP_Text>().text)
  496.                             {
  497.                                 // reveal the letter, and increment lettersCorrect
  498.                                 GameObject.Find("letter"+(i+1)).GetComponent<TMP_Text>().text = letterPressed.ToString();
  499.                                 lettersCorrect++;
  500.                             }
  501.                             else
  502.                             {
  503.                                 lettersCorrect += 0;
  504.                             }
  505.                         }
  506.                     }
  507.                 }
  508.  
  509.                 // Now that's all done, let's see if the word is revealed
  510.                 if (lettersCorrect == wordToGuess.Length)
  511.                 {
  512.                     wordGuessed = true;
  513.                 }
  514.             }
  515.         }
  516.     }
  517.  
  518.     public void StartGame()
  519.     {
  520.         startGamePanel.SetActive(false);
  521.         gamePanel.SetActive(true);
  522.  
  523.         ChooseWord01();
  524.         //InitGame();
  525.         //InitLetters();
  526.     }
  527.  
  528.     public void NextWord()
  529.     {
  530.         successPanel.SetActive(false);
  531.         gamePanel.SetActive(true);
  532.  
  533.         wordToGuess = "";
  534.  
  535.         //guessesLeft = 3;
  536.         timeLeft = 60;
  537.         Time.timeScale = 1.0f;
  538.  
  539.         letterGuessed01.text = "";
  540.         //letterGuessed02.text = "";
  541.         //letterGuessed03.text = "";
  542.  
  543.         hintButton.SetActive(false);
  544.         hintPanel.SetActive(false);
  545.         wordGuessed = false;
  546.  
  547.         wordCounter++;
  548.  
  549.         switch (randomNumber)
  550.         {
  551.             case 0:
  552.                 word0Completed = true;
  553.                 break;
  554.             case 1:
  555.                 word1Completed = true;
  556.                 break;
  557.             case 2:
  558.                 word2Completed = true;
  559.                 break;
  560.             case 3:
  561.                 word3Completed = true;
  562.                 break;
  563.             case 4:
  564.                 word4Completed = true;
  565.                 break;
  566.             case 5:
  567.                 word5Completed = true;
  568.                 break;
  569.             case 6:
  570.                 word6Completed = true;
  571.                 break;
  572.             case 7:
  573.                 word7Completed = true;
  574.                 break;
  575.             case 8:
  576.                 word8Completed = true;
  577.                 break;
  578.             case 9:
  579.                 word9Completed = true;
  580.                 break;
  581.         }
  582.  
  583.         ChooseWord01();
  584.     }
  585.  
  586.     public void RepeatWord()
  587.     {
  588.         failPanel.SetActive(false);
  589.         gamePanel.SetActive(true);
  590.  
  591.         wordToGuess = wordsToGuess [randomNumber];
  592.  
  593.         //guessesLeft = 3;
  594.         timeLeft = 60;
  595.         Time.timeScale = 1.0f;
  596.  
  597.         letterGuessed01.text = "";
  598.         //letterGuessed02.text = "";
  599.         //letterGuessed03.text = "";
  600.  
  601.         hintButton.SetActive(false);
  602.         hintPanel.SetActive(false);
  603.         wordGuessed = false;
  604.  
  605.         InitGame();
  606.         InitLetters();
  607.     }
  608.  
  609.     public void ChooseWord01()
  610.     {
  611.         //int randomNumber = Random.Range (0, wordsToGuess.Length - 1);
  612.         randomNumber = Random.Range (0, wordsToGuess.Length - 1);
  613.         //wordToGuess = wordsToGuess [randomNumber];
  614.         ChooseWord02();
  615.     }
  616.  
  617.     public void ChooseWord02()
  618.     {
  619.         if (randomNumber == 0 && word0Completed == true)
  620.         {
  621.             ChooseWord01();
  622.         }
  623.         if (randomNumber == 1 && word1Completed == true)
  624.         {
  625.             ChooseWord01();
  626.         }
  627.         if (randomNumber == 2 && word2Completed == true)
  628.         {
  629.             ChooseWord01();
  630.         }
  631.         if (randomNumber == 3 && word3Completed == true)
  632.         {
  633.             ChooseWord01();
  634.         }
  635.         if (randomNumber == 4 && word4Completed == true)
  636.         {
  637.             ChooseWord01();
  638.         }
  639.         if (randomNumber == 5 && word5Completed == true)
  640.         {
  641.             ChooseWord01();
  642.         }
  643.         if (randomNumber == 6 && word6Completed == true)
  644.         {
  645.             ChooseWord01();
  646.         }
  647.         if (randomNumber == 7 && word7Completed == true)
  648.         {
  649.             ChooseWord01();
  650.         }
  651.         if (randomNumber == 8 && word8Completed == true)
  652.         {
  653.             ChooseWord01();
  654.         }
  655.         if (randomNumber == 9 && word9Completed == true)
  656.         {
  657.             ChooseWord01();
  658.         }
  659.         else
  660.         {
  661.             wordToGuess = wordsToGuess [randomNumber];
  662.         }
  663.        
  664.         InitGame();
  665.         InitLetters();
  666.     }
  667.  
  668.     public void PausedGame()
  669.     {
  670.         pausedPanel.SetActive(true);
  671.         Time.timeScale = 0f;
  672.     }
  673.  
  674.     public void UnPausedGame()
  675.     {
  676.         pausedPanel.SetActive(false);
  677.         Time.timeScale = 1.0f;
  678.     }
  679.  
  680.     public void FreeHint()
  681.     {
  682.         hintPanel.SetActive(true);
  683.     }
  684.  
  685.     public void ToMainMenu()
  686.     {
  687.         SceneManager.LoadScene("MainMenu");
  688.     }
  689.  
  690.     public IEnumerator StartCountdown(float countdownValue = 60)
  691.     {
  692.         currCountdownValue = countdownValue;
  693.         while (currCountdownValue > 0)
  694.         {
  695.             Debug.Log("Countdown: " + currCountdownValue);
  696.             yield return new WaitForSeconds(1.0f);
  697.             currCountdownValue--;
  698.             timeLeft = (int)currCountdownValue;
  699.         }
  700.     }
  701. }
  702.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement