javascript - 计算 Scrabble-Java 脚本的分数

标签 javascript

我正在尝试计算单词的拼字游戏分数。但每次我输入一个单词时,它都会返回每个字母关联的数字序列。例如,当我为我的拼字游戏输入 if fox 时,我得到 418。为什么会这样?

const oldScoreKey = {
  1: ['A', 'E', 'I', 'O', 'U', 'L', 'N', 'R', 'S', 'T'],
  2: ['D', 'G'],
  3: ['B', 'C', 'M', 'P'],
  4: ['F', 'H', 'V', 'W', 'Y'],
  5: ['K'],
  8: ['J', 'X'],
  10: ['Q', 'Z']
};


function transform(oldScoreKey){
  const newScoreKey = {};
  for (const [letterValue, letterArr] of Object.entries(oldScoreKey)) {
    for (const letter of letterArr) {
      newScoreKey[letter.toLowerCase()] = letterValue;
    }
  }
  return newScoreKey;
}

console.log(transform(oldScoreKey));


// Code your initialPrompt function here:
const input = require('readline-sync');

console.log("Using algorithm: Scrabble");

let word = (input.question("Enter a simple word please: "));
const alphabet = "abcdefghijklmnopqrstuvwxyz";


function simpleScore() {
  let score = 0

  for(let letter of word.toLowerCase()){
    if (alphabet.includes(letter))
    score += 1;
  }
  return score;
}

console.log(simpleScore())


let letter = (input.question("Enter a scrabble word please: "));
letter = letter.toLowerCase();


let newAlphabet = { a: '1',
  e: '1',
  i: '1',
  o: '1',
  u: '1',
  l: '1',
  n: '1',
  r: '1',
  s: '1',
  t: '1',
  d: '2',
  g: '2',
  b: '3',
  c: '3',
  m: '3',
  p: '3',
  f: '4',
  h: '4',
  v: '4',
  w: '4',
  y: '4',
  k: '5',
  j: '8',
  x: '8',
  q: '10',
  z: '10' }
function scrabbleScore() {
let sum = 0
let i = 0
let score = 0
for (i = 0; i < word.length; i++) {
    letter = word[i];
    sum += newAlphabet[letter];
}
return (sum*1);
}
console.log(scrabbleScore())

当拼字游戏分数打印出来时,我试图得到 418 的总数,这等于 13 分。

最佳答案

分数应该是数字。这是表示此操作的简单方法。

const newAlphabet = {
  a: 1,
  e: 1,
  i: 1,
  o: 1,
  u: 1,
  l: 1,
  n: 1,
  r: 1,
  s: 1,
  t: 1,
  d: 2,
  g: 2,
  b: 3,
  c: 3,
  m: 3,
  p: 3,
  f: 4,
  h: 4,
  v: 4,
  w: 4,
  y: 4,
  k: 5,
  j: 8,
  x: 8,
  q: 10,
  z: 10,
};

const scrabbleScore = word =>
  word
    .split('')
    .map(letter => newAlphabet[letter])
    .reduce((a, b) => a + b);

关于javascript - 计算 Scrabble-Java 脚本的分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58241255/

相关文章:

c# - WebSocket 无法发送大数据

javascript - 使用 Javascript/Jquery 重写超链接

javascript - 淡出背景图像改变?

javascript - 在 JavaScript 中使用回调从 Web-SQL 数据库返回结果集

javascript - 如何动态调用 JavaScript 对象的方法

JavaScript:在 IE7 中设置 div 标签的样式属性

javascript - Backbone.js View 是否需要 jQuery 或 Zepto? (或 : why am I getting “Uncaught TypeError: undefined is not a function” ? )

javascript - 当用户按下回车键时,是否有另一种方法在移动 Safari(在 iOS 上)上触发自动更正/自动完成?

JavaScript 匹配数组和拼接但失败

Javascript - 分配函数返回的引用值