问题标签 [design-decisions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
231 浏览

javascript - Javascript - 距离(以像素为单位) - 决定

我有一个简单的 javascript 动画,其中两个牛仔(iamges)根据随机间隔数相互“比赛”。

我不知道该怎么做是让脚本决定谁是赢家,这意味着如果牛仔首先达到预定义的距离,脚本就会知道并显示谁赢了的警报。

这是显示示例的屏幕截图:

在此处输入图像描述

这是我到目前为止的代码:http: //pastebin.com/Cmt4N8c9

能给我一些方向吗?

谢谢,布赖恩

0 投票
2 回答
4943 浏览

c# - 为什么 System.Drawing Rectangle、Point、Size 等是可变结构而不是类?

微软决定制作这些结构是有原因的吗?

这三个都是可变的。如果它们是不可变的,或者它们是引用类型,我会发现它们更容易处理。

如果有理由它们必须是结构,为什么它们是可变的?

0 投票
1 回答
4478 浏览

c# - 带有语句体的 lambda 表达式不能转换为表达式树

StackOverlow 上有几个关于语句体表达式的问题。我只是想知道为什么在 C# 中不可能做到这一点?(为什么它没有在编译器中实现的复杂性在哪里?)

@eric-lippert对 memberof/infoof有很好的解释。语句体表达式转换有类似的解释吗?

更新(基于乔恩斯基特的回答):

我的用例是在运行时轻松转换 C# 代码转换的可能性。我只是想知道大量的努力在哪里?编译器应该已经在编译过程中构建了一些类似的表达式树——或者是否存在像 infoof 这样的隐藏复杂性?

0 投票
1 回答
1935 浏览

java - 问答游戏 - IF 语句和可能的 Else If?

我对此很陌生,想知道是否有人可以帮助我。我希望代码能够在某些问题得到答案后停止提问。我让它在鹦鹉和鸸鹋等第一个上工作,但我似乎无法添加其他人。请告诉我我做错了什么。

到目前为止的代码是:

0 投票
2 回答
819 浏览

artificial-intelligence - 如何着手创建一个序言程序,该程序可以向后工作以确定达到目标所需的步骤

我不确定我到底想问什么。我希望能够制作一些可以轻松获取初始和最终状态以及一些规则的代码,并确定到达那里的路径/选择。

所以想想,例如,在星际争霸这样的游戏中。要建造工厂,我需要已经建造了一个兵营和一个指挥中心。所以如果我什么都没有,我想要一个工厂,我可能会说->指挥中心->兵营->工厂。每件事都需要时间和资源,这应该在路径中加以注意和考虑。如果我希望我的工厂在 5 分钟内完成,那么如果我希望在 10 分钟内完成,那么选择会更少。

此外,引擎应该能够计算可用资源并有效利用它们。这三座建筑总共可能花费 600 矿物,但引擎应该计划指挥中心,当它有 200 时(或 w/e 它成本)。

这最终将具有类似于 10 名海军陆战队 @ 5 分钟、步兵武器升级在 6:30、30 名海军陆战队员在 10 分钟、Factory @ 11 等的要求......

那么,我该如何去做这样的事情呢?我的第一个想法是使用一些程序语言并从头开始做出所有决定。我可以模拟系统和分支并做出不同的选择。最终,一些选择很快就会使以后无法实现目标(如果我建造 20 个补给站,我很可能无法按时建造那个工厂。)

那么我认为功能语言不是为此而设计的吗?我试图写一些序言,但我在时间和距离计算等问题上遇到了麻烦。而且我不确定返回“计划”的最佳方式。

我在想我可以写:

这就是我感到困惑的地方。我不知道如何构造这个函数和一个查询来得到任何接近我想要的东西。我将不得不以某种方式考虑在建造过程中收集矿物的速度以及其他可能的额外黄金路径。如果我在 10 分钟内只想要 1 名海军陆战队员,我希望引擎生成很多计划,因为有很多方法可以在 10 分钟内以 1 名海军陆战队员结束(也许在这么多之后将其切断,不知道你是如何在序言中做到这一点的) )。

我正在寻找有关如何继续这条道路的建议或有关其他选择的建议。我找不到比河内塔和 AI 祖先例子更有用的东西,所以即使是一些解释如何使用 prolog 做真实事情的好文章也会令人惊叹。如果我能以某种有用的方式设置这些规则,除了像所有河内塔示例那样写入标准输出之外,我如何获得“计划”序言(解决查询的方法)?还是这是首选方式?

我的另一个问题是,我的主要代码是 ruby​​(可能还有其他语言),与 prolog 通信的选项是从 ruby​​ 中调用我的 prolog 程序,从 prolog 中访问虚拟文件系统,或者某种数据库结构(不太可能)。我正在使用 SWI-Prolog atm,在 Ruby 中以程序方式执行此操作会更好,还是以 prolog 或 haskall 之类的功能语言构建它是否值得额外努力集成?

如果不清楚,我很抱歉,我很感激任何帮助的尝试,我会重新措辞不清楚的事情。

0 投票
1 回答
94 浏览

sql - 以数字方式存储课程笔记/中等大小文本的最佳方式 - 必须:高效、易于在网络上显示、灵活

我正在建立我的个人网站,我想在上面存储我的课程笔记。我的课程笔记目前在纸上,所以我将把它们打出来。我正在考虑将我的每门课程存储在其自己的 XML 文件中,其结构如下:破折号代表标签,忽略数字。

我的网站想法是,如果用户单击课程 1 链接,那么我的程序将找到 XML 解析它并显示其内容。

使用 XML 是一个好的设计决策吗?还是我可以做得更好?如果 XML 是一个好的设计决策:我应该保持当前每门课程 1 个 XML 的设计,还是为课程设置一个文件夹并为每个主题设置 1 个 XML?除了 XML,我还有什么其他选择?

希望这不是太主观...

0 投票
2 回答
1256 浏览

javascript - 单页应用程序 - 我应该在服务器端使用 MVC 框架吗?

我正在开发一个 SPA 应用程序,但我无法决定是否使用服务器端 MVC 框架。

我选择了 AngularJS 作为客户端框架。我在想我可以在服务器端使用 Symfony 2,但我也考虑过使用纯面向 OOP 的 PHP。像这样的东西 - 数据库类,模型类(用户,UserDbManager,...)。我会使用 Slim 之类的东西来创建 REST API。

基本上两次编写相同的代码似乎适得其反,一次在客户端,一次在服务器端,如果我可以使用服务器来提供数据库中的数据。

如果有人做过类似的决定,我会很高兴,如果你能分享你的想法和提示。

0 投票
1 回答
334 浏览

c++ - 当唯一的派生类没有添加额外的变量时省略虚拟析构函数

我有一个 Literal 类,它实际上只是 (const int) 的包装器。我想要第二个类 PositiveLiteral,它继承自 Literal,但有一个构造函数断言其值为正数。

通过这种方式,期望正字面量的函数可以简单地将 PositiveLiteral 作为参数。然后我不需要在我的代码中放置明确的断言,此外,如果这些断言会失败,我可以立即看到原因。

除了在这种情况下,我不希望以其他方式从 Literal 继承。然而,因为有继承,我必须给 Literal 一个虚拟析构函数以避免未定义的行为,这看起来很愚蠢,因为 PositiveLiteral 没有与其相关的额外信息,而 Literal 没有。这只是一种无需明确声明即可维护断言的方法。

在应该是一个简单的包装类中,不需要虚拟方法来完成相同任务的另一种方法是什么?

0 投票
7 回答
285 浏览

c# - 将引用类型声明为 const 有用吗?

为什么有人会这样做:

Eric Lippert 说功能在默认情况下是未实现的,每一种可能性都会增加测试、维护等方面的工作量……为什么需要将引用类型的空值作为常量?

0 投票
3 回答
3036 浏览

ruby - 为什么是 Array#slice 和 Array#slice!表现不同?

我不明白为什么在 Ruby 中, Array#slice其行为与andArray#slice!不同(其中一个在新数组上返回结果,而另一个在当前对象上工作)。Array#sortArray#sort!

使用sort第一个(没有 bang),返回当前 Array 的排序副本,并对当前 Array 进行sort!排序。

slice,返回一个指定范围的数组,并从当前对象中slice! 删除指定范围。

这样做的原因是什么,Array#slice!而不是使当前对象成为具有指定范围的数组?

例子:

输出:

http://ideone.com/77xFva