我想编写一个带3个参数的python脚本.第一个参数是字符串,第二个是整数,第三个也是整数.
我想在开始时进行条件检查,以确保提供适当数量的参数,并且在继续之前它们是正确的类型.
我知道我们可以使用sys.argv来获取参数列表,但我不知道如何在将参数分配给我的本地变量以供使用之前测试参数是否为整数.
任何帮助将不胜感激.
我正在使用node.js实现一个webapp并使用jade模板引擎表达.
模板呈现正常,可以访问助手和动态助手,但不能访问"body"局部变量以外的局部变量,该变量由express提供,并且在layout.jade中可用并定义.
这是一些代码:
app.set ('view engine', 'jade');
app.get ("/test", function (req, res) {
res.render ('test', {
locals: { name: "jake" }
});
});
Run Code Online (Sandbox Code Playgroud)
这是test.jade:
p hello
=name
Run Code Online (Sandbox Code Playgroud)
当我删除第二行(引用名称)时,模板正确呈现,在网页中显示"hello"一词.当我包含= name时,它会抛出一个ReferenceError:
500 ReferenceError: Jade:2 NaN. 'p hello' NaN. '=name' name is not defined
NaN. 'p hello'
NaN. '=name'
Run Code Online (Sandbox Code Playgroud)
我相信我正在关注玉,并完全根据局部变量表达例子.我做错了什么,或者这可能是快递或玉器中的错误?
好的,所以我试图制作一个简单的小行星克隆.除碰撞检测外,一切正常.
我有两个不同的版本,第一个使用java.awt.geom.Area:
// polygon is a java.awt.Polygon and p is the other one
final Area intersect = new Area();
intersect.add(new Area(polygon));
intersect.intersect(new Area(p.polygon));
return !intersect.isEmpty();
Run Code Online (Sandbox Code Playgroud)
这就像一个魅力......如果你不关心只有120个小行星的40%CPU :(
所以我在网上搜索了着名的分离轴定理,因为我不是很好的数学,我从这里开始实现并转换它以满足我的Java需求:
public double dotProduct(double x, double y, double dx, double dy) {
return x * dx + y * dy;
}
public double IntervalDistance(double minA, double maxA, double minB,
double maxB) {
if (minA < minB) {
return minB - maxA;
} else {
return minA - maxB;
}
}
public …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个Java平台,我为它编写了自己的游戏引擎Bonsai.现在我问自己一个问题"我是否过度使用静力学?".
一方面它非常方便,因为我不必像地图或播放器那样在每个类中保持对游戏实例的引用.另一方面......我已经不得不剥离applet支持,因为那里的所有静态内容非常错误.
所以我的问题是,既然你可能比我更有经验的Java程序员,我应该摆脱所有静态吗?如果是的话,什么才能成为这样的有效方法:
public void draw(Graphics2D) {
if (this.game.time() > this.timer) {
this.game.image.draw(this.tiles[this.game.animation.get("tileAnim")], x, y, null)
}
}
Run Code Online (Sandbox Code Playgroud)
代替:
public void draw(Graphics2D) {
if (Game.time() > this.timer) {
Image.draw(this.tiles[Animation.get("tileAnim")], x, y, null)
}
}
Run Code Online (Sandbox Code Playgroud)
甚至在地图编辑器中更糟糕:
public void control() {
if(this.map.game.input.keyPressed(...)) {
this.map.game.sound.play(...);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑
根据答案我决定有一个GameObject类,它为每个组件提供包装器方法.地图,播放器等然后从它的子类,这样我所有this.game调用都隐藏在场景后面,它仍然在前端看起来很好:
public class GameObject {
private Game game;
public GameObject(Game g) {
game = g;
}
public Game Game() {
return game;
}
public GameAnimation Animation() {
return game.animation;
}
public GameInput Font() …Run Code Online (Sandbox Code Playgroud) 我正在编写这个脚本,它将使用画布在转速表上旋转针.我是这个画布的新手.这是我的代码:
function startup() {
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var meter = new Image();
meter.src = 'background.png';
var pin = new Image();
pin.src = 'needle.png';
context.drawImage(meter,0,0);
context.translate(275,297);
for (var frm = 0; frm < 6000; frm++){
var r=frm/1000; //handle here
var i=r*36-27; //angle of rotation from value of r and span
var angleInRadians = 3.14159265 * i/180; //converting degree to radian
context.rotate(angleInRadians); //rotating by angle
context.drawImage(pin,-250,-3); //adjusting pin center at meter center
}
}
Run Code Online (Sandbox Code Playgroud)
这是脚本的实际应用:
http://www.kingoslo.com/instruments/
正如您所看到的,问题是在每个for循环之间没有移除红色针. …
也许我只是有另一个黑色,但这一行给了我很多麻烦:
FILE *fp = fopen("data/world.data", "rb");
Run Code Online (Sandbox Code Playgroud)
当使用GCC编译时,这在Linux下工作正常.但是当我使用Visual Studio编译它时,它会崩溃.fp总是如此NULL.BIN和EXE都在完全相同的目录中.现在,为了让事情变得更加疯狂,当我在Linux下使用Wine运行EXE时......它......工作......
我绝对不是一个该死的线索,这里发生了什么.也许这是我身上一些疯狂的愚蠢错误,但我无法在Windows下运行这个东西:/
另外,我有另一个工作正常的程序,数据文件也包含在名为data的子目录中.
编辑:
要明确说明/ NOR`\*都不起作用.
编辑2:
好的,我已经放弃了这个,也许有人玩得很开心,这里有包含EXE的ZIP,VS的调试数据等:https:
//dl.dropbox.com/u/2332843/Leaf .压缩
编辑3:
用CodeBlocks和MinGW编译它,就像一个魅力.猜猜它必须对MSVC或VS中的项目设置做些什么.
好吧,所以我有一个512x512包围的游戏区域,-32变成512了两个x和y.
现在我需要计算两个实体之间的角度,我有以下代码作为一种解决方法,它大部分时间都有效,但有时它仍然会失败:
Shooter.getAngle = function(a, b) {
var ax = a.x;
var bx = b.x;
if (a.x < this.width / 4 && b.x > this.width - this.width / 4) {
ax += this.width;
} else if (a.x > this.width - this.width / 4 && b.x < this.width / 4) {
bx += this.width;
}
var ay = a.y;
var by = b.y;
if (a.y < this.height / 4 …Run Code Online (Sandbox Code Playgroud) 这是我的数据结构:
var data = [
{ id: '1924', info: 'boo' },
{ id: '1967', info: 'foo' }
];
Run Code Online (Sandbox Code Playgroud)
id值应该是唯一的,但信息可能不是唯一的.仅当新数据的ID是唯一的时,我才会如何将新数据添加到数据哈希中?
是迭代整个哈希的唯一方法,看看是否已经存在这样的id?
data.push({ id: '1967', info: 'goo-goo' }); //should not be added
data.push({ id: '1963', info: 'goo-goo' }); //should be added
Run Code Online (Sandbox Code Playgroud) javascript ×4
java ×2
2d ×1
c ×1
canvas ×1
express ×1
fopen ×1
fullcalendar ×1
math ×1
node.js ×1
parameters ×1
polygon ×1
pug ×1
python ×1
regex ×1
static ×1
trigonometry ×1
validation ×1
windows ×1