九黎侍者 九黎侍者
用心一也
关注数: 24 粉丝数: 157 发帖数: 12,440 关注贴吧数: 53
给刚才被删帖的那位求回形针的童鞋 思路是:如果前路不通,那就向左转 前路不通的条件有,超过边界,或者前面的数已经填上了 如果你要用数学的算法的话 我不会 我数学挂科了#include<stdio.h> #include<malloc.h> int GetNextStep(int *pa, int s0, int s1, int y, int x); int main() { int *a; int y, x;//数独大小a[x][y] int n = 1;//数值计数 int s1 = 0;//前一位位置 int s2 = 0;//当前位置 int st = 0;//位置暂存(中间变量) int i, j; printf("输入数组长度(列,行):"); scanf_s("%d", &y);//有多少列,即a[x][y]中x的大小 scanf_s("%d", &x);//有多少行,即a[x][y]中y的大小 a =(int *) malloc(sizeof(int)*y*x); for (i = 0; i < (y*x); i++) a[i] = 0; printf("数组:\n");//输出初始化后的数组 for (i = 0; i < x; i++) { for (j = 0; j < y; j++) { printf("%2d ", a[i*y + j]); } printf("\n"); } a[0] = 1;//先赋值前两个以定方向 a[1] = n = 2; s1 = 0; st=s2 = 1; while ((s2=GetNextStep(a,s1,s2,x,y))!=-1)//当无路可走时退出循环 { n++; a[s2] = n; s1 = st; st = s2; } printf("结果:\n");//输出计算后的数组 for (i = 0; i < x; i++) { for (j = 0; j < y; j++) { printf("%2d ", a[i*y + j]); } printf("\n"); } getchar(); return 0; } int GetNextStep(int *pa,int s0,int s1, int x, int y) { int i0 = s0 / y;//列 int j0 = s0 % y;//行 int i1 = s1 / y;//列 int j1 = s1 % y;//行 int arrow=0;//方向,1上,2右,3下,4左 //判断当前方向 if (j1 > j0&&i1 == i0)//向右 arrow = 2; else if (i1>i0&&j1 == j0)//向下 arrow = 3; else if (j1 < j0&&i1 ==i0)//向左 arrow = 4; else if (i1 < i0&&j1 == j0)//向上 arrow = 1; switch (arrow) { case 1://上 if ((i1-1)>=0&&pa[(i1-1)*y+j1]==0)//直走 { return (i1 - 1)*y + j1; } else if ((j1+ 1)<y && pa[i1*y + j1+1] == 0)//向左转 { return i1*y + j1 + 1; } break; case 2://右 if ((j1 + 1)<y && pa[i1*y + j1 + 1] == 0)//直走 { return i1*y + j1 + 1; } else if ((i1 + 1)<x && pa[(i1 + 1) *y + j1] == 0)//向左转 { return (i1 + 1) * y + j1; } break; case 3://下 if ((i1 + 1)<x && pa[(i1+1)*y + j1] == 0)//直走 { return (i1 + 1)*y + j1; } else if ((j1 - 1)>=0 && pa[i1*y + j1-1] == 0)//向左转 { return i1*y + j1 - 1; } break; case 4://左 if ((j1 - 1)>=0 && pa[i1*y + j1-1] == 0)//直走 { return i1*y + j1 - 1; } else if ((i1 - 1)>=0 && pa[(i1 - 1)*y + j1] == 0)//左转 { return (i1 - 1)*y + j1; } break; default: break; } //无路可走时返回-1 return -1; }
【每日一贴】《独游》,一本我只看了开头和结尾的小说 看到好多软件工程的学弟~或许还有学妹,看来我大软工将要大兴啊,将来可能会有走向“人工智能”之类的~ ———— 言归正传 有这么一本小说,我只看开头和结尾,却对它念念不忘,但每当再次翻开的时候,我又开始发呆而不是继续看了……这就是《独游》,至今只看了开头和结尾的小说。 《独游》描述的是:人类发明了新的人机交互方式——没错,就是脑电波。于是有个公司开发了一款虚拟现实游戏,在游戏运行过程中,一次关服维护,一个NPC拥有了意识——这就是主角~ 于是主角和许多“玩家”一起开始了打怪升级之路,在这过程中慢慢地发现自己和他们是不一样的,原来自己一直都是独自一人在路上~ ———— 其实自从我知道“人工智能”这一词开始,我就一直在想:有自我意识的智慧的机器到底怎么和血肉组成的人类共处? 而当听到“虚拟现实”与“脑电波交互”的时候,我又想:在一个虚拟的游戏世界,一切后果与所作所为都无关紧要的时候,人拿什么来约束自己的欲望。 《独游》在第一个问题的探讨上还是有其特点——一个NPC和一群玩家刷怪升级,间或探讨世界本质,可以作作弊,到被开发商发现,由于开发商害怕,对其实施清剿…… 但我在想,那群通过脑电波登录游戏世界的人,他们就像那个世界里的神,死了可以复活,在那个世界里的知觉又和现实无异,又不需要对在那个世界的所作所为负责,那么他们是拿什么约束自己的行为的——因为死了也无所谓? 最敏感的问题是:他们有无异于现实的知觉,他们是怎么约束自己不被荷尔蒙的刺激而不干出一些让小学生脸红心跳的事来的?要知道某猥琐的大叔在玩《剑灵》的时候最大的兴趣就是晃动鼠标看NPC的底裤是什么颜色的……
将美好放在明天? 春天耕耘是为了冬天有的吃,于是我们逼着自己幸苦劳作。从这方面来说似乎体现了人的“文明”与智慧,但发展到极致便是我们永远在为未来活着,永远达不到幸福的明天,当明天成为今天,我们考虑的还是明天。 ———— 反过来我们为今天而活着,我们享乐乐,我们放纵,但明天怎么办?春天不劳作,冬天死翘翘。 ———— 人似乎习惯将未来的自己和现在的自己当成一个整体考虑,但很少承认过去的自己,总是觉得过去自己多傻多挫多穷,然后现在努力以使未来的自己变成高富帅白富美。 —— 过了很多个明天后某日突然想起昨天,发现自己和很多个昨天之前没多大区别,于是开始在明天和今天之间寻找平衡,才发现过去的自己真的很傻很挫很穷,傻得挫得穷得连自己的思想都没有,然后盲目地跟着大家认可的行为模式在活着。 ———— 结论:当你在为明天筹划时,不要不把昨天放在计划之内,也不要把今天全部都分给明天。日子应该这样过,把今天分成两半,一半为明天而努力,一半为昨天而享受。 ———— PS:屌丝男“我要房,我要车,我要女神,我搬砖去,嘎嘎……” 屌丝女“我要房,我要车,我要帅哥,我打扮去,嘻嘻……” —— PPS:朝生而暮死,一天怎么分 —— PPPS:似乎应该分成三半,今天这一半拿来逛贴吧发大水 —— PPPPS: ——形而上者谓之道,形而下者谓之器
树 树也,树而已。然而忽又觉得,窗外的这树怎么和记忆中的树不一样? ———— 依稀记得小时候没上学时看到的树,似乎会哭,会笑,雨淋会委屈,太阳晒会蔫得昏昏欲睡,会和我一起看日出,一起看晚霞…… ———— 如今看到窗子外面的树,“叶子好绿……”紧接着:“长势不错,不知道这树是拿来干什么的?做成床不知耐不耐用……”再看着叶子,又会想到:“嗯……这叶子是一个一个细胞构成的,显微镜下看起来像网格一样……”,“这么绿油油的,水分不少……哦,旁边是鱼塘”,“长得这么快,密度肯定不行”“树干应该有好多筛管,现在应该正在像水管一样流着水”………… ———— 树还是树,但看起来又不像曾经的树,是树变了?是我变了?对于自然来说,树没变,我似乎也还是人。然之所以我觉得变了,是所谓的知识在做怪吧。 ———— 知识似乎是意识上的东西,某人好像说过意识只是人对世界的反映,但为何世界与我都没变,知识却让我对世界的反映变了? —— 哪些曾经会哭会笑的反映都是假的?既然那时的反映是假的,何以见得现在的就是真的? —— 知识让我看到了现在的树,却让我失去了曾经的树,有没有能让我既能看到过去的树又能看见现在的树的东西? —— 知识啊,人们对你敬畏如神,我却对你满是怀疑,只因你让我失去了曾经的树,哦,或许还有那棵已经倒下的陪我度过一个快乐的童年的“守寨老树”还活在我心中……
1 下一页