分享个好玩的算法游戏

笔者简介:

从小就不是个勤奋的孩子,一般事情都保持中游水平。对事情也没穷极的精神,所以我更喜欢听别人分享事情,从而去发现别人身上的优点。

如果用三分钟热度来形容我再恰当不过了,我会把应该做的事做好至于其他的?。。看心情!

很羡慕那些有思想有作为的人,在我看来他们很有‘正事’,当然我也会慢慢的向那个方向发展,尽管需要时间的沉淀(哈哈)

作为众多程序猿中妹纸,我决定为自己起个艺名,不,笔名!为了展现我们团队中不同的性格,我也建议大家在写的时候注明自己的艺名!

那么问题来了,浏览Iteye时看到的问题,顺便边研究边给大家献丑。。。

〇  X  〇 〇 〇

〇 〇 〇 〇 〇

〇 〇 〇 〇 〇

〇 〇 〇 〇 〇

〇 〇 〇 〇 〇

不过X点,把所有的圈连起来,不能重复,不能斜连,不能跳圈

第一步:我把这个图变成程序可看懂的语言

11 12 13 14 15

21 22 23 24 25

31 32 33 34 35

41 42 43 44 45

51 52 53 54 55

第二步:设置了四个事件

首先每个点有四个走的方向,我给设置了四个方向事件

分别为:向上走、向下走、向左走、向右走

private function left($x, $y, $oldArr)

{

if($y > 1)

{

if(false == in_array($x.$y-1, $oldArr)    //判断此点是否走过

{

$oldArr[] = $x.$y-1;//记录走过的点

return $x."-".$y-1;//返回下一个点

}

}

return false;

}

private function right($x, $y, $oldArr)

{

if($y < 5)

{

if(false == in_array($x.$y+1, $oldArr)

{

$oldArr[] = $x.$y+1;

return $x."-".$y+1;

}

}

return false;

}

private function up($x, $y, $oldArr)

{

if($x > 1)

{

if(false == in_array($x-1.$y, $oldArr)

{

$oldArr[] = $x-1.$y;

return $x-1."-".$y;

}

}

return false;

}

private function down($x, $y, $oldArr)

{

if($x < 5)

{

if(false == in_array($x+1.$y, $oldArr)

{

$oldArr[] = $x+1.$y;//记录走过的点

return $x+1."-".$y;

}

}

return false;

}

第三步:开始写试运行方法

当起点固定以后,开始选择方向,当一个方向可走时,走到下一个点,然后继续选择方向,循环往复,直到所有点都走通为止。

public function goTry($x, $y, $oldArr, $methods)

{

$oldArr[] = $x.$y;

foreach($methods as $method)

{

$next = $this->$method($x, $y, $oldArr);//循环走四个方向的可能性

if(false == empty($next)) //如果此方向可走则继续,否则,走另一个方向

{

$xy = explode("-", $next);

if($xy[0] != 1 && $xy[1] != 2) //12点处不能走

{

goTry($xy[0], $xy[1]); //递归循环

}

}

}

}

第四步写主方法:循环取调用

public function AGame($request, $response)

{

$methods = array(‘left‘, ‘right‘, ‘up‘, ‘down‘);

for($i=1;$i<=5;$i++)

{

for($j=1; $j<=5; $j++)

{

//换不同的起点

if($i != 1 && $j != 2)

{

$oldArr = array();

goTry($i, $j, $oldArr, $methods);

if(count($oldArr) == 24)

{

var_dump($oldArr);exit;

}

}

}

}

}

以上算是我分享的过程,代码写的可能有很多不好的地方,但写算法还是挺有意思的一件事。像递归方法只听过也是首次真正的去用,有些知识了解没有用,当你真需要的时候估计不小心就想到了

因为知道的知识甚少,上午看了个小游戏有点兴趣就写博客的过程边实现了下。。。

最后注我的笔名                      ---小梦

同步博文:http://www.cnblogs.com/newbalanceteam/p/4835894.html

时间: 2024-08-07 04:14:38

分享个好玩的算法游戏的相关文章

BZOJ2900 好玩的数字游戏

好玩的数字游戏 TK在虐题的同时,也喜欢玩游戏.现在,有这样的一个游戏,规则是这样的:先随机给出一个数字N,然后你在操场上把1到N的所有数字写成一排,就像这样:123456789101112131415-.接着你在每个数字前面添上加减号,每逢排在奇数位上的数字,就写上加号:每逢排在偶数位上的数字,就写上减号.恩-最后你得到一个超级长的式子.并且可以算出这个式子的结果.TK觉得这个游戏很有意思,于是他没日没夜地玩啊玩啊玩啊-或许你觉得这个游戏没有意思-恩-但是,如果你是TK,对于给定的N,你能够算

【分享】VNR翻译日语游戏汉化简易图解教材2

[分享]VNR翻译日语游戏汉化简易图解教材 http://867258173.diandian.com/post/2014-07-19/40062240755  请先看上面[PC,PSP,同人志翻译图解教材]和下载[J北京各版本],[J北京词典].[精灵虚拟光驱],[APP,NT,LE,,Ntleas四大转码工具]和[AlphaROM一键破解],7z之类相关的 请先看上面地址和下载,以后更新的教材和新的整合版将在这里补充.   使用OCR光学识别自动翻译游戏 添加[人工字幕]提高翻译质量   游

【分享】VNR翻译日语游戏汉化 简易图解教材3

★善加利用[Ctrl+F]快捷键搜索关键字查找需要教程和下载★ ★按[Eng]键到页面底端,直接下载最新版VNR.[Home]键返回页面顶端★   [分享]VNR翻译日语游戏汉化简易图解教材 http://867258173.diandian.com/post/2014-07-19/40062240755 1. 请先看上面VNR翻译galgame教程 2.VNR翻译PPSSPP模拟器打开PSP游戏 VNR只支持PPSSPP0.9.8和0.9.9版本[PPSSPPWindows.exe]翻译. 不

推荐几个好玩的手机游戏

封面:摘要:这里推荐几个我个人玩过的, 觉得比较好玩的手机游戏给大家,游戏都是iOS平台,安卓平台有没有上线,我没有验证过,请读者们自行搜索! 正文:我个人比较喜欢玩单机游戏,所以推荐的单机游戏会比较多一点, 当然,网游也多少会有一点! 1.暗影格斗2(Shadow Fight2)这个游戏最开始是在facebook上的一个,后来移植到手游平台,游戏的节奏比较慢,最开始玩的时候,是被这个游戏的画面给惊叹了,非常喜欢这种风格的美术画面,虽然我只是个程序! 2.纪念碑谷(Monument Valley

[转]分享20佳好玩的 jQuery 游戏

本文转自:http://www.cnblogs.com/lhb25/archive/2011/04/17/2001089.html jQuery是时下最流行的 JavaScript 库.现在,除了HTML5以外,也有很多jQuery爱好者使用jQuery来开发游戏,虽然效果没有Flash那么好,但是这些游戏也看起来很酷.今天本文收集了20佳基于jQuery开发的特色游戏,一起来欣赏吧! 1- Tetris with jQuery 2- Game Query- Game engine for jQ

分享两款好玩的单机游戏^_^

时空幻境 下载链接:https://pan.baidu.com/s/10M3WyN5pDqR8OcAYnjod2g,提取码:zk3q 狙击精英V2 下载链接:https://pan.baidu.com/s/18QiZ53RfDDH5FkGDD7Rf_Q,提取码:kxn2 P.S. 启动游戏时若提示缺失d3dx9_43.dll,安装DirectX便可解决 原文地址:https://www.cnblogs.com/buyishi/p/10667406.html

【分享】VNR翻译日语游戏汉化简易图解教材

请[点击图片]到新链接看[原图].不然博客自动缩小图,看不清图解. 上面是用美少女万花镜来测试新版VNR翻译的如何,结果比我预料还要好.以前旧版根本比不上新版的.翻译非常准确.看了我上面的简易VNR图解,应该了解了怎样翻译了吧.接下来就是D.C.III.RX翻译. 来看下翻译效果吧. 最新版文本设置,其它还都是一样. D.C.III RX在VNR下全屏化 如果出现部分打开GAL游戏VNR却不自动弹出翻译窗口和翻译不出文本,请看下面解决方法. 提取文本后无法翻译或翻译不完整,不通顺解决方法 D.C

台湾游戏制作人分享:让玩家提升游戏耐玩度的8个小技巧

转自:http://www.gameres.com/667210.html RPG 游戏有方法可以设计得更耐玩,因为制作一款稍具规模的游戏,少则数月.动辄数年,若一款游戏能玩得更久,既对制作游戏的人划算,也对买游戏的人划算了. 但我并不是鼓励一味拖台钱,而是觉得可以‘适度’延长,就像马卡龙虽然精致但一口就没了,不足以满足玩家的话也挺可惜的. 例如这款十多年前的打雪仗小游戏,虽然有趣但只有寥寥数关 既没有 Boss.也没有高分榜什么的,根本玩不过瘾哪! 以下就来分享一些我所知道的小技巧吧! 延长游

APG -- Algorithm PlayGround 基于Phaser 的算法游戏(类rpg)框架

APG--Algorithm PlayGround 项目地址 一个有趣,智能和简单的HTML5游戏框架 简单的开发方式,将你的算法变成游戏 对PhaserCE库的封装开发 70+个函数接口可供使用,通过配置文件智能优化游戏 提供可视化的地图编辑方案 官网 官网(备用) Demo 演示 git page(可能会慢) 国内使用 使用在线地图编辑器 APG MapEditor 下载 APG.js MapEditor 使用在线库 github直连 https://sucicada.github.io/A