解決乙個流行的字謎。輸入是由一些字母和單詞的二維陣列組成。目標是趙楚字謎中的單詞,這些單詞可能是水平、垂直或沿著對角
線異任何方向放置的。例如求解下圖:
圖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...