1. 程式人生 > >66中國跳棋(7)162(8)169(9)175(10)181(11)

66中國跳棋(7)162(8)169(9)175(10)181(11)

#include<iostream> using namespace std; int sum(int list[][7]) //sum函式用來返回最後剩餘多少個棋子 { int sum = 0; for (int i = 0; i < 7; i++)for (int j = 0; j < 7; j++)sum += list[i][j]; return sum - 49; ///////////////////////////這個地方和獨立鑽石不一樣 } void up(int list[][7], int i, int j) //跳過(i,j)往上跳 { list[i - 1][j] ++; list[i][j]
--; list[i + 1][j] --; } void down(int list[][7], int i, int j) //跳過(i,j)往下跳 { list[i + 1][j] ++; list[i][j] --; list[i - 1][j] --; } void left(int list[][7], int i, int j) //跳過(i,j)往左跳 { list[i][j - 1] ++; list[i][j] --; list[i][j + 1] --; } void right(int list[][7], int i, int j) //跳過(i,j)往右跳
{ list[i][j + 1] ++; list[i][j] --; list[i][j - 1] --; } bool move(int list[][7]) //找出任何可以跳的一步,並跳,跳完之後遞迴呼叫move(),直到不能再跳 { if (sum(list) < 4)return true; //當得到一種只剩下3顆棋子的方法,程式結束 for (int i = 1; i < 6; i++)for (int j = 0; j<7; j++) { if ((i == 3 || j>1 && j < 5) &&
list[i][j] == 2) { if (list[i - 1][j] == 1 && list[i + 1][j] == 2) //滿足往上跳的條件 { up(list, i, j); if (move(list)) { cout << i << j << "up "; return true; } down(list, i, j); //恢復list和result list[i][j] += 2; } else if (list[i - 1][j] == 2 && list[i + 1][j] == 1)//滿足往下跳的條件 { down(list, i, j); if (move(list)) { cout << i << j << "down "; return true; } up(list, i, j); list[i][j] += 2; } } } for (int i = 0; i < 7; i++)for (int j = 1; j < 6; j++) { if ((j == 3 || i>1 && i < 5) && list[i][j] == 2) { if (list[i][j - 1] == 1 && list[i][j + 1] == 2)//滿足往左跳的條件 { left(list, i, j); if (move(list)) { cout << i << j << "left "; return true; } right(list, i, j); list[i][j] += 2; } else if (list[i][j - 1] == 2 && list[i][j + 1] == 1)//滿足往右跳的條件 { right(list, i, j); if (move(list)) { cout << i << j << "right "; return true; } left(list, i, j); list[i][j] += 2; } } } return false; } int main() { int list[7][7]; //list用來表示狀態,1表示空格,2表示有棋子 ////////////////不像獨立鑽石用0表示角落,為了方便,這裡也用1 for (int i = 0; i < 7; i++) ////////////////這個初始化和獨立鑽石不一樣 for (int j = 0; j < 7; j++) { list[i][j] = 1; if (i == 3 || j == 3)list[i][j] = 2; } list[2][4] = list[4][2] = list[2][2] = list[4][4] = 2; list[3][3] = 1; //初始化list move(list); cout << endl << "注意,輸出的順序是反著的"; system("pause>nul"); return 0; }

相關推薦

66中國跳棋7162816991751018111

#include<iostream> using namespace std; int sum(int list[][7]) //sum函式用來返回最後剩餘多少個棋子 { int sum = 0; for (int i = 0; i < 7; i++)for (int j = 0;

三周第三次課 3.7 su命令 3.8 sudo命令 3.9 限制root遠程登錄

su sudo 3.7 su命令1、su命令su命令是用來切換用戶的;su命令需要使用- 進行切換,如果不使用- 也可以,但當前目錄是在root下,沒有徹底切換在root下 使用su命令創建文件,以指定用戶的身份創建文件切換後顯示-bash-4.2因為user5的用戶的家目錄是不存在的,也沒有用戶的配

3.7 su命令 3.8 sudo命令 3.9 限制root遠程登錄

3.7 su命令 3.8 sudo命令3.7 su命令 :用於切換用戶身份su - aming 切換用戶的同時,把用戶的環境變量也切換過來su:以某個用戶的身份執行某條命令,實例如下: 3.8 sudo命令 配置sudo必須通過編輯/etc/sudoers文件,而且只有超級用戶才可以修改它,還必須使用

牛客667斐波那契數列

大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。 n<=39;斐波那契數列特徵為除第一項與第二項外其餘項均為前兩項的和。 class Solution { public: int Fibonacci(int n) {

187中國跳棋12194132001420615212162171722318

智力遊戲180中國跳棋(12)194(13)200(14)下面的方法,原則上來說和上面的是一樣的,只不過執行順序有一點點不一樣而已。上面的是計算機求出來的,但是下面的更符合人性化的思維,比如連跳不應該拆

樹莓派3學習筆記77分辨率800 480顯示器配置

樹莓派、顯示器配置樹莓派3學習筆記(7):7寸(分辨率800 480)顯示器配置 樹莓派搭載分辨率為800X480的顯示器在顯示的時候可能會遇到無法全屏顯示的問題, 顯示器只有部分能夠顯示,有一部分是黑邊,對於這一種情況,我們只需進入系統的boot目錄,找到config.txt文件,或者直接在命

JQuery系列7 - JQuery最佳實踐

get 參考 cti query jquer html .html bsp best 參考 【1】阮一峰 http://www.ruanyifeng.com/blog/2011/08/jquery_best_practices.htmlJQuery系

樹講解7——沒有上司的舞會

一個 哪些 們的 一定的 如果 參加 大學 增加 計算 題目描述 某大學有N個職員,編號為1~N。他們之間有從屬關系,也就是說他們的關系就像一棵以校長為根的樹,父結點就是子結點的直接上司。現在有個周年慶宴會,宴會每邀請來一個職員都會增加一定的快樂指數Ri,但是呢,如

Windows Phone開發7:當好總舵主

發的 content 數據 new 窗口 sdn 內容 str 剛才 吹完了頁面有關的話題,今天我們來聊一下頁面之間是如何導航的,在更多情況下,我們的應用程序不會只有一個頁面的,應該會有N個,就像我們做桌面應 用開發那樣,我們一個應用程序中可能不止一個窗體(極簡單的程序除外

站立會議7

美化 還需要 自己 會議 cnblogs height image img 站立會議 會議內容:各組員將自己的完成情況都匯報一下,現在大家都基本完成了界面的設計,功能還需要進行深入。然後大家提了自己的問題,經過小組討論終於是解決了問題。接下來的我們小組會繼續優化,美化,爭取

java 筆記7 static關鍵字的應用

ble 變量 leg wal spa dog pub 類變量 oid import java.util.Enumeration; class Dog{ static int legNum; int age; public stati

《構建之法》學習7——MSF

發現 解決方案 msf 我們 基本原則 無法 strong 出了 微軟 《構建之法》學習(7)——MSF 1.MSF簡史   微軟解決方案框架,也就是微軟推薦的軟件開發方法 2.MSF基本原則   推動信息共享與溝通   所有信息都保留並公開,討論要包括所有

生成數字序列命令7

seq shuff 生成數字序列命令:seq,shuf7.1.seq功能:打印數字序列語法:seq [OPTION]... LAST seq [OPTION]... FIRST LAST seq [OPTION]... FIRST INCREMENT LAST常用選項:-f 使用prin

C#學習筆記7——委托

() namespace test task cnblogs [] string 命名空間 program 說明(2017-5-29 22:22:50): 1. 語法:public delegate void mydel();這一句在類外面,命名空間裏面。 2. 專門新建一

《大話數據結構》筆記7-3--圖:圖的遍歷

結構 圖的遍歷 -- 前序遍歷 pan 鄰接矩陣 時間 earch img 第七章 圖 圖的遍歷 從圖中某一個頂點出發訪遍圖中其余頂點,且使每一個頂點僅被訪問一次,這一過程就叫做圖的遍歷(Traversing Graph)。 深度優先遍歷(Depth Fir

直播疑難雜癥排查7— 黑屏、花屏、閃屏問題

黑屏 疑難雜癥 直播 花屏 綠屏 本文是 《直播疑難雜癥排查》系列的第七篇文章,我們來重點看看直播中常見的各種黑屏、花屏、閃屏問題。首先我們要明白,黑屏、花屏、閃屏等問題,可能是推流端的問題,也可能是播放器的問題,遇到這些現象,我們要第一時間用別的播放器(如 VLC,ffplay)試試,如

maven入門7maven項目組件的坐標

core 反向 插件 iteye 分享 表達方式 基礎 推薦 star 1.為什麽要定義Maven坐標 在我們開發Maven項目的時候,需要為其定義適當的坐標,這是Maven強制要求的。在這個基礎上,其他Maven項目才能應用該項目生成的構件。 2.Maven坐標

java基礎7

機房 執行 r+ 簡單 code print pre word 輸出 一、理解什麽是類和對象 萬事萬物皆對象 1、屬性——對象具有的特征(特點) 2、方法——對象可執行的操作(能幹什麽事) 3、對象的定義: 是一個客觀存在的,看的見或摸得

數據庫7

src -- str left join 技術分享 bsp select 條件 一個 多表連接(就是把多個表變成一個表再去操作) 內連接(inner join...on)   select...   from 表1 inner join 表2 on 連接條件