2011-10-22 17 views
0

想象一下游戲中的以下情況:向玩家呈現一系列隨機數字。在進入下一個數字之前,每個數字都會在短時間內顯示給玩家。玩家的目標是選擇一個很高的數字。他或她只需在恰當的時刻「點擊」,然後選擇數字。如何在客戶/服務器場景中保護一系列骰子卷?

問題是關於如何在客戶端/服務器場景中以安全的方式實現此場景。

這意味着有一個遊戲客戶端顯示上面提到的場景,並且有一個服務器,所選號碼(以任何方式)需要發送到該服務器。抓住這個東西是安全的,這樣欺騙(例如通過修改客戶端)是不可能的。

回答

1

真的沒有辦法使這個完全安全。即使沒有修改客戶端,所有需要做的事情都是讓另一個程序在後臺運行,讀取顯示器並查找出現的特定號碼,然後將鼠標單擊事件發送到客戶端程序。這可以在完全不修改客戶端程序的情況下完成。即使您設法使其安全,以至於他們無法與您的程序同時運行任何其他程序或服務,他們也可以將屏幕上的網絡攝像頭指向掛接到另一臺計算機的屏幕,以進行光學數字識別和通過USB發送鼠標點擊事件到運行程序的計算機。

幸運的是,您可能能夠解決該問題。一般來說,如果某件事要成爲「骰子滾動」,那麼您需要隨機的「基於運氣」的結果。通過允許他們點擊某個特定的時間,你就可以使這個技能爲基礎的遊戲而不是運氣,因此不是真正的擲骰子。你可以做到這一點,所以從點擊到骰子停止滾動時會有一點點「延遲」,所以他們會看到滾動,點擊,並減速並落在一個數字上。通過這種方式,實際點擊時顯示的數字不會確定結果,而是接下來的(隨機)數字,這將消除作弊的可能性並使其成爲基於運氣而不是基於技能的運氣​​。

+0

感謝您解釋我如何將「基於運氣」的結果作爲「基於技能」的結果。這似乎是這裏的問題,因此整個問題更容易解決。再次感謝! – rob

相關問題