求解字謎遊戲問題

2021-06-22 20:56:13 字數 1656 閱讀 7879

解決乙個流行的字謎。輸入是由一些字母和單詞的二維陣列組成。目標是趙楚字謎中的單詞,這些單詞可能是水平、垂直或沿著對角

線異任何方向放置的。例如求解下圖:

圖1-1 字謎示例12

341t

his2

wats

3oah

g4fg

dt

書中給出的直觀演算法:對單詞表中的每個單詞。我們檢查每乙個有序三元組(行,列,方向),驗證單詞的存在。算是直接暴力查詢吧。書中後續章節有優化方法, 以後再做研究。現直觀演算法**如下:

#include #include #include #include #define word_puzzle_table_width 4

#define word_puzzle_table_hight 4

/** 字謎表 */

const char word_puzzle_table[word_puzzle_table_width][word_puzzle_table_hight] =

, ,

,};/** 單詞表 */

const char *word_table = ;

#define word_table_len (sizeof(word_table) / sizeof(char*))

/** 點結構體 */

typedef struct point

point;

/** * 查詢結果結構體

* pword 查詢結果單詞指標

* begin 單詞的開始位置

* end 單詞的結束位置

* note:約定於座標軸的方式表示,如:

* 0 -----> x

* |

* |

* |y

*/typedef struct result

result;

/** 定義查詢方式巨集 */

#define search_beg 1

#define left_to_right 1

#define right_to_left 2

#define top_to_upper 3

#define upper_to_top 4

#define main_diagonal 5

#define r_main_diagonal 6

#define counter_diagonal 7

#define r_counter_diagonal 8

#define search_end 8

/** * 將字母c追加到字串arras後面

* arras 待追加字串指標

* c 待追加字母

*//**

* 查詢函式

* presult_set 查詢結果集

*/void search(result *presult_set)

執行結果:

編寫乙個程式求解字謎遊戲問題

問題描述 輸入是由一些字母和單詞構成的二維陣列,目標是找出字謎中的單詞,這些單詞可以是水平 垂直或沿對角線以任何方向放置。編寫乙個程式求解字謎遊戲問題 t h i s 找出 this two fat that w a t s o a h g f g d t 分析 方向有8種 1從左到右 2從右到左 ...

猜字謎遊戲

include include include int main void printf 請輸入四個不重複的數字 n for else printf da db m,n 猜數字 系統在0 9中隨機生成不重複四個數排列成四位數,然後讓猜數者每次通過從0 9中任選四個數字來猜使用的是哪四個數字和這四個數...

C語言猜字謎遊戲

採用課本所提有序四元組來解決 在編輯 過程中發現乙個有趣的問題 void input table char table 4 4 輸入謎面void output table char table 4 4 printf n 輸出謎面 char skewtrix char table 4 4 char t...