Advertisement
Btwonu

Color-game, old app.js

May 8th, 2020
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //=============
  2. //FUNCTIONS
  3. //=============
  4. function colorPicked() {
  5.   let random = Math.floor( Math.random() * colors.length );
  6.   return colors[random];
  7. }
  8.  
  9. function changeColors(color) {
  10.   for (let i = 0; i < squares.length; i++) {
  11.     squares[i].style.backgroundColor = color;
  12.   }
  13. }
  14.  
  15. function generateRandomColors(num) {
  16.   let arr = [];
  17.  
  18.   for (let i = 0; i < num; i++) {
  19.     //Generating random RGB string
  20.     let rgbString = `rgb(${Math.floor(Math.random() * 256)}, ${Math.floor(Math.random() * 256)}, ${Math.floor(Math.random() * 256)})`;
  21.     arr.push(rgbString)
  22.   }
  23.   return arr;
  24. }
  25.  
  26. function reset() {
  27.   colors = generateRandomColors(numSquares);
  28.   pickedColor = colorPicked();
  29.   colorDisplay.textContent = pickedColor;
  30.  
  31.   for (let i = 0; i < squares.length; i++) {
  32.     if (colors[i]) {
  33.       squares[i].style.backgroundColor = colors[i];
  34.       squares[i].style.display = 'block';
  35.     } else {
  36.       squares[i].style.display = 'none';
  37.     }
  38.   }  
  39.   h1.style.background = 'steelblue';
  40.   if (resetBtn.textContent = 'Play again') {
  41.     resetBtn.textContent = 'New colors';
  42.   }
  43.  
  44.   clickedColorRgb.textContent = '';
  45.   clickedColorHex.textContent = '';
  46.   messageDisplay.textContent = '';
  47. }
  48.  
  49. //=============
  50. //DOM SELECTORS
  51. //=============
  52. let squares = document.querySelectorAll('.square');
  53. let colorDisplay = document.querySelector('#color-display');
  54. let messageDisplay = document.querySelector('#message');
  55. let h1 = document.querySelector('h1');
  56. let resetBtn = document.querySelector('#reset');
  57. let clickedColorRgb =  document.querySelector('.clicked-color.rgb');
  58. let clickedColorHex = document.querySelector('.clicked-color.hex');
  59. // let easyBtn = document.querySelector('#easy');
  60. // let hardBtn = document.querySelector('#hard');
  61. let modeButtons = document.querySelectorAll('.mode');
  62.  
  63. //=============
  64. //VARIABLES
  65. //=============
  66. let numSquares = 6;
  67. let colors = generateRandomColors(numSquares);
  68. let pickedColor = colorPicked();
  69.  
  70. //=============
  71. //LOGIC
  72. //=============
  73. colorDisplay.textContent = pickedColor;
  74.  
  75. for (let i = 0; i < squares.length; i++) {
  76.   //Initial colors
  77.    squares[i].style.backgroundColor = colors[i];
  78.  
  79.   //Event listeners
  80.   squares[i].addEventListener('click', function() {
  81.     let clickedColor = this.style.backgroundColor;
  82.  
  83.     if (clickedColor === pickedColor) {
  84.       messageDisplay.textContent = 'Correct!';
  85.       changeColors(clickedColor);
  86.       h1.style.background = clickedColor;
  87.       resetBtn.textContent = 'Play again';
  88.     } else {
  89.       this.style.background = '#232323';
  90.       messageDisplay.textContent = 'Try again';
  91.     }
  92.    
  93.     //Added clicked color RGB/Hex values below, when clicked
  94.     clickedColorRgb.textContent = `RGB value: ${clickedColor}`;
  95.     clickedColorRgb.style.backgroundColor = `${clickedColor}`
  96.     clickedColorHex.textContent = `Hex value: ${rgbToHex(clickedColor)}`;
  97.     clickedColorHex.style.backgroundColor = `${rgbToHex(clickedColor)}`
  98.   });
  99. }
  100. //Easy and Hard buttons
  101. for (let i = 0; i < modeButtons.length; i++) {
  102.   modeButtons[i].addEventListener('click', function() {
  103.     modeButtons[0].classList.remove('selected');
  104.     modeButtons[1].classList.remove('selected');
  105.     this.classList.add('selected');
  106.  
  107.     if (this.textContent === 'Easy') {
  108.       numSquares = 3;
  109.     } else if (this.textContent === 'Hard') {
  110.       numSquares = 6;
  111.     }
  112.  
  113.     reset();
  114.   });
  115. }
  116. //Reset
  117. resetBtn.addEventListener('click', function() {
  118.   reset()
  119. });
  120.  
  121. //RGB and Hex string `RGB: ${rgbVar}, Hex: ${rgbToHex(rgbVar)}`
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement