我在c#.net窗体窗体应用程序中制作了一个Tic tack tack游戏,我正在计划在框中使用图像而不是剔或交叉。所以我面临一个问题比较这些图像,因为为了赢得该计划必须检查行或列或对角线相同的图像。我已经搜查,但仍然没有找到解决办法。任何帮助将不胜感激。在c#.net窗口窗体应用程序中比较图像
回答
你走错了路;你不应该比较图像来决定玩家是否赢了。
相反,您应该有游戏板的内部表示形式(例如二维数组),其中包含数字(例如,0表示空单元格,1表示十字形,2表示圆圈),并且工作相反(比数字比图像更容易)。视觉表示可以很容易地从该网格构建。
通常,您应该始终将可视表示与数据的“逻辑”表示区分开来。 UI应该只反映逻辑表示,不应该被实际的程序逻辑使用。
谢谢托马斯,我明白了你的观点。感到生气的是我正在执行的方式。很好谢谢.. – 2014-09-20 12:55:15
对AI的任何建议? – 2014-09-21 08:50:21
@SalmanJaved,不是真的,但它是一个常见问题,我敢肯定,你可以在谷歌上找到吨井字脚趾AI例子) – 2014-09-21 08:52:08
比较图像可以通过拍摄图像对和比较每个像素的值来完成,这将是非常昂贵的任务,并且会让您的游戏速度变慢。
正确的方法是您应该声明一个二维数组来表示单元格中的值。你可以操纵这个数组产生滴答声和交叉。并在一个单独的函数中解析数组以创建显示。 这样,检查游戏结束或创建下一步移动将变得更容易。
Nitish by your方法我可以非常容易地检查,如果一个球员赢了或不。我应该做到了。现在我已经实现了这样的方式,它比较文本int每个按钮,这是更复杂的方式.thnx – 2014-09-20 12:52:27
@萨尔曼很高兴我能帮上忙。 – 2014-09-20 14:57:49
Nitish我已经完成了玩家到玩家tic tac脚趾现在我正在执行它对计算机。所以任何提示或建议,因为我觉得有点困难。 – 2014-09-21 08:49:37
- 1. .net C#windows窗体应用程序:打开弹出窗口
- 2. 在c#窗口应用程序中隐藏用户窗体
- 3. C#.net窗口服务应用程序
- 4. 在c#窗体窗体应用程序中加载位图图像
- 5. 如何在C#(.Net)窗口应用程序中制作椭圆形窗体?
- 6. 在窗口上的python图像比较
- 7. 在c#窗口应用程序中拆分容器窗体
- 8. 如何在C#窗口窗体应用程序中VideoBrush?
- 9. c#窗体窗体应用程序
- 10. C#窗体窗体应用程序
- 11. 如何启动.net窗体窗体应用程序没有可见的窗口?
- 12. 窗口应用程序中的图片上传? C#.NET?
- 13. C#窗口应用程序
- 14. 调度程序不在C#窗体窗体应用程序
- 15. vb.net窗口窗体应用程序中的线图
- 16. 在WPF窗口上添加应用程序窗口.NET
- 17. 在窗体中使用DialogResult窗体应用程序c#
- 18. .net窗体窗体应用程序中的共享存储
- 19. c#窗体窗体应用程序窗体问题
- 20. 在C#窗体窗体应用程序中找不到System.Windows.Input.Mouse
- 21. 在visual C++窗体窗体应用程序中浏览文件
- 22. 在C++中打开新窗体Windows窗体应用程序
- 23. 在C#窗体窗体应用程序中加载jQuery
- 24. c窗口窗体应用程序的主题#
- 25. 冷冻窗口窗体应用程序与复选框c#
- 26. c#运行没有DOS /窗体窗口的应用程序
- 27. 如何在c#.net窗口应用程序中生成日历
- 28. 覆盖C#窗口应用程序窗体中的透明图片框?
- 29. 给窗口窗体应用透明效果就像窗口7在c#
- 30. 在窗体中显示不同的窗口(Windows窗体应用程序)
您应该有一个独立于屏幕图像的数据结构来表示电路板状态。 – 2014-09-20 11:09:56
我的水晶球说你正在使用Properties.Resources.SomeImage。不起作用,每次使用它时都会创建一个* new *图像。一个非常顽皮的事情要做的财产顺便说一句。您必须将其复制到一个变量中,以便只使用该属性一次。 – 2014-09-20 12:24:17