https://script.google.com/home/projects/1Np6F1VOgWiph580d3HJXPzlpqh2Ib8fmVULD9Vdys_hw29VYZ2HNAkOd/edit

// ヒットとブローの場合、背景色を変える
function changeColor1() {

  // テンプレート
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // randomNumberは、A1セルから取得した4桁の正答
  var randomNumber = sheet.getRange('A1').getValue().toString();

  // userInputは、ユーザーの入力した4桁の回答(B3 から E3)
  var userInput = sheet.getRange('B3:E3').getValues()[0].map(String).join('');

  // ヒットとブローの判定
  var hitPositions = []; // ヒットした位置を記録する配列
  var blowPositions = []; // ブローした位置を記録する配列

   for (var i = 0; i < 4; i++) { // 回答と正答の数字を一つずつ比べるfor文
    if (userInput[i] === randomNumber[i]) {
      hitPositions.push(i); 
      // 数字の種類と位置が何桁目で一致したかpush()で記録
    
    } else if (randomNumber.includes(userInput[i])) {
      blowPositions.push(i);
      // 数字の種類が一致したらpush()で記録
    }

  // 判定結果をシートに反映
  // ヒットしたセルを緑色に
  hitPositions.forEach(function(pos) {
    sheet.getRange(3, pos + 2).setBackground('green'); // B3からE3のセルに対応
  });
  
  // ブローしたセルを黄色に
  blowPositions.forEach(function(pos) {
    sheet.getRange(3, pos + 2).setBackground('yellow'); // B3からE3のセルに対応
  });
  
  // 結果をログに出力
  Logger.log('ヒット: ' + hitPositions.length + ', ブロー: ' + blowPositions.length);
  }
}

// 2回目でヒットとブローの場合、背景色を変える
function changeColor2() {

  // テンプレート
   var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // randomNumberは、A1セルから取得した4桁の正答
   var randomNumber = sheet.getRange('A1').getValue().toString();

  // userInputは、ユーザーの入力した4桁の回答(B4 から E4)
  var userInput = sheet.getRange('B4:E4').getValues()[0].map(String).join('');

  // ヒットとブローの判定
  var hitPositions = []; // ヒットした位置を記録する配列
  var blowPositions = []; // ブローした位置を記録する配列

   for (var i = 0; i < 4; i++) { // 回答と正答の数字を一つずつ比べるfor文
    if (userInput[i] === randomNumber[i]) {
      hitPositions.push(i); 
      // 数字の種類と位置が何桁目で一致したかpush()で記録
    
    } else if (randomNumber.includes(userInput[i])) {
      blowPositions.push(i);
      // 数字の種類が一致したらpush()で記録
    }

  // 判定結果をシートに反映
  // ヒットしたセルを緑色に
  hitPositions.forEach(function(pos) {
    sheet.getRange(4, pos + 2).setBackground('green'); // B4からE4のセルに対応
  });
  
  // ブローしたセルを黄色に
  blowPositions.forEach(function(pos) {
    sheet.getRange(4, pos + 2).setBackground('yellow'); // B4からE4のセルに対応
  });
  
  // 結果をログに出力
  Logger.log('ヒット: ' + hitPositions.length + ', ブロー: ' + blowPositions.length);
  }
}

// 3回目でヒットとブローの場合、背景色を変える
function changeColor3() {

  // テンプレート
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // randomNumberは、A1セルから取得した4桁の正答
  var randomNumber = sheet.getRange('A1').getValue().toString();

  // userInputは、ユーザーの入力した4桁の回答(B5 から E5)
  var userInput = sheet.getRange('B5:E5').getValues()[0].map(String).join('');

  // ヒットとブローの判定
  var hitPositions = []; // ヒットした位置を記録する配列
  var blowPositions = []; // ブローした位置を記録する配列

   for (var i = 0; i < 4; i++) { // 回答と正答の数字を一つずつ比べるfor文
    if (userInput[i] === randomNumber[i]) {
      hitPositions.push(i); 
      // 数字の種類と位置が何桁目で一致したかpush()で記録
    
    } else if (randomNumber.includes(userInput[i])) {
      blowPositions.push(i);
      // 数字の種類が一致したらpush()で記録
    }

  // 判定結果をシートに反映
  // ヒットしたセルを緑色に
  hitPositions.forEach(function(pos) {
    sheet.getRange(5, pos + 2).setBackground('green'); // B5からE5のセルに対応
  });
  
  // ブローしたセルを黄色に
  blowPositions.forEach(function(pos) {
    sheet.getRange(5, pos + 2).setBackground('yellow'); // B5からE5のセルに対応
  });
  
  // 結果をログに出力
  Logger.log('ヒット: ' + hitPositions.length + ', ブロー: ' + blowPositions.length);
  }
}

// 4回目でヒットとブローの場合、背景色を変える
function changeColor4() {

  // テンプレート
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // randomNumberは、A1セルから取得した4桁の正答
  var randomNumber = sheet.getRange('A1').getValue().toString();

  // userInputは、ユーザーの入力した4桁の回答(B6 から E6)
  var userInput = sheet.getRange('B6:E6').getValues()[0].map(String).join('');

  // ヒットとブローの判定
  var hitPositions = []; // ヒットした位置を記録する配列
  var blowPositions = []; // ブローした位置を記録する配列

   for (var i = 0; i < 4; i++) { // 回答と正答の数字を一つずつ比べるfor文
    if (userInput[i] === randomNumber[i]) {
      hitPositions.push(i); 
      // 数字の種類と位置が何桁目で一致したかpush()で記録
    
    } else if (randomNumber.includes(userInput[i])) {
      blowPositions.push(i);
      // 数字の種類が一致したらpush()で記録
    }

  // 判定結果をシートに反映
  // ヒットしたセルを緑色に
  hitPositions.forEach(function(pos) {
    sheet.getRange(6, pos + 2).setBackground('green'); // B6からE6のセルに対応
  });
  
  // ブローしたセルを黄色に
  blowPositions.forEach(function(pos) {
    sheet.getRange(6, pos + 2).setBackground('yellow'); // B6からE6のセルに対応
  });
  
  // 結果をログに出力
  Logger.log('ヒット: ' + hitPositions.length + ', ブロー: ' + blowPositions.length);
  }
}

// 5回目でヒットとブローの場合、背景色を変える
function changeColor5() {

  // テンプレート
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // randomNumberは、A1セルから取得した4桁の正答
  var randomNumber = sheet.getRange('A1').getValue().toString();

  // userInputは、ユーザーの入力した4桁の回答(B7 から E7)
  var userInput = sheet.getRange('B7:E7').getValues()[0].map(String).join('');

  // ヒットとブローの判定
  var hitPositions = []; // ヒットした位置を記録する配列
  var blowPositions = []; // ブローした位置を記録する配列

   for (var i = 0; i < 4; i++) { // 回答と正答の数字を一つずつ比べるfor文
    if (userInput[i] === randomNumber[i]) {
      hitPositions.push(i); 
      // 数字の種類と位置が何桁目で一致したかpush()で記録
    
    } else if (randomNumber.includes(userInput[i])) {
      blowPositions.push(i);
      // 数字の種類が一致したらpush()で記録
    }

  // 判定結果をシートに反映
  // ヒットしたセルを緑色に
  hitPositions.forEach(function(pos) {
    sheet.getRange(7, pos + 2).setBackground('green'); // B7からE7のセルに対応
  });
  
  // ブローしたセルを黄色に
  blowPositions.forEach(function(pos) {
    sheet.getRange(7, pos + 2).setBackground('yellow'); // B7からE7のセルに対応
  });
  
  // 結果をログに出力
  Logger.log('ヒット: ' + hitPositions.length + ', ブロー: ' + blowPositions.length);
  }
}