在游戏中工作并且在游戏中的某一点上玩家被投入奖励游戏.他们需要获得的金额是预先确定的,但是我们想要提出一种算法,该算法使用加法,乘法和除法来获得x个步骤中的数量.步骤的数量也会提前知道,因此算法只需要弄清楚如何使用这些步骤来达到数字.
您可以使用的唯一计算是+1到+ 15,x2,x4,/ 2,/ 4.您可以在步骤中超过目标编号,但必须以最后一步的目标编号结束.步数通常在15到30之间,您始终从0开始.
例如:数量:100,步数:10 == + 10,+ 2,x2,+ 4,x4,+ 10,/ 2,+ 15,+ 15,+ 9
金额:40,步数:12 == + 15,+ 1,+ 5,+ 2,+ 1,/ 2,*4,+ 6,+ 6,/ 4,+ 5,*2
我很好奇是否有这样的东西可能已经存在?我确信我们可以拿出一些东西,但如果有一个可以处理这项工作的通用算法,我不想重新发明轮子.
更新:对@FryGuy的代码进行了一些小的更改,使其成为一个随机达到目标数量所需的路线.他的解决方案原样很有效,但在看到它工作并考虑到@Argote和@Moron的评论之后,我意识到需要在其中进行一定程度的随机化以使其吸引我们的玩家.在10个步骤中添加了+1以达到目标数量10个作品,但就我们如何使用它而言是"无聊".非常感谢所有评论和回答的人.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CR
{
class Program
{
static void Main(string[] args)
{
while (true)
{
int targetNumber = 20;
int steps = 13;
int[] route = null;
Boolean routeAcceptable = false;
// Continue choosing routes until we find one that is acceptable …
Run Code Online (Sandbox Code Playgroud) 我昨天刚刚开始一份新工作,这只是我在ASP.NET工作的第二份工作.我们正在设置我的开发盒,并且遇到了Telerik等一些第三方组件的问题.我注意到他们安装了这些第三方工具,搜索DLL文件,将它们复制到bin中,然后添加引用指向BIN中文件的项目.对我来说,这似乎不是正常的做法.
我的印象是,如果你只是在bin文件夹中转储一个DLL,你不需要添加一个引用,它只是可用的?原因是,在我上一份工作中,我们使用了一些我们内部构建的类库来进行数据访问,并将DLL放在我们制作的任何新网站(而不是webapps)中.我不记得每个人都必须添加一个引用才能让它工作.
那么,有人可以解释如何向您的网络应用添加第三方引用的最佳实践吗?您是否在系统中安装DLL的位置添加引用?如果是这样,你检查复制本地,然后复制到垃圾箱?你是否只是将dll复制到bin中就是这样?您是否将dll复制到bin中,然后在那里添加对它的引用?
对不起,我确信这似乎是一个简单的问题,但我对我见过的两种看似不同的方法感到困惑.
今天晚上我一直在汲取我的知识,试图克服4年糟糕的编程习惯,因为我正在为之工作.我最近偶然发现的一件事是System.Transactions.在阅读了最近几个小时之后,我想我已经充分了解它们的工作原理以及为什么要使用它们.但是,我所看到的所有示例都显示了在事务中调用的内联T-SQL.
在进行数据库访问时,我几乎只使用存储过程,现有的存储过程都包含在自己的SqlTransactions中.你知道,使用'Begin Tran'然后回滚或提交.如果存储过程调用另一个存储过程,它也会创建一个事务,并且Commits会冒泡,直到外部提交或回滚.效果很好.
所以现在我的问题是,如果我想在我的代码中开始使用System.Transactions - 为了监控不能嵌套在单个存储过程中的连续数据库任务的简单目的 - 它如何与现有的SqlTransactions一起工作我已经我的存储过程中有什么?
在我的代码中使用System.Transactions只是在实际提交之前添加了一层保护,或者因为我在我的SqlTransaction中明确提交 - 无论是在基于代码的事务中提交还是回滚,数据都会被保留吗?
我正在与leiningen和Clojure合作创建一个uberjar,所以我有一个文件可供部署.我还使用leiningen的默认资源路径嵌入了一些静态文件,其名称和编号因构建而异.有没有一种惯用的方法来获取Clojure的嵌入资源列表?我知道我可以clojure.java.io/resource
用来访问已知的文件名,但是如何获取文件列表呢?
我在数据生成模式下使用NetStream来使用appendBytes播放嵌入式FLV.当流完成播放时,我想循环FLV文件.我不知道如何实现这一目标.这是我到目前为止(这不是一个完整的例子):
public function createBorderAnimation():void
{
// Load the skin image
borderAnimation = Assets.BorderAnimation;
// Convert the animation to a byte array
borderAnimationBytes = new borderAnimation();
// Initialize the net connection
border_nc = new NetConnection();
border_nc.connect( null );
// Initialize the net stream
border_ns = new NetStream( border_nc );
border_ns.client = { onMetaData:function( obj:Object ):void{ trace(obj); } }
border_ns.addEventListener( NetStatusEvent.NET_STATUS, border_netStatusHandler );
border_ns.play( null );
border_ns.appendBytes( borderAnimationBytes );
// Initialize the animation
border_vd = new Video( 1024, 768 );
border_vd.attachNetStream( border_ns …
Run Code Online (Sandbox Code Playgroud) asp.net ×2
ado.net ×1
algorithm ×1
apache-flex ×1
c# ×1
clojure ×1
flash ×1
leiningen ×1
netstream ×1
pseudocode ×1
reference ×1
sql-server ×1