首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将已完成的总字数相加

将已完成的总字数相加
EN

Stack Overflow用户
提问于 2012-09-17 19:00:50
回答 1查看 111关注 0票数 0

在我的拼写游戏中,有3-6个不同大小的单词。一旦在网格中完成了一定数量的单词,网格的其余部分就会消失。我希望它将所有的单词大小变量加在一起,而不是只考虑其中一个。例如,一旦两个单词完成,我现在就可以fadeOut了。问题是,只有当两个、三个字母的单词完整或两个四个字母的单词完整时,它才会消失。

代码语言:javascript
复制
var completeLetters = $('.wordglow2').length;
var threeLetter = (completeLetters / 3);
var fourLetter = (completeLetters / 4);
var fiveLetter = (completeLetters / 5);
var sixLetter = (completeLetters / 6);


if (threeLetter == 2) {
    $('table').fadeOut(2000);
}
if (fourLetter == 2) {
    $('table').fadeOut(2000);
}
if (fiveLetter == 2) {
    $('table').fadeOut(2000);
}
if (sixLetter== 2) {
    $('table').fadeOut(2000);
}

有没有一种方法可以让一个变量组合所有的单词,然后为此创建一个if语句?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-17 22:09:33

首先-我建议你这样做是错误的-你是从游戏的HTML/CSS表示来确定游戏状态的。我建议您创建一个表示游戏状态的对象,然后使用该对象来确定需要对HTML/CSS表示进行的操作。这也将使你在这里尝试做的事情变得容易得多。

例如,你最终可能会说这样的话:

代码语言:javascript
复制
if (gamestate.wordscomplete == 3) {//fade board//}

...which比钻研HTML语言更令人愉悦。但我离题了..。

好的,当wordglow2类正确时,它会被添加到一个字母中。网格中的每个<tr>都可以包含一个单词。所以..。

代码语言:javascript
复制
function gamestate() {
  var words = []; //new array to store completed word counts
  var wordscompleted = 0; //overall word count
  //create an entry for 3,4,5, and 6 letter words
  for (var wc = 3; wc <=6 ; wc++) {words[wc] = 0;}

  $('table.tablestyle > tr').each( function(i,el) {
    // get the number of complete letters in this row
    var wordlength = $(el).find('.wordglow2').length; 
    if (wordlength >=3 && wordlength <= 6) { 
      // a completed word should not be outside of this range anyway
      words[wordlength]++; //increment the appropriate counter
      wordscompleted++; //increment overall counter
    }
  });
  //return a gamestate object 
  return { wordscompleted : wordscompleted , words : words };
}; 

上面的函数将查看游戏表中的每一行,并计算wordglow2单元的数量。如果这在3和6之间,则递增总计数器,并且还递增每个字长度的计数器。

它可以按如下方式使用:

代码语言:javascript
复制
var gs = gamestate();

gs.wordscompleted //total words completed
gs.words[3]       //total 3-letter words completed
gs.words[4]       //total 4-letter words completed etc etc

更新

http://jsfiddle.net/HZX6k/6/

这个小提琴只是使用一个全局对象来跟踪游戏状态,在它运行的过程中递增计数和3,4,5,6个字母计数单词的计数。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12457887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档