问题列表 - 第29346页

2 Pacman的寻路算法

我正在尝试实施Pacman.它运行正常,但到目前为止,鬼魂没有使用任何寻路,而是在每个路径交叉点上随机决定采用哪条路径.所以你可以想象,Pacman赢得比赛并不困难;)

所以我在Pacman中阅读了一些关于路径查找算法的内容,在这里我发现了一个非常好的答案:Pacman的寻路算法

答案是指http://home.comcast.net/~jpittman2/pacman/pacmandossier.html#Chapter%204

这一切都很好,但在我的Pacman实施中,有两个Pacman由两个不同的玩家玩.所以我想知道如何调整寻路算法,以便幽灵并不总是追逐一个玩家.

有关如何修改算法的任何想法,以便幽灵对两个玩家或多或少同等公平?

artificial-intelligence path-finding pacman

3
推荐指数
1
解决办法
1657
查看次数

通过VPN的Intranet网站

我创建了一个应用程序,它从In TRA网站上的Web服务获取数据.为了让我的应用程序看到这些网站,我必须打开为我们公司内部网设置的VPN.因此,当我打开VPN时,它要求进行身份验证.必须在我的应用程序启动之前打开,因为我知道无法通过代码访问VPN(SDK中是否有任何与VPN协同工作的内容?)

问题是,一旦我的我的应用程序启动,它需要对企业内部网的网站进行身份验证(验证不能被关闭出于安全原因).

所以在这种情况下:

  1. 用户打开VPN,输入网络凭据以访问内部网络
  2. 用户启动要求网络凭据的应用程序(因为Web服务器要求auth)

因此,您可以看到这非常痛苦(必须两次输入网络凭据).

有人对我如何解决这个问题有任何想法吗?

BTW - 我在我的代码中使用ASIHTTPRequest.

iphone

7
推荐指数
1
解决办法
879
查看次数

启动远程桌面客户端。无法控制 PID Kill。启动后PID变化...WTF?

我正在编写一个程序(C# Windows 窗体中的 Visual Studio 2010),它跟踪远程桌面客户端的多个实例(mstsc.exe - 用 Windows 7 版本测试)。我一直在尝试启动该程序并使用以下代码获取其 PID:

Process mstsc = Process.Start(mstscLocation, mstscConString);
int mstscProcessId = mstsc.Id;
DataRow row = openConn.NewRow();
row["RDP ID"] = mstscID;
openConn.Rows.Add(row);
Run Code Online (Sandbox Code Playgroud)

这将启动客户端并返回它应该的 ID。问题是,如果我尝试使用以下代码终止 PID,则无法这样做:

int rdpID = Convert.ToInt32(dgvOpenConnections.Rows[selectedIndex].Cells["RDP ID"].Value.ToString());

try
{
    // kill off mstsc
    Process mstsc = Process.GetProcessById(rdpID);
    mstsc.Kill();
}
Run Code Online (Sandbox Code Playgroud)

我已验证从 Process.Start 记录的 PID 与从 DataGridView (dgvOpenConnections) 检索并放入 rpdID 的 PID 相同(尝试失败并命中捕获,因为原始 PID 不再存在)。此外,在启动 MSTSC.EXE 的一个实例后,我在命令提示符处发出了一个“任务列表”,并且可以验证它是否更改了 PID(在此测试中,C# 记录了 4288,但任务列表显示它运行为 8172)。

我无法杀死所有 MSTSC 进程,因为我试图控制多个进程。有没有办法追踪似乎使用的第二个 PID MSTSC?我的猜测是它要么启动第二个进程并摆脱第一个进程,或者这可能是一个子进程(尽管启动后返回的 PID 不再存在)。

如何在 C# 中确保我有正确的进程 …

c# remote-desktop process c#-4.0

1
推荐指数
1
解决办法
3398
查看次数

使用通配符在SQL Server中删除数据库

我有一个应用程序为每个新客户创建一个单独的数据库(SQL Server 2008),在测试期间我们最终得到了许多名为PREFIX的数据库.

我希望有一个脚本可以查找以PREFIX开头的所有数据库.放下它们,这样我们就可以开始一个干净的测试循环.任何帮助非常感谢.

sql-server-2008

4
推荐指数
2
解决办法
6447
查看次数

旅行门票问题

您将获得一系列各种交通工具的旅行机票,这些机票将通过途中的几个站点将您从A点带到B点.所有的门票都没有故障,你不知道你的旅程从哪里开始,也不知道它的结束地点.按正确的顺序对门票进行排序以完成您的旅程.

tickets = [
  {from: "Barcelona", to: "New York"}
  {from: "Barcelona", to: "Gerona"},
  {from: "Madrid",    to: "Barcelona"},
  {from: "Gerona",    to: "Barcelona"}
]

我想,正确的顺序是:

tickets = [
  {from: "Madrid",    to: "Barcelona"},
  {from: "Barcelona", to: "Gerona"},
  {from: "Gerona",    to: "Barcelona"},
  {from: "Barcelona", to: "New York"}
]

因为没有去马德里的机票,也没有来自纽约的机票.

什么是该任务的最佳算法?

该语言是JavaScript,但与语言无关的解决方案就足够了.

更新:我更改了样本数据,以免与单程飞行问题混淆.

language-agnostic sorting algorithm

10
推荐指数
1
解决办法
1977
查看次数

如何使用其他属性和方法在C#中扩展DataRow和DataTable?

我想创建一个自定义的DataRow,它将具有-let的说法 - 一个名为IsCheapest的软件.

public class RateDataRow : DataRow
{
    protected internal RateDataRow(DataRowBuilder builder) : base(builder)
    {
    }

    public bool IsCheapest { get; set ;}
}
Run Code Online (Sandbox Code Playgroud)

我想要一个只包含***RateDataRow***的新DataTable,以便.NewDataRow()将RateDataRow实例作为新行返回.

什么应该是扩展DataTable的类的实现?

谢谢,

c# datatable ado.net datarow extend

5
推荐指数
2
解决办法
9545
查看次数

在HTTPS请求期间验证远程SSL证书

在向远程Web服务器发出HTTPS请求时,我使用WebRequest,它建立与远程Web服务器的安全连接.在开发期间,我在服务器上使用自签名证书,并且WebRequest无法建立安全连接,因为证书无效,这是预期的行为.

我发现这个代码"远程"证书检查,通过SetCertificatePolicy()以下代码中的调用方法激活.

public static void SetCertificatePolicy()
{
    ServicePointManager.ServerCertificateValidationCallback
                += RemoteCertificateValidate;
}

/// <summary>
/// Remotes the certificate validate.
/// </summary>
private static bool RemoteCertificateValidate(
    object sender, X509Certificate cert,
    X509Chain chain, SslPolicyErrors error)
{
    // trust any certificate!!!
    System.Console.WriteLine("Warning, trust any certificate");
    return true;
}
Run Code Online (Sandbox Code Playgroud)

我想知道,如果可以对远程SSL证书进行特殊检查(例如使用上面的代码),那么我可以验证远程Web服务器使用的是有效的SSL证书,而不仅仅是任何有效的证书,而是一个我想要?例如,我想确保我正在与www.someplace.com网站交谈,证书发给ACME公司,指纹00:11:22:.....

这种情况的"最佳实践"方法是什么?

谢谢!

.net c# ssl https

8
推荐指数
1
解决办法
1万
查看次数

帮我把SUBQUERY变成JOIN

两张桌子.

电子邮件id(int10)| 所有权(int10)

消息emailid(int10)已索引| 消息(中等文本)

子查询(在mysql中很糟糕).

SELECT COUNT(*)FROM messages WHERE message LIKE'%word%'AND emailid IN(SELECT id FROM emails WHERE ownership = 32)


这里的用法是我在电子邮件上运行搜索(在上面的示例中显然简化了),它会生成一个包含3,000个电子邮件ID的列表.然后,我想对邮件进行搜索,因为我需要进行文本匹配 - 仅针对该邮件的3000封电子邮件.

对消息的查询是昂贵的(消息没有索引),但这很好,因为它只会检查几行.

思路:

i)加入.到目前为止,我对此的尝试都没有奏效,导致对消息表进行全表扫描(即未使用的emailid索引)ii)临时表.我认为这可行.iii)缓存客户端中的id并运行2个查询.这确实有效.不优雅.iv)子查询.mySQL子查询每次运行第二个查询,所以这不起作用.也许修复在mysql 6中.

好的,这是我到目前为止所拥有的.这些是实际的字段名称(我简化了一些问题).

查询:

SELECT COUNT(*) FROM ticket LEFT JOIN ticket_subject 
ON (ticket_subject.ticketid = ticket.id) 
WHERE category IN (1) 
AND ticket_subject.subject LIKE "%about%"
Run Code Online (Sandbox Code Playgroud)

结果:

1   SIMPLE  ticket  ref     PRIMARY,category    category    4   const   28874    
1   SIMPLE  ticket_subject  eq_ref  PRIMARY     PRIMARY     4   deskpro.ticket.id   1   Using where
Run Code Online (Sandbox Code Playgroud)

它需要0.41秒并返回113的计数(*).

运行:

SELECT COUNT (*) FROM ticket WHERE category IN …
Run Code Online (Sandbox Code Playgroud)

mysql join subquery

2
推荐指数
1
解决办法
633
查看次数

Windows服务和多个登录用户

我正在开发一种Windows服务,它将在每天的特定时间运行.如果多个用户登录到该计算机,会发生什么?如果有5个用户登录,它会同时运行5次吗?如果确实如此,有没有办法防止它?

.net windows-services

3
推荐指数
1
解决办法
778
查看次数

如何从ASP.NET转发器中获取绑定项

我必须设置一个LinkBut​​ton的OnClientClick属性,但在LinkBut​​ton绑定之前我不知道这个值是什么.我试图在转发器绑定时设置值,但我无法训练如何获取'boundItem/dataContext'值...

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
        <asp:LinkButton  Text="HelloWorld" ID="Hyper1" runat="server" OnDataBinding="Repeater1_DataBinding" >
        </asp:LinkButton> 
    </ItemTemplate> 
</asp:Repeater>

protected void Page_Load(object sender, EventArgs e)
{
    var list = new List<TestObject>();
    list.Add(new TestObject() {TestValue = "testing1"});
    list.Add(new TestObject() { TestValue = "testing2" });
    list.Add(new TestObject() { TestValue = "testing3" });

    this.Repeater1.DataSource = list;
    this.Repeater1.DataBind();
}

public void Repeater1_DataBinding(object sender, EventArgs e)
{
    var link = sender as HyperLink;
    //link.DataItem ???
}
Run Code Online (Sandbox Code Playgroud)

反正有没有找出当前行绑定项目是什么?

c# asp.net data-binding repeater

3
推荐指数
1
解决办法
6353
查看次数