51Nod 1995 三子棋(思維)

2021-08-15 18:55:35 字數 1113 閱讀 2307

基準時間限制:1 秒 空間限制:131072 kb 分值: 0 難度:基礎題

小的時候大家一定玩過「井」字棋吧。也就是在九宮格中,只要任意行、列,或者任意連續對角線上面出現三個相同的,就能獲勝。現在小明和小花也在玩三子棋,但是他們不是在九宮格裡,而是在3×4的格仔裡面。現在小明先下,但是他知道小花這個人很聰明,他想知道第一步下在哪乙個地方最合適,你能幫幫他嗎?

第一行輸入乙個整數t,表示資料組數(1每組資料輸出最後小明輸贏的結果,如果小明一定能贏,第一行輸出「win」,第二行輸出小明所需要花的最少步數;如果小明跟小花只能打成平手,第一行輸出「equal」,第二行輸出數字0;如果小明不能贏也不能跟小花打成平手,第一行輸出「lose」,第二行輸出小花贏小明所需要花的最少步數。

2

2 12 4

equal

0equal

0

每行三個要連續的三個才算贏,中間不能被打斷。找規律真麻煩,畫了好久qaq

思路:3*4的**可以看出是乙個對稱的**,數字相同的格仔是等效的,即放在等效格仔裡要贏走的步數是一樣的。

當放在3位置的時候,不論怎麼放都是平局。

放在1位置時,小明穩贏(紅色的是小明,先走),穩贏的步數為6

當放在位置2的時候,小明穩贏,步數是4

放在位置4的時候,最少4步

//走法不唯一,但是最少的獲勝步數是不變的

ac**:

#includeusing namespace std;

int main()

return 0;

}

三子棋遊戲

首先介紹一下三子棋遊戲規則 這是乙個玩家和電腦對戰的三子棋遊戲 棋盤如上圖所示,三個棋子連在一起則勝利 下面就是用c語言實現的方法 建立棋盤 利用二維陣列來實現乙個棋盤,棋盤剛開始是沒有任何棋子的,將二維陣列所有元素初始化為空格即可 玩家下棋 玩家輸入棋盤中的對應座標來下棋,下棋時需要考慮輸入座標合...

三子棋遊戲

閒來無事,竟意外發現了三子棋遊戲,順便實現了這個過程,我們一起來看下。三子棋的實現需要的是五個函式,我用了initboard 初始化棋盤函式 display 列印棋盤函式 player 玩家 computer 電腦 check full 判斷棋盤是否已滿,從而判斷輸贏 game.h define c...

三子棋遊戲

遊戲部分思路 初始化棋盤 玩家下棋 輸出棋盤 判斷輸贏 電腦下棋 判斷輸贏 迴圈這部分,直到有人贏得比賽 效果圖 test,c原始檔 define crt secure no warnings include game.h void menu void game char win init boar...