| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1815 人关注过本帖
标题:[有趣的代码]征求:贪食蛇混乱代码
只看楼主 加入收藏
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
以下是引用live41在2005-1-23 15:54:14的发言: 欺负我不会图形界面
字符界面,图形界面不作限制

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-01-24 16:19
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
字符界面做贪比较别扭吧。
2005-01-24 17:53
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

#include <stdio.h> #include <dos.h> #define G gotoxy #define C printf #define A rand int k,f,g,q,p, m=0,n=1,d=0, e=0,a=2,b=5,c= 5,t=1,M[22] [76]={-1,4};L( ){return a% 2?(f=0,g=a/2?- 1:1):(g=0,f =a/2?1:-1),(!M [m+f][n+g]|| M[m+f][n+g] == 10||M[m+f][n +g]==-1);}K(){ M[m+f][ n+g] ==-1&&E(),M[m+ f][n+g]!=10? F(m,n):(t= 0), M[m+f][n+g]= (a+2)%4+1;}D( ){a-0||((m+f >=0&&L())?(K(),m=m+f):(a=A ()%2?3:1)),a-2 ||((m+f<22&& L())?(K(),m=m+ f):(a=A()%2? 1:3)),a-1||((n +g<76&&L())? (K(),n=n+g):(a =A()%2?0:2)), a- 3||((n+g>=0 &&L())?(K(),n =n+g):(a=A()%2 ?2:0));}F(x,y) {M[x][y]%2?(p= 0,q=M[x][y]/2? 1:-1):(q=0,p=M [x][y]/3?-1:1), M[x+q] [y+p]== -1?(M[x+q][y+p] =0,b=x+q,c=y+p ,M[x][y]=-1):F(x +q,y+p);} R(){ int x,y;x=A()%22,y= A()%76,M[x][y] ==0?(M[x][y]=10,G(y+ 1,x+2),C("X")) :R();}P(){G(c+1,b+2), C(" "),G(n+1,m +2),C("O"),G(e+1,d+2),C("o");}E(){G (10,10), C("The game is over!"), getch(), exit();} main(){R(); while(1){while(bioskey(1)==0)d=m,e=n,D (),P(),t==0&&(R(),t =1),delay(4500);k =bioskey(0)>> 8,k-75||(a=3),k-77||(a=1),k-72||(a=0),k-80||(a=2);}}

/*union REGS regs; regs.h.ah=1; regs.h.ch=13; regs.h.cl=0; int86(0x10,&regs,&regs); */

不知会不会变形?
好象是980个字符左右,用TC编译,蛇的初始状态只有蛇头,蛇尾, 所以,没有吃食以前不能按与蛇行方向相反的方向键,否则就吃到自己了^_^

[此贴子已经被作者于2005-1-25 9:23:38编辑过]


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-01-25 09:17
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
[QUOTE]

#include &lt;stdio.h&gt;
#include &lt;dos.h&gt;
#define U n+g
#define J m+f
#define G gotoxy
#define C printf
#define A rand
                                                               
                                     int k                     
            ,f,g                    ,q;int                     
           p,m=0,                   n=1,d=0                     
           ,e=0,a                   =2,b=5,c                    
           =5,t=1                   ,M[22][76
            ]={-1                   ,4};L(){
            return          a        % 2?(f=
            0,g=a          /2?-1:1):(g=0,f=a/2    ?1:-         
            1),(!         M[J][U]||M[J][U]==10||M[J][U]
    ==-1    );}K(   ){M   [J][U]==-1&amp;&amp;E(),M[J][U]!=10?F(
    m,n):(t=0),M[J][U]=(  a+2)%4+1;}D(){a-0||((J&gt;=0&amp;&amp;L()        
    )?(K(),m=J):(a=A()%2  ?3:1))                ,a-2||((        
    J&lt;22&amp;&amp;L())?(K(),m=J): (a=A(                    )%2?1:      
    3)),a   -1||(   (U&lt;   76&amp;&amp;L   (                 ))?(K
    (),n=   U):(a   =A()  %2?0   :2))                ,a-        
    3||((   U&gt;=0&amp;&amp;   L()  )?(K   (),n=               U):
     (a=A   ()%2?    2:0  ));}   F(x,y       ){M     [x]        
     [y]    %2?(p    =0,  q=M    [x][      y]/2?1    :-1        
     ):(q   =0,p=   M[x]  [y]    /3?-   1:1),M[x+    q][        
     y+p]==-1?(M[x+q][y+  p]=   0,b=x +q,c=y+p,M[    x]         
     [y]=-1):F(x+q,y+p);   }    R(){int x,y;x=A                 
     ()%22,y=A()%76,M[x         ][y]==0?(M[                     
      x][y  ]=10,               G(y+1                           
            ,x+2)    ,C         ("X")                           
            ):R()   ;}P         (){G(                           
            c+1,b   +2),        C(" "                           
            ),G(n   +1,m+       2),C(
           "O"),G(e+1,d+2)       ,C("o"
         ) ;}E(){G(10,10),       C("The"                     "g"
 "ame is over!"), getch( ),      exit();                 }main
 (){R();while(1){     while      (bioskey(1)          ==0)d=m,
 e=n,D(),P(),t         ==0&amp;&amp;      (R(),t = 1),delay ( 4500);k=
 bioskey(0)&gt;&gt;           8,k        -75||(a=3),k-77||(a=1),k-72
 ||(a=0)                 ,         k-80||(a=2) ;}}

[/QUOTE]



再发一个

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-01-25 17:25
三少爷
Rank: 1
等 级:新手上路
帖 子:192
专家分:0
注 册:2004-4-29
收藏
得分:0 
好大一条蛇,含住!
图形界面的,tc编译,979characters,完了最后发现自己倾走边缘化了

#include &lt;graphics.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;bios.h&gt;
#include &lt;conio.h&gt;
#include &lt;dos.h&gt;
#define c closegraph()
#define r rectangle
#define f o.x-10,o.y-10,o.x,o.y
#define d b[i].x-10,b[i].y-10,b[i].x,b[i].y
#define s setcolor
int gr=DETECT,gd,k,i,j,n=4,p=2;struct b{int x,y;}b[50];struct o{int x,y;}o;jd(){k=bioskey(0);if(k==0x4800&amp;&amp;p!=2)p=1;if(k==0x5000&amp;&amp;p!=1)p=2;if(k==0x4b00&amp;&amp;p!=4)p=3;
if(k==0x4d00&amp;&amp;p!=3)p=4;}in(){b[0].x=b[0].y=150;for(i=1;i&lt;n;i++){b[i].x=150;b[i].y=b[i-1].y-10;}for(i=0;i&lt;n;i++)r(d);}
ic(){for(i=3;i&lt;n;i++){if(b[i].x==b[0].x&amp;&amp;b[i].y==b[0].y)c;}}df(){randomize();o.x=(80+rand()%600/2)/10*10;o.y=(60+rand()%400/2)/10*10;s(5);r(f);}
jt(){if(b[0].x==o.x&amp;&amp;b[0].y==o.y){n++;s(0);r(f);df();}}m(){while(!kbhit()){s(4);for(i=0;i&lt;n;i++)r(d);delay(100);
s(0);for(i=0;i&lt;n;i++)r(d);for(i=n-1;i&gt;=0;i--)b[i+1]=b[i];if(p==1)b[0].y-=10;if(p==2)b[0].y+=10;if(p==3)b[0].x-=10;if(p==4)b[0].x+=10;jt();ic();s(5);r(f);}jd();}main(){initgraph(&amp;gr,&amp;gd,"");
in();df();while(k!=0x011b)m();}

2005-01-25 21:30
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
改日我也写一个,不过,delay(100);你用的是什么破机啊?难道386?286?晕,不成比我的还差?差点让我眼珠看掉下来,这么暗暗的蛇......

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-01-25 22:19
快速回复:[有趣的代码]征求:贪食蛇混乱代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027500 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved