宝石游戏步骤计算,换句话说一些数学
我有一个程序可以扫描图像并将宝石转换为特定数字。看下面的图片:
所以我有一个带有数字的表格。数字 1 代表黄色宝石,2 代表蓝色宝石,等等...
比如:
A B C D E
1 | 1 2 3 4 5
2 | 3 5 2 4 1
3 | 1 4 4 1 2
4 | 3 3 2 1 5
5 | 5 1 5 2 5
我想计算一个步骤,以水平或垂直获得 3 个相等的数字(宝石)。例如,在此表中,如果我将 E2 与 D2 交换,D2 将是 1,并且 D2、D3、D4 创建一个有效步骤,因为它都是 1。我使用的是 VB.NET 2010。
我的表格大小为 8x8,这只是上面的一个示例。
现在我只有多个变量中的值(A1=1,A2=3,等等..)
我希望你理解我的问题,任何帮助将不胜感激。
I have a program that scans an image and converts gems to specific numbers. Look at the picture below:
So i have a table with numbers. Number 1 is for yellow gem, 2 for blue, etc...
Like:
A B C D E
1 | 1 2 3 4 5
2 | 3 5 2 4 1
3 | 1 4 4 1 2
4 | 3 3 2 1 5
5 | 5 1 5 2 5
I want to calculate a step, to get 3 equal numbers (gems) horizontally or vertically. For example, in this table if i swap E2 with D2, D2 will be 1, and D2,D3,D4 creates a valid step, because it's all 1. I'm using VB.NET 2010.
My table is 8x8 size, it's just an example above.
At now i'm just have the values in multiple variables (A1=1, A2=3, so on..)
I hope you understand my question, any help would be appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
给你:
这是我使用的元组类。
顺便说一句:我将它从 C# 转换为 VB.NET,来自 StackOverflow
运行该应用程序会给出以下输出:
该程序可以与任何板尺寸配合使用。该程序基于我在游戏中搜索匹配的方式(我认为这是暴力)。
编辑
看来求解器无法在第一个宝石上找到匹配项(请参见下面的示例)。
如果该算法应用于上面的示例,则不会找到匹配项。
我现在已经解决了这个问题。现在有一个
IsMatchOnFirst()
方法来处理这些情况。请参阅更新后的代码以了解更改。
Here you go:
And here is the tuple class I used.
BTW: I converted the it from C# to VB.NET from a question on StackOverflow
Running the application give this output:
This program can work with any board size. The program is based on the way I search for matches in the game (which I suppose is brute-force).
Edit
It appears the solver was not able to find matches on the first gem (see sample below).
If the algorithm were applied on the sample above, no matches would be found.
I've fixed that now. There is now an
IsMatchOnFirst()
method to handle those cases.See the updated code for changes.
您希望在一行中包含三个(或更多)数字,因此请执行以下操作:
该行邻域的定义如下:
例如
You want to have three (or more) numbers in a line, so do the following:
The neighbourhood is defined as follows:
E.g.