我在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#窗體窗體應用程序中加載位圖圖像
- 4. 在窗口上的python圖像比較
- 5. C#.net窗口服務應用程序
- 6. c#窗體窗體應用程序
- 7. C#窗體窗體應用程序
- 8. 如何啓動.net窗體窗體應用程序沒有可見的窗口?
- 9. C#窗口應用程序
- 10. vb.net窗口窗體應用程序中的線圖
- 11. .net窗體窗體應用程序中的共享存儲
- 12. c#窗體窗體應用程序窗體問題
- 13. 在visual C++窗體窗體應用程序中瀏覽文件
- 14. 在C#窗體窗體應用程序中找不到System.Windows.Input.Mouse
- 15. c窗口窗體應用程序的主題#
- 16. 冷凍窗口窗體應用程序與複選框c#
- 17. 給窗口窗體應用透明效果就像窗口7在c#
- 18. 在VB窗口中打印窗體應用程序
- 19. 在C窗口中的窗體應用程序中聚焦標籤#
- 20. 在c#窗口中的媒體播放器應用程序
- 21. Gridview在C++窗體窗體應用程序不能編輯
- 22. 如何從Windows窗體應用程序在C#中關閉控制檯窗口?
- 23. 如何在C#窗口應用程序中的窗體之間傳遞值?
- 24. SQL命令在C#窗口窗體應用程序中不工作
- 25. c#窗口應用程序的圖像庫控件
- 26. 控件在C#窗口程序中隱藏窗體的事件
- 27. 在Windows窗體應用程序中單擊圖像的X/Y座標(.net)
- 28. Windows窗體:在運行時更改應用程序主窗口
- 29. 從winforms應用程序的子窗體中關閉主窗口
- 30. 隱藏Windows窗體應用程序中的控制檯窗口
您應該有一個獨立於屏幕圖像的數據結構來表示電路板狀態。 – 2014-09-20 11:09:56
我的水晶球說你正在使用Properties.Resources.SomeImage。不起作用,每次使用它時都會創建一個* new *圖像。一個非常頑皮的事情要做的財產順便說一句。您必須將其複製到一個變量中,以便只使用該屬性一次。 – 2014-09-20 12:24:17