ACM複習(17)8620 西洋棋棋盤

2021-08-15 02:46:10 字數 1760 閱讀 1517

description 資訊學院的新生大一是不准帶電腦的(當然,部分」機」膽包天者不予討論),有時夜晚太無聊怎麼辦呢?下象棋是乙個不錯的消遣。下面是乙個基於西洋棋的遊戲。 乙個西洋棋棋盤,由黑色和白色的正方形格仔相隔組成。假設棋盤左上角座標為原點(0,0),向右為x軸正方向,向下為y軸正方向,每個格仔闊度為s厘公尺(1<=s<=1000)。一開始有乙個棋子在某個點上,每次棋子可以向右移動dx厘公尺而且向下移動dy厘公尺(如果dx=1,dy=2,棋子一開始在原點,則第一次移動後,棋子的座標為(1,2))。當然,每次棋子所在座標的顏色有3種可能:假設s=5,黑色(如座標(2,3))、白色(如座標(7,2))、黑白邊界(如座標(5,2))。本題問題就是:給出s,dx,dy,起始座標x,y,問棋子需要移動多少次到達乙個白色的座標(黑白邊界的位置不算)。 注意:有可能一次都不用移動或者無論怎麼移動都無法到達。

輸入格式 多cases, 每行5個整數:s,x,y,dx,dy,以5個0結束輸入

輸出格式 輸出需要移動次數及當時座標,如樣例,若無法成功,輸出「the flea cannot escape from black squares.」

輸入樣例

10 2 3 3 2

100 49 73 214 38

25 0 0 5 25

407 1270 1323 1 1

18 72 6 18 6

407 1270 1170 100 114

0 0 0 0 0

輸出樣例

after 3 jumps the flea lands at (11, 9).

after 1 jumps the flea lands at (263, 111).

the flea cannot escape from black squares.

after 306 jumps the flea lands at (1576, 1629).

the flea cannot escape from black squares.

after 0 jumps the flea lands at (1270, 1170).

記錄起始點的座標特徵(例如在格仔內還是邊框,在格仔內時距格仔左上角的距離,在邊框時左右分別是什麼顏色的格仔等等),然後一步一步模擬,當再次走到和起始點具有相同特徵的座標時判定白格不可到達,不然總會走到白格的。

ps:這道題有乙個超級大坑,就是當判定無法到達白格時輸出的那個字串,如果直接printf那麼**無法提交,那個字串一定要分成兩個部分printf才可以!!!不信你可以把我**中那個printf語句合併起來試試能不能提交。但是我發現別人的**就可以合併起來!!!!

#include

#include

using

namespace

std;

int calculate(int s, int x, int y, int &ff, int &fx, int &fy);

int main()

if(ff == ef && fx == ex && fy == ey)

} }}

return0;}

// ff當前座標狀態型別

// fx,fy當前狀態相應特徵值

int calculate(int s, int x, int y, int &ff, int &fx, int &fy)

else

if(x % s == 0)

else

}else

}return

0;}

python繪製西洋棋規則口訣 西洋棋口訣

1.用車鎖門 直線或橫線 2.王與王形成馬步 用自己的王逼迫對方王到角落去 3.不是馬步走馬步 想辦法按正確的走法用已方王和對方王走成馬字步的局面 4.捉車就遠離 有時聰明的對方王會來捉你的車,這時就用車離它遠點,記住 離,豎線鎖門就豎線遠離 5.對王就將軍 如果對方的王和已方王走成了對王時,就是將...

1345 西洋棋

西洋棋的棋盤是黑白相間的8 8的方格,棋子放在格仔中間。王 後 車 象的走子規則如下 王 橫 直 斜都可以走,但每步限走一格。後 橫 直 斜都可以走,每步格數不受限制。車 橫 豎均可以走,不能斜走,格數不限。象 只能斜走,格數不限。你的任務是寫乙個程式,給定起始位置和目標位置,計算王 後 車 象從起...

西洋棋皇后問題

1 八皇后問題 2 求解思路 3 實現 include include object.h include linklist.h using namespace std using namespace mylib template class queuesolution public object s...