Yeah,what I want to know is the backtracking algorithm,I'm really sorry for my
English.Thanks for giving me so much tips on this question.It is not a question
about how to find the shortest path out of the maze.Because the maze only have
one way out and I want to find the way out . It is maybe not a good way to
solve the problem,I just want to see this algorithm works.I will try other ways
tonight.Perhaps I will show you a better answer. Hmm, Thanks a lot.
--
ŬÁ¦ everytime...
ÔÚ2007-12-15£¬"Thomas Hruska" <[EMAIL PROTECTED]> дµÀ£º
yunai1989cool wrote:
> I just can not understand the backdate arithmeticfor example:can you give me
> some tips: #include<stdio.h>void search(int row,int column);/*function
> antetype*/
> int check(int i,int j,int k,int a[][12]);char
> labyrinth[12][12]={{'#','#','#','#','#','#','#','#','#','#','#','#'},{'#','.','.','.','#','.','.','.','.','.','.','#'},
> {'.','.','#','.','#','.','#','#','#','#','.','#'},{'#','#','#','.','#','.','.','.','.','#','.','#'},{'#','.','.','.','.','#','#','#','.','#','.','.'},
> {'#','#','#','#','.','#','.','#','.','#','.','#'},{'#','.','.','#','.','#','.','#','.','#','.','#'},{'#','#','.','#','.','#','.','#','.','#','.','#'},
> {'#','.','.','.','.','.','.','.','.','#','.','#'},{'#','#','#','#','#','#','.','#','#','#','.','#'},{'#','.','.','.','.','.','.','#','.','.','.','#'},
> {'#','#','#','#','#','#','#','#','#','#','#','#'}};int fx[4]={1,-1,0,0};
> int fy[4]={0,0,1,-1};
> int main()/*begin main*/
> { search(2,0); return 0;}/*end main*/
> void search(int row,int column)
> { int i;/*caculation on the row*/
> int j;/*caculation on the column*/
> int newrow;/*new row coordinate*/
> int newcolumn;/*new column coordinate*/
> int a[12][12]={0};
> int k; for(i=0;i<=11;i++){
> for(j=0;j<=11;j++){
> if(labyrinth[i][j]=='#'){
> a[i][j]=1;
> }
> }
> } for(k=0;k<=3;k++){
> if(check(row,column,k,a)==1){
> newrow=i+fx[k];
> newcolumn=j+fy[k];
> labyrinth[newrow][newcolumn]=3;
> if(newrow==4&&newcolumn==11){
> for(i=0;i<=11;i++){
> for(j=0;j<=11;j++){
> printf("%d",a[i][j]);
> }
> printf("\n");
> }
> }
> else{
> search(newrow,newcolumn);
> }
> }
> a[row][column]=0;
> }
> }int check(int i,int j,int k,int a[][12]){ int judgement=1; i=i+fx[i];
> j=j+fy[j]; if(i<=0||i>=8||j<=0||j>=8){
> judgement=0;
> }
> else{
> if(a[i][j]!=0){
> judgement=0;
> }
> } return judgement;}
>
> --
> ???? ????????¡À????????? ??¡Á???....
"backdate arithmetic" means nothing to me or Google. Perhaps you are
using the wrong terminology. Based on the source code, it looks like
you are attempting a search-space problem of some sort involving
_backtracking_. However, your mail client has mangled the source code
and I'm not sure what exactly you want to do.
Based on your other e-mails so far, I'm fairly certain you don't know
the meaning of the word "arithmetic" either. Pretty sure the word you
are looking for is "algorithm". As in "backtracking algorithm" - for
which a Google search turns up a Wikipedia entry as the first link:
http://en.wikipedia.org/wiki/Backtracking
However, if the search space problem you are attempting to do is what I
think it is (i.e. shortest path maze traversal), backtracking is
probably the _worst_ approach because you have to traverse ALL paths to
find the shortest one. An easier (and usually faster) approach is to
treat the maze entrance point as the spot where you put a hose in and
start filling the maze with water. The water will span out in all
directions and eventually find the exit. The moment it does, that
becomes the shortest path out of the maze. There is also a pretty good
chance that not all of the maze will have been filled and you completely
avoid things like "splits and merges" (paths that deviate from the
current path but then merge back in later).
--
Thomas Hruska
CubicleSoft President
Ph: 517-803-4197
*NEW* MyTaskFocus 1.1
Get on task. Stay on task.
http://www.CubicleSoft.com/MyTaskFocus/
<!-- #ygrp-mkp{ border: 1px solid #d8d8d8; font-family: Arial; margin: 14px
0px; padding: 0px 14px; } #ygrp-mkp hr{ border: 1px solid #d8d8d8; } #ygrp-mkp
#hd{ color: #628c2a; font-size: 85%; font-weight: bold; line-height: 122%;
margin: 10px 0px; } #ygrp-mkp #ads{ margin-bottom: 10px; } #ygrp-mkp .ad{
padding: 0 0; } #ygrp-mkp .ad a{ color: #0000ff; text-decoration: none; }
--><!-- #ygrp-sponsor #ygrp-lc{ font-family: Arial; } #ygrp-sponsor #ygrp-lc
#hd{ margin: 10px 0px; font-weight: bold; font-size: 78%; line-height: 122%; }
#ygrp-sponsor #ygrp-lc .ad{ margin-bottom: 10px; padding: 0 0; } --><!--
#ygrp-mlmsg {font-size:13px; font-family:
arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;} #ygrp-mlmsg
table {font-size:inherit;font:100%;} #ygrp-mlmsg select, input, textarea
{font:99% arial,helvetica,clean,sans-serif;} #ygrp-mlmsg pre, code {font:115%
monospace;*font-size:100%;} #ygrp-mlmsg * {line-height:1.22em;} #ygrp-text{
font-family: Georgia; } #ygrp-text p{ margin: 0 0 1em 0; } #ygrp-tpmsgs{
font-family: Arial; clear: both; } #ygrp-vitnav{ padding-top: 10px;
font-family: Verdana; font-size: 77%; margin: 0; } #ygrp-vitnav a{ padding: 0
1px; } #ygrp-actbar{ clear: both; margin: 25px 0; white-space:nowrap; color:
#666; text-align: right; } #ygrp-actbar .left{ float: left; white-space:nowrap;
} .bld{font-weight:bold;} #ygrp-grft{ font-family: Verdana; font-size: 77%;
padding: 15px 0; } #ygrp-ft{ font-family: verdana; font-size: 77%; border-top:
1px solid #666; padding: 5px 0; } #ygrp-mlmsg #logo{ padding-bottom: 10px; }
#ygrp-vital{ background-color: #e0ecee; margin-bottom: 20px; padding: 2px 0 8px
8px; } #ygrp-vital #vithd{ font-size: 77%; font-family: Verdana; font-weight:
bold; color: #333; text-transform: uppercase; } #ygrp-vital ul{ padding: 0;
margin: 2px 0; } #ygrp-vital ul li{ list-style-type: none; clear: both; border:
1px solid #e0ecee; } #ygrp-vital ul li .ct{ font-weight: bold; color: #ff7900;
float: right; width: 2em; text-align:right; padding-right: .5em; } #ygrp-vital
ul li .cat{ font-weight: bold; } #ygrp-vital a{ text-decoration: none; }
#ygrp-vital a:hover{ text-decoration: underline; } #ygrp-sponsor #hd{ color:
#999; font-size: 77%; } #ygrp-sponsor #ov{ padding: 6px 13px; background-color:
#e0ecee; margin-bottom: 20px; } #ygrp-sponsor #ov ul{ padding: 0 0 0 8px;
margin: 0; } #ygrp-sponsor #ov li{ list-style-type: square; padding: 6px 0;
font-size: 77%; } #ygrp-sponsor #ov li a{ text-decoration: none; font-size:
130%; } #ygrp-sponsor #nc{ background-color: #eee; margin-bottom: 20px;
padding: 0 8px; } #ygrp-sponsor .ad{ padding: 8px 0; } #ygrp-sponsor .ad #hd1{
font-family: Arial; font-weight: bold; color: #628c2a; font-size: 100%;
line-height: 122%; } #ygrp-sponsor .ad a{ text-decoration: none; }
#ygrp-sponsor .ad a:hover{ text-decoration: underline; } #ygrp-sponsor .ad p{
margin: 0; } o{font-size: 0; } .MsoNormal{ margin: 0 0 0 0; } #ygrp-text tt{
font-size: 120%; } blockquote{margin: 0 0 0 4px;} .replbq{margin:4} -->
[Non-text portions of this message have been removed]
To unsubscribe, send a blank message to <mailto:[EMAIL PROTECTED]>.
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/c-prog/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/c-prog/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:[EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/