第四次作业——WORDSEARCH小游戏
“谁想出来的这么缺德的题目啊!!!!”一个声音在我心中回荡
这个题目很早就在课堂上公布了,我和我的小伙伴都惊呆了!
这是个毛?根本无从下手的感觉
总是觉得这个小游戏不是程序能给出答案的,因为我的第一印象总是我们给出一种规则,然后程序根据规则摆放单词,这种事情很不靠谱。。
加上老师给的例子也让人惊呆,那个能摆放的更密集一点么???!!!
一节课的商讨和观察以后,我和我的小伙伴达成一致意见,从斜着的方向起手,应该很容易完成,于是长达N星期的第四次作业总算有个能开始的理由了。。
思路:
选出wordlist中最短的几个单词,这个“几”可以是任意的,一般可以定为一个wordlist中20%的单词,这是个不错的数字
比如一个40个的wordlist,我选出其中的8个最短的作为横竖排列的目标
优先斜向排列的原因是我们发现如果斜向排列那么主对角线方向和次对角线方向的单词会互相不影响
这是个伟大的发现!
如果我们能将32个单词全部斜向排列好,那么横向和纵向的排列的剩下的8个单词只需要填补空隙就行了~
按着这个思路我们写下了如下程序
PS:这次作业我实在是不知道怎么写,于是交给我的大神队友来完成排列的算法,而我负责写检查的算法,就是给出一个单词检索它是否有重复或者存在。
给出一个单词矩阵
通过find算法找到答案
给出一个更大的矩阵
得到答案
这是我的工作,写出的find函数给大神用来做检测
#include <cstdio>
#include <cstring>
#include <cstdlib>
char st[][];
char s[];
int n,m,l,flag;
bool find()
{
int move[][];
move[][]=-;move[][]=-;
move[][]=;move[][]=-;
move[][]=-;move[][]=-;
move[][]=;move[][]=;
move[][]=-;move[][]=;
move[][]=-;move[][]=;
move[][]=;move[][]=;
move[][]=; move[][]=;
int fx,k,xx,yy;
bool mi;
int i,j;
for (i=;i<n;i++)
for (j=;j<m;j++)
{
if (st[i][j]!=s[])continue;
for (fx=;fx<=;fx++)
{
xx=i;yy=j;mi=false;
for (k=;k<l;k++)
{
xx+=move[fx][];
yy+=move[fx][];
if (xx==-||yy==-||xx==n||yy==m)
{mi=true;break;}
if (st[xx][yy]!=s[k]) {mi=true;break;}
}
if (!mi) return true;
}
}
return false;
}
int main()
{
int i,j,k,x,y,t;
memset(st,'\0',sizeof(st));
memset(s,'\0',sizeof(s));
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
scanf("%d%d",&n,&m);
for (i=;i<n;i++)
scanf("%s",st[i]);
scanf("%s",s);
l=strlen(s);
flag=find();
if (flag) printf("有\n");else printf("没有\n");
return ;
}
大神写的算法代码我就不放了。。
我们一开始先做了斜向的
单词列表
只含斜向的生成图
由此可以看到:单词排布比较紧密,但是周边出现的空白部分也比较多,尤其在右侧和下侧
而我们留下了8个单词正好可以用横竖的方式填补这个空白,达到最终的效果。
我只能说我的小伙伴真的很厉害,他天天说自己是坑,不声不响把所有工作都做好了。
他很踏实,很能干,就是感觉有点不是很勤快,我知道大神都这样~~瞎搞搞就把事情搞定了~~
第四次作业——WORDSEARCH小游戏的更多相关文章
- python作业-2048小游戏
需了解的知识 Pygame中的各个模块及其功能: Pygame.init():初始化所有导入的模块 pygame.display: pygame.display.init() - 初始化 disp ...
- 第九章 nginx基础之搭建小游戏
一.nginx部署 1.epel源安装 [root@web01 ~]# yum install -y nginx 2.官方源安装 1.配置官方源[root@web02 ~]# vim /etc/yum ...
- 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”
这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...
- 微信小游戏 demo 飞机大战 代码分析(四)(enemy.js, bullet.js, index.js)
微信小游戏 demo 飞机大战 代码分析(四)(enemy.js, bullet.js, index.js) 微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞 ...
- Chrome自带恐龙小游戏的源码研究(四)
在上一篇<Chrome自带恐龙小游戏的源码研究(三)>中实现了让游戏昼夜交替,这一篇主要研究如何绘制障碍物. 障碍物有两种:仙人掌和翼龙.仙人掌有大小两种类型,可以同时并列多个:翼龙按高. ...
- 12岁的少年教你用Python做小游戏
首页 资讯 文章 频道 资源 小组 相亲 登录 注册 首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...
- 个人第四次作业Alpha2版本测试~顾毓
个人第四次作业Alpha2版本测试 这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/ 这个作业要 ...
- 个人第四次作业Alpha2版本测试
个人第四次作业Alpha2版本测试 这个作业属于哪个课程 软件工程 这个作业要求在哪里 作业要求 团队名称 GP工作室 这个作业的目标 对其他小组的项目进行测试 测试人员 陈杰 学号 20173102 ...
- jQuery实践-网页版2048小游戏
▓▓▓▓▓▓ 大致介绍 看了一个实现网页版2048小游戏的视频,觉得能做出自己以前喜欢玩的小游戏很有意思便自己动手试了试,真正的验证了这句话-不要以为你以为的就是你以为的,看视频时觉得看懂了,会写了, ...
随机推荐
- 【原创】中文分词系统 ICTCLAS2015 的JAVA封装和多线程执行(附代码)
本文针对的问题是 ICTCLAS2015 的多线程分词,为了实现多线程做了简单的JAVA封装.如果有需要可以自行进一步封装其它接口. 首先ICTCLAS2015的传送门(http://ictclas. ...
- PHP程序员最常犯的11个MySQL错误
对于大多数web应用来说,数据库都是一个十分基础性的部分.如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中举足轻重的一份子. 对于很多新手们来说,使用PHP可以在短短几个小时之内轻松 ...
- 公交wifi运营平台分析
一.前言背景 昨晚下午,老板让看一些车载公交wifi后台管理的一些东西,这个随着移动端设备而兴起的wifi战,慢慢的也会越演越烈. 现在于很多人在外面的时候,进入一家店首先看的不是菜单,而是问一句“你 ...
- uva 10453 - Make Palindrome(dp, 记录路径)
题目 题意: 给一个字符串 ,判断最少插入多少个字符 使字符串成为回文串, 并输出回文串. 思路:先用dp判断需要个数, 再递归输出路径. #include <iostream> #inc ...
- ACM - ICPC World Finals 2013 D Factors
原题下载:http://icpc.baylor.edu/download/worldfinals/problems/icpc2013.pdf 题目翻译: 问题描述 一个最基本的算数法则就是大于1的整数 ...
- CodeForces 489C (贪心) Given Length and Sum of Digits...
题意: 找出m位且各个数位数字之和为s的最大和最小整数,不包括前导0(比如说003是非法的),但0是可以的. 分析: 这题是用贪心来做的,同样是m位数,前面的数字越大这个数就越大. 所以写一个can( ...
- main cannot be resolved or is not a field
今天在做XML解析的时候,总是给我报 XML Parsing Error: XML or text declaration not at start of entity 的错误,后来查了下讲大概意思是 ...
- Repeater 控件 当数据源没有数据的时候显示 暂无数据 的两种方式
第一种:现在前台给Repeater控件外面的div加一个runat=”server” 然后在cs后台判断数据源是否为空, 是的话就修改这个前台div的InnerText或者是InnerHtml 即可 ...
- 图表框架HelloCharts(2)柱状图
1.效果图 2.xml代码 activity_column_chart.xml <FrameLayout xmlns:android="http://schemas.android.c ...
- LeetCode Swap Nodes in Pairs 交换结点对(单链表)
题意:给一个单链表,将其每两个结点交换,只改尾指针,不改元素值. 思路:迭代法和递归法都容易写,就写个递归的了. 4ms /** * Definition for singly-linked list ...