我正在将俄罗斯方块作为一个有趣的侧面项目(不是家庭作业),并希望实现AI,以便计算机可以自己玩.我听说这样做的方法是使用BFS搜索可用的位置,然后创建最合理的放置位置的总分...
但我无法理解BFS和DFS算法.我学得最好的方法是把它画出来......我的图纸是否正确?


谢谢!
我正在尝试将中文单词作为键加载,将它们的英文翻译作为数据库中的值加载到php数组中,以便我可以在JavaScript的客户端使用它们.所以我将PHP密钥:值对加载到JavaScript数组中,并尝试将结果输出为键值对,如下所示:
stuff : Ni, You
stuff : Ta, Him or Her
stuff : Wo, I
Run Code Online (Sandbox Code Playgroud)
中文和英文单词加载在关系数据库中.
PHP:
$wordsArray = array();
while ($row = $sql->fetch_assoc()) {
$wordsArray[$row['chinese']] = $row['english'];
}
Run Code Online (Sandbox Code Playgroud)
Javascript:这里我希望$ .each将键输出为字符串,而不是数字索引.所以当我尝试var words = [<?php echo '"'.implode('","', $wordsArray).'"' ?>];作为阵列时,我得到了:
stuff : 0, You
stuff : 1, Him or Her
stuff : 2, I
Run Code Online (Sandbox Code Playgroud)
当我真的在寻找:
stuff : Ni, You
stuff : Ta, Him or Her
stuff : Wo, I
Run Code Online (Sandbox Code Playgroud)
所以我改成words了一个对象,以便$.each可以将键输出为字符串:
var words = {<?php …Run Code Online (Sandbox Code Playgroud) 我需要使用Google Analytics测试一些自定义触发事件.我想在当地环境中进行测试.
我使用带有服务器名称的apache设置了我的测试站点: my-ga-test.localhost/
根据你能在本地主机地址上测试谷歌分析吗?和谷歌分析文档,我能够调整我的GA代码使用:
ga('create', 'UA-XXXX-Y', {
'cookieDomain': 'none'
});
Run Code Online (Sandbox Code Playgroud)
我尝试设置一个新帐户来获取此网站的跟踪ID,但我收到以下错误:
URL以无效的顶级域名结尾

如何使用localhost域生成代码,以便我可以更改跟踪ID代码以放在我的localhost上?
我正在为新的律师事务所创建一个新的网站.
我按照Google API嵌入了地图.我添加了他们的地址,但想将公司的名称添加到地图中...您可以在地图中看到,它不会捕获名称:
<iframe width="600" height="450" frameborder="0" style="border:0" src="https://www.google.com/maps/embed/v1/place?key=myapikey&q=883%20Farmington%20Avenue%2C%20Berlin%2C%20CT%2006037%2C%20United%20States"></iframe>
Run Code Online (Sandbox Code Playgroud)

所以,我尝试在iframe中的地址前添加一个名称:
q=Jill+Levin+Law,address here...
但我猜这个关键词会Levin选择匹配的公司,Soulsby & Levin, LLC...即使我没有改变地址
<iframe width="600" height="450" frameborder="0" style="border:0" src="https://www.google.com/maps/embed/v1/place?key=myapikey&q=Jill+Levin+Law,883%20Farmington%20Avenue%2C%20Berlin%2C%20CT%2006037%2C%20United%20States"></iframe>
Run Code Online (Sandbox Code Playgroud)

即使Google API本身也会根据关键字选择错误的API:

我如何能:
我有以下数据框架,并希望:
monthQTY_SOLD和NET_AMT每个独特UPC_ID(每月)我想我能做到这一点的方法是1:创建一个month聚合列D_DATES,再总结QTY_SOLD的UPC_ID.
脚本:
# Convert date to date time object
df['D_DATE'] = pd.to_datetime(df['D_DATE'])
# Create aggregated months column
df['month'] = df['D_DATE'].apply(dt.date.strftime, args=('%Y.%m',))
# Group by month and sum up quantity sold by UPC_ID
df = df.groupby(['month', 'UPC_ID'])['QTY_SOLD'].sum()
Run Code Online (Sandbox Code Playgroud)
当前数据框:
UPC_ID | UPC_DSC | D_DATE | QTY_SOLD | NET_AMT
----------------------------------------------
111 desc1 2/26/2017 2 10 (2 x $5)
222 desc2 2/26/2017 3 15
333 …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个逻辑理解与样本实现的想法,采取如下这样的tilemap:
http://thorsummoner.github.io/old-html-tabletop-test/pallete/tilesets/fullmap/scbw_tiles.png
并以这样的逻辑方式呈现:
http://thorsummoner.github.io/old-html-tabletop-test/
我看到所有的瓷砖都在那里,但我不明白它们是如何以形成形状的方式放置的.
到目前为止,我对渲染图块的理解很简单,而且非常手动.循环遍历地图数组,其中有数字(1,2,3,无论如何),渲染指定的图块.
var mapArray = [
[0, 0, 0, 0 ,0],
[0, 1, 0, 0 ,0],
[0, 0, 0, 0 ,0],
[0, 0, 0, 0 ,0],
[0, 0, 1, 1 ,0]
];
function drawMap() {
background = new createjs.Container();
for (var y = 0; y < mapArray.length; y++) {
for (var x = 0; x < mapArray[y].length; x++) {
if (parseInt(mapArray[y][x]) == 0) {
var tile = new createjs.Bitmap('images/tile.png');
}
if (parseInt(mapArray[y][x]) == 1) {
var …Run Code Online (Sandbox Code Playgroud) 在服务器start(node index.js)上,我的GraphQL NodeJS服务器出现以下错误:
错误:Query.payment(data :)参数类型必须是输入类型但得到:函数GraphQLObjectType(config){_ classCallCheck(this,GraphQLObjectType);
当我从字符串中更改原始args时发生此错误
args: {
data: { type: graphQL.GraphQLString }
},
Run Code Online (Sandbox Code Playgroud)
对象类型:
args: {
data: { type: graphQL.GraphQLObjectType }
},
Run Code Online (Sandbox Code Playgroud)
我需要一个对象类型,因为我需要发送几个字段作为参数.
GraphQL服务器:
var Query = new graphQL.GraphQLObjectType({
name: 'Query',
fields: {
payment: {
type: graphQL.GraphQLString,
args: {
data: { type: graphQL.GraphQLObjectType }
},
resolve: function (_, args) {
// There will be more data here,
// but ultimately I want to return a string
return 'success!';
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
我如何允许它接受一个对象?
前端(如果需要.但错误发生在我发送之前):
var …Run Code Online (Sandbox Code Playgroud) 我正在构建俄罗斯方块并尝试考虑如何旋转碎片.
它们是在一个块上旋转吗?或者他们应该变形......也就是交换位置?

我正在考虑这样做的方式是硬编码......就像(伪代码):
if (rotateRight()) {
if (Piece == "T") {
if (Piece.getCurrRotation() == down (aka.. 180 degrees))
move each Tile in Piece from the down rotation to the left rotation... each coordinate would be pre-specified for a given condition... aka lot's of hardcoding
}
if (Piece == "L") { etc...
}
}
if (rotateLeft()) {
perform same checks for the Left...
}
Run Code Online (Sandbox Code Playgroud)
但这似乎是一个庞大的代码量只是为了弄清楚
首先)当前作品处于哪个旋转位置(每个作品有4个可能的旋转)
其次)从那里...根据该片段将其设置为新的硬编码坐标
我必须为每件作品做到这一点......这似乎是错误的思考方式.
还有其他想法吗?
在下面这个问题的答案做了伟大的工作,解释之间的差异classical inheritance和prototypal inheritance.这是我感兴趣的,因为我开始使用Java,但转移到Javascript.
在他的回答中,他说prototypal inheritance,"关于课程的所有业务都会消失.如果你想要一个对象,你只需要写一个对象."
然而,关于如何在Javascript中"编写类" 有很多文档和问题.
为什么要推动语言不是.我正在寻找具体的例子,在这种情况下,使用JS应用程序中的类在这种原型语言中更为明智,以及将方形钉固定在圆孔中的好处.正如Aravind所说的那样,为什么人们通过将Javascript与其他人进行比较来学习Javascript,而不是因为它的目的......并且为什么这种做法似乎受到鼓励?
底线问题:为什么要在ECMAScript 6中引入类?
我正在使用Elastic Beanstalk在AWS EC2服务器上托管我的PHP项目.我已经设置了我的ENV Vars php dotenv,这似乎是从我的根.env文件中获得我的vars :
DbConnect.php:
require '../vendor/autoload.php';
$dotenv = new Dotenv($_SERVER['DOCUMENT_ROOT']);
$dotenv->load();
$DB_HOST = getenv('DB_HOST');
$DB_USERNAME = getenv('DB_USERNAME');
$DB_PASSWORD = getenv('DB_PASSWORD');
$DB_DATABASE = getenv('DB_DATABASE');
$mysqli = new mysqli($DB_HOST, $DB_USERNAME, $DB_PASSWORD, $DB_DATABASE);
Run Code Online (Sandbox Code Playgroud)
因此,在AWS管理控制台中,我在软件配置,git推送和重新部署中设置了相同的名称ENV vars.我收到500错误,因为EC2 ENV变量似乎没有恢复.

我还需要做些什么吗?
更新:
eb printenv 显示正确的env var值.
javascript ×6
java ×2
php ×2
algorithm ×1
amazon-ec2 ×1
arrays ×1
createjs ×1
dataframe ×1
google-api ×1
google-maps ×1
graphql ×1
group-by ×1
html ×1
html5-canvas ×1
inheritance ×1
jquery ×1
maps ×1
node.js ×1
pandas ×1
python ×1
render ×1
swing ×1
tile ×1