2011-10-26 28 views
0

說我有一個適合4名球員的表: 但只有3名球員在這個甘恩用:A,B,C算法玩家總是看到事物3人遊戲中以某種方式

上服務器,佈局是這樣的:

C 
B 
    A 

但是,所有玩家必須用正確的玩家才能看到它都,例如:ABC,BCA,CAB 他們必須也認爲沒有人坐在上面,北方的位置,客戶總是認爲底部和兩側都被佔用。

因此,例如: 服務器看到上述情況,但是C看到:

A  B 
    C 

B看到:

C  A 
    B 

和A看到:

B  C 
    A 

我試圖找出一個算法,可以找出,給定的位置在服務器上,哪個位置,這映射噸oo在客戶端。例如,如果我告訴它,我想查看客戶端B上的哪個位置也是服務器的A地圖?答案是,服務器上的索引1映射到客戶機上的索引3。我也想做相反的事。

我會手動編程它,但我想知道如果算法可以做到這一點,因爲有一種模式。

感謝

回答

1

如果有4名玩家在一個環形結構,則存儲在服務器上的陣列玩家位置,並將它們映射到每個客戶端上的顯示位置。

實施例:

絕對位置:position=[A, B, C]

用戶A看到:一在該中心,索引0。 B在右邊,索引0 + 1,C在左邊,索引0 - 1 MOD 3

用戶B看到:B在中心,索引1。 C在右邊,索引1 + 1。 A在左邊,索引1 - 1

用戶C看到:C在中心,索引爲2。 A在右邊,索引2 + 1 MOD 3。 B在左邊,索引2 - 1

+0

你會逆時針轉動,但這有幫助。 – jmasterx

+0

我還沒弄明白。 – jmasterx

3

我不知道我理解你的問題,因爲它看起來微不足道,但..

它只是一個循環移位。

pos = (pos - mypos) % numofplayers 
+0

不完全,這不認爲客戶端跳過北部,只能看到東西部和南部的球員。 – jmasterx

+1

3名球員,3個職位。忘記北方。 –

+0

我的意思是,對某些玩家來說,某些東西會映射到北方,在這種情況下,位置會增加或減少1,以確保客戶永遠不會收到北方位置。 – jmasterx