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);
}
}