我的任务是在javascript中创建一个保龄球得分计算器。
我是javascript的新手,所以我不知道从哪里开始。我可以使用这个特定项目的简单例子作为参考吗?
我一直在寻找那些没有多大意义的冗长而复杂的代码......
答案 0 :(得分:1)
提出的问题有点模糊,因为目前还不清楚你正在研究什么平台,是否有任何类型的预期用户界面或只有逻辑,并且有关此类计算器的参考可能有助于简化答案。
作为坚持代码的一般经验法则,我建议从构建项目开始。布置任何需要以后工作的东西。 您是否需要更多的方法/功能?如果是这样,布置所需的结构。 作为一般例子,我创建了一个:
╔════════════════╦═══════════════════════════════════════════════════════════════════╗
║ File ║ Purpose ║
╠════════════════╬═══════════════════════════════════════════════════════════════════╣
║ calc.html ║ Main view (if implemented as html). May have a CSS attached to it.║
║ calcView.js ║ JS view controller. To be used for any logic related to views. ║
║ calcMain.js ║ Main JS calculator implementation, to separate calculation logic. ║
║ ops.html(...) ║ Optional options page, other related extras, and so on. ║
╚════════════════╩═══════════════════════════════════════════════════════════════════╝
首先创建空文件,然后开始实现您确定需要的所有内容。在整个过程中,很容易弄清楚还需要什么。
我建议从主JS开始,实际上是第一步写作:
function mainCalculation(input){
return output;
}
然后填写。 在这个过程中,试着找出应该分离到自己的方法的内容,以及它的一部分。
这可能会引导您:
function parseRequest(inputRequestObject){
// TODO
return outputRequestData;
}
function calcScore(inputRequestData){
// TODO
return outputAsINT;
}
function generateResponseObject(intScore){
// TODO
return outputObject;
}
function handleRequest(input){
// This is your main flow of handling a single calculation.
// Try to include the minimal amount of logic possible here.
var parsedInput = parseRequest(input);
var intScore = calcScore(parsedInput);
var output = generateResponseObject(intScore);
// At this point your response might include extra info, and not just intScore.
// Example: the original request data, or error data, if the client needs it.
return output;
}
完成此模型后,您可以成功返回结果,尝试设计UI(如果需要),并使用视图控制器计算两者之间的连接。
当你达到这一点时,你将确切地知道如何继续使用额外的东西,例如选项页面,选项控制器等等。
最后一个提示: 您可以尝试寻找更一般的示例,因为您的项目非常具体。 例如,选中this example以创建Javscript计算器。我不喜欢使用的格式,但作为基本指南,它还不错。
如果您仍然觉得有必要,请查看优秀的W3Schools JavaScript Tutorial,非常适合初学者,也许可以考虑查看JS Examples page中的相关示例。
祝你好运!答案 1 :(得分:-1)
以下是您可以查看的示例。这使用提供的游戏字符串表示来计算得分。
bowlingScore('11 11 11 11 11 11 11 11 11 11'); // 20
SELECT CONV('b3c935bb3667c964db1381db72fd8c897023879b19ab42e937839983cece465d18b719b8a37059ead4152298396f78743aa48245d1d80b899d19bd4e8217c963a187e97d028726c2 ',16,2);
您可以在此处找到相同的代码: bowlingScoreCalculator.js