视觉是大多数程序员认为理所当然的感官之一.大多数程序员会花几个小时看电脑显示器(特别是在他们在区域的时候),但我知道有盲人程序员(例如目前在谷歌工作的电视拉曼).
如果您是一个盲人(或者慢慢变得盲目),您将如何设置开发环境来帮助您进行编程?
(请回答一个建议.这个问题的目的是将好的想法带到最顶层.此外,屏幕阅读器可以更早地阅读好的想法.)
在特定命名空间中创建库时,为该命名空间中的类提供重载操作符通常很方便.看来(至少用g ++),重载的运算符可以在库的命名空间中实现:
namespace Lib {
class A {
};
A operator+(const A&, const A&);
} // namespace Lib
Run Code Online (Sandbox Code Playgroud)
或全局命名空间
namespace Lib {
class A {
};
} // namespace Lib
Lib::A operator+(const Lib::A&, const Lib::A&);
Run Code Online (Sandbox Code Playgroud)
从我的测试来看,它们似乎都运行良好.这两个选项之间是否存在实际差异?两种方法都更好吗?
据我了解,C#的foreach迭代变量是不可变的.
这意味着我不能像这样修改迭代器:
foreach (Position Location in Map)
{
//We want to fudge the position to hide the exact coordinates
Location = Location + Random(); //Compiler Error
Plot(Location);
}
Run Code Online (Sandbox Code Playgroud)
我无法直接修改迭代器变量,而是必须使用for循环
for (int i = 0; i < Map.Count; i++)
{
Position Location = Map[i];
Location = Location + Random();
Plot(Location);
i = Location;
}
Run Code Online (Sandbox Code Playgroud)
来自C++背景,我认为foreach是for循环的替代品.但是由于上述限制,我通常会回退使用for循环.
我很好奇,使迭代器不可变的原理是什么?
编辑:
这个问题更多的是一个好奇的问题,而不是一个编码问题.我很欣赏编码答案,但我不能将它们标记为答案.
此外,上面的例子过于简化了.这是我想要做的C++示例:
// The game's rules:
// - The "Laser Of Death (tm)" moves around the game board from the
// start area (index …Run Code Online (Sandbox Code Playgroud) 这是我到目前为止:
myArray.map!{ rand(max) }
Run Code Online (Sandbox Code Playgroud)
然而,显然,有时候列表中的数字并不是唯一的.如何确保我的列表只包含唯一的数字,而不必创建一个更大的列表,然后我从中选择n个唯一的数字?
编辑:
我真的很想看到这个完成w/o循环 - 如果可能的话.
题
你会如何为游戏添加自动化测试?
我相信你可以对很多游戏引擎的功能(网络,对象创建,内存管理等)进行单元测试,但是有可能自动测试实际的游戏本身吗?
我不是在谈论游戏元素(比如Protoss会在地图X中击败Zerg),但我在谈论游戏和引擎之间的互动.
介绍
在游戏开发中,引擎只是游戏的平台.您可以将游戏引擎视为操作系统,将游戏视为操作系统运行的软件.游戏可以是游戏引擎内的脚本集合或实际子程序.
可能的答案
我的想法是这样的:
你需要一个确定性的引擎.这意味着给定一组输入,输出将完全相同.这将包括用相同输入播种的随机发生器.
然后,创建一个裸骨水平,其中包含化身/用户可以与之交互的几个对象.从小处开始,然后在开发更多交互时将对象添加到关卡中.
创建一个遵循路径的脚本(测试路径查找)并与不同的对象交互(存储结果或预期的行为).这个脚本将是您的自动化测试.经过一段时间(比如一周)后,运行脚本以及引擎的单元测试.
有没有办法使用iPhone SDK获取WiFi信息?像信号强度,WiFi频道和SSID这样的东西是我正在寻找的主要内容.
只对Wifi信息感兴趣,而不是蜂窝信息.
我被要求维护一个充满内存泄漏的大型C++代码库.在探索时,我发现我们有很多缓冲区溢出导致泄漏(它如何变坏,我不想知道).
我决定先删除缓冲区溢出.为了使我的bug更容易找到,可以使用哪些工具来检查缓冲区溢出?
random ×4
c# ×2
c++ ×2
ruby ×2
blind ×1
c ×1
cocoa-touch ×1
iphone ×1
namespaces ×1
php ×1
unit-testing ×1
wifi ×1
workflow ×1