1.3 编写程序求解字谜游戏问题

/*原理:由于字谜游戏,需要从不同方向组合,所以本程序大致上分了3个方向:1.纵向 -- (含逆向和顺序)2.横向 -- (同上)3.对角 -- (左上,右上,左下,右下)用循环厉遍字谜表中每一个元素,再对每个元素进行各个方向的匹配,找出正确的单词组合。注意:注释中的 “方向1”为 左上   “方向3”为 右上“方向2”为 右下   “方向4”为 左下采用直观的方法描述,由于是做习题,所以没有参考网上的答案。*/
#include <iostream>
#include <string>
using namespace std;string answer[5] = {"two","log","that","dog","odd"};
size_t counter = 0;
size_t total = sizeof(answer)/sizeof(string);void check(string vs)
{for(int i=0;i<total;i++){if (vs == answer[i]){counter++;//cout<<"test:"<<vs<<endl;}}
}
int main()
{//字谜表char guess[4][4] = {{'l','g','i','t'},{'t','o','d','a'},{'w','d','g','h'},{'o','g','d','t'},};string str1 = "",str2 = "",str3 = "";for (int i=0;i<=3;i++){for (int j=0;j<=3;j++){//--------------------------横向顺序--------------------------for (int k=j;k<=3;k++){str1 += guess[i][k];check(str1);}//--------------------------横向逆序--------------------------if (j!=0){string str1_1 = "";for (int k=j;k>=0;k--){str1_1 += guess[i][k];check(str1_1);}}str1 = "";//--------------------------纵向顺序--------------------------for (int k=j;k<=3;k++){str2 += guess[k][i];check(str2);}//--------------------------纵向逆序--------------------------if(i!=0){string str2_2 = "";for (int k=i;k>=0;k--){str2_2 += guess[k][j];check(str2_2);}}str2 = "";//---------------------------对角---------------------------int indexI = 0,indexJ = 0;//no problem!! 方向1if(!(i==0||j==0)){indexI = i;indexJ = j;int d = (i<j?i:j);if (i==j)d = i;for (int k=d;k>=0;k--){str3 += guess[indexI--][indexJ--];check(str3);}str3 = "";}//done bug方向2if(!(j==3||i==3)){indexI = i;indexJ = j;int d = i<j? j:i;//决定第三层循环的次数for (int k=0;k<=3-d;k++){str3 += guess[indexI++][indexJ++];check(str3);}str3 = "";}//done bug.方向3if (!(i==0 || j==3)){indexI = i;indexJ = j;int d;if (i==1)d = i;else if (i==2){if (j==0||j==1)d = 2;elsed = 1;}else if (i==3)d = i-j;for (int k=0;k<=d;k++){str3 += guess[indexI--][indexJ++];check(str3);}str3 = "";}//方向4//done bugif (!(i==3 || j==0)){indexI = i;indexJ = j;int d;if (i==0)d = j;else if (i==1){if (j==1)d = 1;elsed = 2;}else if (i==2)d = 1;for (int k=0;k<=d;k++){str3 += guess[indexI++][indexJ--];check(str3);}str3 = "";}}}cout<<"total number:"<<counter;return 0;
}

Weiss-(DSAA - in C,1.3)字谜游戏相关推荐

  1. 选择问题 and 字谜游戏问题

    #include <stdio.h> #include <stdlib.h> // 第一题 // 找出N个数的第k个最大者 // 方法1:排序(冒泡),降序找出第k个值 // ...

  2. 为什么不可以使用哈曼顿距离_用Python计算8字谜游戏中的曼哈顿距离

    我试图用Python编写一个简单的a*解算器,用于一个简单的8字谜游戏. 我用这种方式代表了我比赛的目标:goal = [[1, 2, 3], [8, 0, 4], [7, 6, 5]] 我的问题是, ...

  3. 数据结构猜字谜游戏(Java语言编写)

    前几年买的一本数据结构与算法分析的书籍, 偶然看到以前有很多题目没有做, 现在抽空来看一下. 题目:输入是由一些字母构成的一个二维数组以及一组单词组成.目标是要找出字谜中的单词, 这些单词可能是水平. ...

  4. Java 猜字谜游戏

    package fundmental_excise6;import java.util.Arrays; import java.util.Scanner;/*** @author : jeasion* ...

  5. 简单的字谜游戏--可扩展--2015年7月25日14:58:00V1.1版

    1.string类find匹配法 #include <iostream> #include <string> #include <cstring> #include ...

  6. java获取一个目录下所有字谜_Java 猜字谜游戏 - osc_4jkldo6l的个人空间 - OSCHINA - 中文开源技术交流社区...

    package fundmental_excise6; import java.util.Arrays; import java.util.Scanner; /** * @author : jeasi ...

  7. [转载] python猜字谜游戏_Python Hangman猜字游戏

    参考链接: Python中的Hangman游戏 这是经典猜字游戏"Hangman"的Python脚本.要猜的词用一行破折号表示.如果玩家猜出单词中存在的字母,则脚本会将其写入所有正 ...

  8. 玩“字谜游戏” 能瞒过网友的火眼金睛?

    远离消费陷阱,提升消费体验,黑猫投诉平台全天候服务,您的每一条投诉,都在改变这个世界.[投诉,就上黑猫] 相关新闻:腾讯回函中消协:王者荣耀情人节皮肤未进行虚假宣传 新浪科技 肖云红 "天美 ...

  9. Problem Set 2 Hangman Game字谜游戏

    @author: LiuYulin """ Problem Set 2, hangman.py Name: Collaborators: Time spent: Hang ...

  10. c语言中的猜字谜游戏

    #include <stdio.h> #include <string.h> #include <windows.h>    //定义了Windows的所有资料型态 ...

最新文章

  1. 傅里叶变换性质证明卷积_傅里叶变换(三) 采样与离散序列
  2. Go Web学习(2)——实现中间件(middleware)
  3. 【Python】青少年蓝桥杯_每日一题_8.19_数字组合
  4. opencv 裁剪 java_OpenCV绘制轮廓和裁剪
  5. Spring框架设计
  6. WPF自定义控件的自定义属性绑定后不更新问题
  7. php 获取服务器,PHP 获取服务器详细信息
  8. linux做一个客户端与WemosD1作为服务器的无线通信(局域网通信)
  9. python综合管理系统_Python-20 (信息系统-框架/循环/增删/综合应用)
  10. 【摘录】《程序设计导引及在线实践》之排列
  11. 让Json更懂中文(JSON_UNESCAPED_UNICODE)
  12. 数据结构-栈的实现之括号匹配检测
  13. 最速下降法python_最速下降法python实现
  14. 通信接口:UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB
  15. android CTS GTS 环境搭建
  16. 唐朝义成公主的悲惨命运是怎样的?
  17. 【2014】手机卡关于怎么剪 让我告诉你
  18. CAJViwer安装提示:请求的操作需要提升
  19. Unity粒子系统基本
  20. CORBA的简单介绍及HelloWorld

热门文章

  1. 网页游戏《Drakensang》评测——改进道具收费模式可行性分析
  2. 基于simulink的微电网虚拟同步发电机vsg控制系统仿真
  3. 《21世纪资本论》阅读摘要
  4. wav用matlab打不开,Matlab如何读取wav文件,为什么wavread不行啊
  5. 机器学习笔记 - 学习使用TensorFlow和张量处理单元 (TPU) 构建图像分类模型
  6. 微信 存储目录 计算机,电脑微信文件夹保存位置
  7. 小刘同学的第一百二十二篇博文
  8. DirectX12(D3D12)基础教程(十八)—— PBR基础从物理到艺术(下)
  9. 洛谷 — 旅行商的背包(背包)
  10. linux单引号作用,单引号 双引号如何输入(Linux运维:单引号与双引号的使用)...