模擬 我愛三國殺

2021-08-22 16:39:30 字數 2862 閱讀 8964

【題目】

我愛三國殺

description

這是一道跟三國殺有關的題目,

為了照顧沒有玩過三國殺的同學,我們對遊戲機制進行了化簡。

牌堆:所有玩家從牌堆摸牌,每人每回合摸取兩張牌,當牌堆被抽完後,視為平局。(每回合 每人一次性抽取兩張)

基礎牌:殺、閃,每回合最多使用一張殺

裝備牌:+1馬、-1馬,每名角色最多裝備一匹加一馬和一匹減一馬。

手牌:在手裡留存的卡牌,裝備在身上的裝備牌和需要判定的延遲類錦囊皆不算手牌。 玩家可決定出牌順序,如 你可以先裝備減一馬來減小雙方距離。

武將技能:每個武將都有他專屬的武將技能,合理運用技能可以獲得額外的功效武將

血量:在不計入某些武將技能的前提中,武將血量歸零將代表瀕死。武將血量還代表了您的存牌量。例如在武將1 血的情況下您在回合棄牌階段後最多只能留有1 張手牌。

距離:武將角色之間預設距離為1 ,-1馬來拉近角色之間的攻擊距離。武將角色在沒有裝備-1馬時只能攻擊距離為一的其他角色。所以+1馬會使沒有-1馬的對手不能對你使用殺(既在你的回合內,如果你的手牌中有殺,你可以棄置一張殺,對一名在你攻擊範圍內的角色發動一次攻擊,如果被攻擊角色不能棄置閃來響應,則會被扣除一點體力值,如果體力值小於等於零 則進行瀕死判斷)

為了再對問題進行化簡,我們假定三國殺只有周泰這乙個武將。

他的技能為:不屈:每當你扣減1點體力後,若你體力值為0,你可以從牌堆亮出一張牌置於你的武將牌上。若此牌的點數與你武將牌上已有的任何一張牌都不同,你不會死亡。(但視你體力為0)若出現相同點數的牌,你進入瀕死狀態。

(既,假設你現在只有一滴血,你的對手對你使用「殺」手牌,你無法使用「閃」進行響應你的體力值歸零,然後武將技能發動,你抽取一張牌堆頂的牌,假設這張牌點數為6,你將之置於你的武將牌之上。因為是第一次發動技能,你可以直接跳過瀕死判定。假設在經歷了多次技能發動後,你的武將牌上有了 「1」「2」「3」「4」「5」「6」「7」 這七種點數的牌。現在 你又進入了瀕死狀態,然後 你抽到一張點數為「5」的牌,由於現在已經有點數相同的牌了,如果不出意外,你直接死亡,對手獲勝。)

現在 yx正在進行一場生死1v1對抗,已經進展到白熱化階段。雙方使用周泰,體力值均為0,且均只有一張不屈牌。(這意味著,你不能在回合外存有手牌,也就是說,對方使用殺,你只能損失體力值)現在yx首先開始回合。

給出牌堆的所有資訊,問你最後結果如何

。假設雙方有殺出殺,有馬裝馬。

input

第一行輸入乙個整數n ,n<=500,表示牌堆中牌堆的數量。

第二行為n個字元從左到右依次表示牌堆頂到牌堆底的牌的型別。s 表示閃,a表示殺,+表示+1馬,-表示-1馬

第三行為n個1-9的數字,每張牌對應的點數。

第四行為兩個1-9的數字。 第乙個數字為yx的第一張現有不屈牌,第二個數字為yx的對手的第一張現有不屈牌。

output

輸出一行,

如果是平局,則輸出ping

如果yx率先殺死對手 這輸出win

否則 輸出lose

sample input 1 

11

saa+asasasa

11111111111

2 2

sample output 1

ping
sample input 2 

3

saa111

1 1

sample output 2

ping
sample input 3 

4

saaa

1111

1 1

sample output 3

win
hint

對於第乙個樣例

首先yx先動,摸到一閃一殺,殺了對手一下,

對手抽取一張瀕死牌(點數為1的殺)這是對手第一張點數為1的瀕死牌。所以對手不會去世。yx回合結束,棄置所有手牌。

之後到對手回合,抽取一張加一馬,和一張殺。

對手裝備+1馬,對yx使用一張殺。

yx抽取一張瀕死牌(點數為1的殺)這是yx第一張點數為1的瀕死牌。所以yx不會去世.

之後yx回合打不到對手了。棄置其手牌。

對手回合,抽取一殺一閃,殺了yx一下,抽取一張不屈牌,現在yx有兩張點數為1的不屈牌了。 你以為yx已經輸了嗎?當然沒有,這時候牌堆剛好抽完,yx苟到了平局。

輸出ping

【思路】yxdl出的模擬題..打的時候wa了10發,多打了個else if然後就炸裂了..晚上1發a...還是太菜了

【**】

#includeusing namespace std;

const int m=2e5+10;

int main()

; bool dbbq[15]= ;

cin>>p;

cin>>s;

int t1;

cin>>t1;

yxbq[t1]=1;

cin>>t1;

dbbq[t1]=1;

bool person=0;

int nowcard=0;

bool yxaddhs=0,dbaddhs=0,yxdwnhs=0,dbdwnhs=0;

while(1)

if(person==0)

if(x=='-'||y=='-')

if(x=='a'||y=='a')

dbbq[s[nowcard]-48]=1;

nowcard++;}}

}else

if(x=='-'||y=='-')

if(x=='a'||y=='a')

yxbq[s[nowcard]-48]=1;

nowcard++;}}

}person^=1;}}

寫個三國殺

自己老早以前就想寫個區域網的三國殺,以前思考過其遊戲邏輯的實現,覺得有點複雜,一直也沒有真正動手,上個週末,真正動手做了起來,2天裡寫了大約2000來行 算是把整個框架有了個大致的實現。下面把整個思路整理一下。既然是輕量級的區域網版本,就沒必要把伺服器和客戶端分開來做,就讓程式自帶服務端和客戶端,類...

三國殺的理解

11 人生就像一局三國殺。有可能你還沒判斷出誰是好人誰是壞人你就掛了。12 人生就像一局三國殺。你對別人好,別人不一定對你好。13 人生就像一局三國殺。你要在這個世界生存有時需要偽裝。14 人生就像一局三國殺。你可能來這個世界只是來打醬油的。15 人生就像一局三國殺。有可能一出生就已經決定了你的身份...

三國殺自走棋

這個陣法叫做五騎兵陣 首先 從協戰上來說還沒有乙個協戰是浪費的 那麼這套陣容就是攻防兼備 2群可以得到閃 而3魏則是加上一點體力上限 這是防守 那麼5騎兵就是進攻 它可以是敵人有概率無法使用閃 1 當人口 1時 最好用非五騎兵陣容裡面的人 用像袁術 周泰這種可以扛住第二回合的武將 當然 如果有二星的...