串串字连环
2015-09-22 18:39
337 查看
利用5*5大小的英文字母格子进行的游戏。规则是:连接上下左右、对角线方向上相邻的字母,组成一个单词。
实现代码如下:
/*
*Boggle.cpp
*
* Created on: 2015年9月22日
* Author: sl
*/
#include<iostream>
using namespace std;
const int dx[8] = {-1,-1,-1,1,1,1,0,0};
const int dy[8] = {-1,0,1,-1,0,1,-1,1};
char board[5][5] = {
{'N','N','N','N','A'},
{'N','E','E','E','N'},
{'N','E','Y','E','N'},
{'N','E','E','E','N'},
{'N','N','N','N','N'}
};
bool inRange(int y, int x){
if(x<0|| y<0 || x>=5 ||y>=5)
returnfalse;
elsereturn true;
}
//下面函数返回从字母格子(y,x)起始的单词是否存在
bool hasWord(int y, int x, conststring& word){
if(!inRange(y,x))return false;
if(board[y][x]!=word[0])return false;
if(word.size()==1)return true;
for(intdirection = 0;direction<8;direction++){
intnextY = y+dy[direction], nextX = x+dx[direction];
if(hasWord(nextY,nextX,word.substr(1)))
returntrue;
}
returnfalse;
}
int main()
{
cout<<hasWord(2,2,"YEA");
}
实现代码如下:
/*
*Boggle.cpp
*
* Created on: 2015年9月22日
* Author: sl
*/
#include<iostream>
using namespace std;
const int dx[8] = {-1,-1,-1,1,1,1,0,0};
const int dy[8] = {-1,0,1,-1,0,1,-1,1};
char board[5][5] = {
{'N','N','N','N','A'},
{'N','E','E','E','N'},
{'N','E','Y','E','N'},
{'N','E','E','E','N'},
{'N','N','N','N','N'}
};
bool inRange(int y, int x){
if(x<0|| y<0 || x>=5 ||y>=5)
returnfalse;
elsereturn true;
}
//下面函数返回从字母格子(y,x)起始的单词是否存在
bool hasWord(int y, int x, conststring& word){
if(!inRange(y,x))return false;
if(board[y][x]!=word[0])return false;
if(word.size()==1)return true;
for(intdirection = 0;direction<8;direction++){
intnextY = y+dy[direction], nextX = x+dx[direction];
if(hasWord(nextY,nextX,word.substr(1)))
returntrue;
}
returnfalse;
}
int main()
{
cout<<hasWord(2,2,"YEA");
}
相关文章推荐
- 23 HBase 存储架构。
- 详解C++编程的多态性概念
- 使用 Java 实现 Comet 风格的 Web 应用
- Android中解决ScrollView下拉阴影的问题(ListView也应该可以的,没有亲测)
- python3 入门 (一) 基础语法
- vim快捷键
- Visual C++ Tips: 创建 x64 Target
- Cocoa编码规范
- POJ1562
- Android 实现沉浸式状态栏
- 网页细分图结果分析(Web Page Diagnostics)
- 二分匹配各种姿势
- 转:Eclipse Debug 界面应用详解——Eclipse Debug不为人知的秘密
- C# 时间类型
- AS3.0的元素处理(三)-- TextFormat
- Xcode7打包上传App Store发生ERROR ITMS-90535 错误解决方法
- poj 3687 Labeling Balls
- 面试心得与总结---BAT、网易、蘑菇街
- HDOJ 2147 kiki's game(基础博弈)
- python下的自动化测试--selenium 验证码输入问题