这个代码是我初涉编程的那年写成的,我从哈尔滨退学去了新乡我女朋友(现在成了俺老婆了)那里,在那里经历了个冬天,我们租的小屋是木板隔开的,有个公用阳台可以做饭,我们当时没有电脑,没有电视,我除了她什么也没有了,本科学历没有了,朋友也开始对我的能力表示怀疑,家人更是认为我不争气,高中一直是数 一数二的我却沦落到没学上的境地,我的心里很惨很黯淡,在新乡的几个月里我没有闲着,整天排的很满,早上起来就开始抄她在她学校借的狄拉克经典名著《量子力学》然后九点多去学校对面的小破街买菜,回来就给她做饭,记得她当时喜欢吃鸡蛋西红柿面条,呵呵,现在也是,我于是天天做那样饭,吃得我现在都不能想, 一想牙就麻!下午我仍然重复上午的“工作”,她一整天上课的时候我就去市区的新华书店看书,当时就看物理学或机械方面的...
一转眼快过年了,我爸帮我联系了一个补习班,于是03年的头半年我就去补习班了,准备第二次高考,可是我哪有心思学习,揣着多年的梦想就这样把它永远当成了梦,眼看高考了,结果很显然,失败----郑州大学软件技术学院网络与信息安全专业,大专,还是两年的。九月份开学了,上机课,我可丢了大人,作为软件学院的,连怎么把电影从光盘拷贝到电脑都不会...第一次上java课,我和女朋友吵架,怕她生气就坐半夜2点的车从郑州赶往新乡,到的时候才3点,根本 没有去她学校的公交,于是我就走过去,4点半到,又在她寝室楼下等了将近两个小时...第一节java课没上,我再回到学校发现自己已经明显跟不上了,但 是一次偶然的机会我写下了:(此代码绝对原版,原汁原味我的第一个程序,珍藏!)
public class a
{
public static void main(String s[])
{
int a=5;
int b=3;
int c=a+b;
System.out.println(c);
}
}
编 译运行后“奇迹般的出现了:8”(我光学编译书上的hello world就学了一周,以前根本不知道电脑是干什么的)于是狂喜,不知怎么回事,以后慢慢喜欢上了编程,进步很快,不出两个月,我的水平就已经是系里拔尖的了,巧的是我们的教java的老师还把我的一个程序作为了期末考试题,而那次期末考试我又是因为和女友吵架而缺考java...
到了第二学期,5月20号,我女朋友过生日,我们去了日照,回来时我发现我又离不开她了,我不能看见她依赖的望我的眼睛,一看见我就想一直陪在她身边,于是第二次离开学校,好在这次在郑州,离新乡比较近,我又一次搬到了那个小村庄,又是那点工作,只不过不再抄书了,改成写代码了,当时我已经有电脑了,下面 的代码就是那个时候写的,还有一个弹球小游戏下一篇贴出来,期末回去考试,还不错
转眼就是第二学年,也是我的最后一学年,这年里,我第三次离开了学校,也就是第三次搬进了那个小村庄,实际上是第五次,在我从哈尔滨回来之前的03年国庆 节我就在那个村庄住了将近一个月,然后第二次高考完在那住过一个月。这第三次,我们不怎么做饭了,因为天实在太冷了,屋里的水都能结冰,我也懒得写代码了,也是因为冷,可和她在一起,再冷我也愿意。
过完年大家都找到了实习单位,就差我了,我也不准备找了,想来上海找工作,这时她拿到了吉林大学研究生录取通知书,我的心里百感交集,几分欢喜几分惆怅,我能做的也只是再一次陪着她去了东北,因为我愿意。于是正式开始了我的IT旅程,在长春,我接触到了linux内核,并且开始喜欢上了它,一步一步地,我 深入到了操作系统内核,写了第一个,第二个....第n个驱动程序,一步一步地,我一直走到了今天
注释一下:下面的代码确实很垃圾,但是对于我来说却非常珍贵,异常珍贵,它记录了我和她在一起那一个炎热的难熬的却令我难忘的2005年的夏天,我初涉编程的第一个夏天。
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class tanchi extends JFrame implements KeyListener ,Runnable
{
Thread t=null;
Image offs;
Graphics gra;
int direc=3;
snake she;
food shi;//不知我当时为何将蛇的食物当成了屎,哈哈
zhangai zu;
int flag=0;
int jibie=0;
int biaozhi=0;
int fen=0;
int delay=600;
int ci=-1;
boolean xing;
int jieshu=0; //结束的次数
JPanel mainp;
int zhanwei[][]=new int[1444][1444];
Image im;
public tanchi()
{
String imagef=System.getProperty("user.dir")+"/2.PNG";
im=getToolkit().getImage(imagef);
xing=true;
she=new snake(4,zhanwei);
shi=new food();
zu=new zhangai(5,zhanwei);
zu.zushu=5;
shi.yes=true;
mainp=new JPanel();
mainp.addKeyListener(this);
mainp.setFocusable(true);
getContentPane().setLayout(null);
getContentPane().add(mainp);
mainp.setBounds(10,10,740,380);
setTitle("贪吃蛇");
setSize(700,450);
setResizable(false);
setVisible(true);
for(int i=0;i
for(int j=0;j
{
zhanwei[i][j]=0;
}
t=new Thread(this);
t.start();
}
public void paint(Graphics g)
{
g = mainp.getGraphics();
g.setFont(new Font("",2,20));
g.setColor(Color.blue);
g.drawString("得分:",400,30);
g.drawString("您的级别:",400,80);
g.drawString("<t>:暂停/开始|<b>:重新开始",400,130);</b></t>
g.drawString("<j>:加速|<k>:减速",400,180);</k></j>
g.drawString("游戏须知:",400,230);
g.drawRect(420,250,200,110);
g.setFont(new Font("",0,15));
g.drawString("1:吃掉兰色方块时加分",430,268);
g.drawString("2:出现红色方块时不能碰,",430,288);
g.drawString("否则游戏结束。",451,308);
g.drawString("3:不能碰墙或自身,否则",430,328);
g.drawString("否则游戏结束。",451,348);
g.clearRect(520,15,100,100);
g.setFont(new Font("",2,20));
g.drawString(""+fen,520,30);
g.drawString(""+jibie,520,80);
if(biaozhi==0)
{
for(int i=0;i
for(int j=0;j
{
if(zhanwei[i/10][j/10]==0)
{
g.setColor(Color.orange);
g.drawRect(i,j,10,10);
g.setColor(Color.lightGray);
if(i==370)
g.fillRect(i,j,11,9);
else
g.fillRect(i,j,9,9);
}
else if(zhanwei[i/10][j/10]==1)
{
g.setColor(Color.blue);
g.fillRect(i,j,9,9);
}
else if(zhanwei[i/10][j/10]==2)
{
g.setColor(Color.red);
g.fillRect(i,j,9,9);
}
}
}
if(biaozhi==1||she.x[0]==-10||she.y[0]==-10)
{
for(int i=0;i
for(int j=0;j
{
g.setColor(Color.orange);
g.drawRect(i,j,10,10);
g.setColor(Color.lightGray);
if(i==370)
g.fillRect(i,j,11,9);
else
g.fillRect(i,j,9,9);
}
g.setFont(new Font("华文彩云",3,30));
g.setColor(Color.red);
g.drawString("GAME OVER",90,140);
g.setFont(new Font("",4,20));
g.drawString("您的得分:"+fen,90,190);
}
}
public void run()
{
try{
while(true)
{
//食物的产生也要看障的情况
if(xing)
{
if(shi.yes)
{
boolean chong=false;
int lix=(int)(Math.random()*300)+40;
int liy=(int)(Math.random()*300)+40;
int baix=(int)(Math.random()*300)+40;
int baiy=(int)(Math.random()*20)+10;
for(int i=0;i<zu.zushu><p> {</p> <p> if(((lix-lix%10)==zu.x[i]&&(liy-liy%10)==zu.y[i])||((lix-lix%10+10)==zu.x[i]&&(liy-liy%10)==zu.y[i])||((lix-lix%10)==zu.x[i]&&(liy-liy%10+10)==zu.y[i])||((lix-lix%10-10)==zu.x[i]&&(liy-liy%10)==zu.y[i])||((lix-lix%10)==zu.x[i]&&(liy-liy%10-10)==zu.y[i]))</p> <p> {</p> <p> chong=true;</p> <p> break;</p> <p> }</p> <p> }</p> <p> if(zhanwei[(lix-lix%10)/10][(liy-liy%10)/10]==1)</p> <p> chong=true;</p> <p> if(chong)</p> <p> {</p> <p> shi.x=baix-baix%10;</p> <p> shi.y=baiy-baiy%10;</p> <p> }</p> <p> if(!chong)</p> <p> {</p> <p> shi.x=lix-lix%10;</p> <p> shi.y=liy-liy%10;</p> <p> }</p> <p> zhanwei[shi.x/10][shi.y/10]=1;</p> <p> shi.yes=false;</p> <p> }</p> <p> if(she.x[0]==shi.x&&she.y[0]==shi.y)</p> <p> {</p> <p> she.renode(she.node,she.x,she.y);</p> <p> shi.yes=true;</p> <p> zhanwei[shi.x/10][shi.y/10]=0;</p> <p> fen+=20;</p> <p> if(fen%100==0)</p> <p> {</p> <p> jibie++;</p> <p> if(jibie>=10)</p> <p> {</p> <p> zu.zushu=0;/////////////////////////////////////////</p> <p> }</p> <p> else</p> <p> {</p> <p> if(jibie>1)</p> <p>zu.xiezu(zu.x,zu.y);</p> <p> zu.zushu+=4;</p> <p> zu.reshu(zu.zushu,she.x[0],she.y[0],shi.x,shi.y); //,zu.x,zu.y);////////////////////</p> <p>}</p> <p> }</p> <p> }</p> <p> for(int i=2;i<she.node><p> {</p> <p> if(she.x[0]==she.x[i]&&she.y[0]==she.y[i])</p> <p> {</p> <p> flag=1;</p> <p> break;</p> <p> }</p> <p> }</p> <p> for(int i=0;i<zu.zushu><p> {</p> <p> if(she.x[0]==zu.x[i]&&she.y[0]==zu.y[i])</p> <p> {</p> <p> flag=1;</p> <p> jieshu++;</p> <p> break;</p> <p> }</p> <p> }</p> <p> if(she.x[0]>370||she.x[0]370||flag==1)</p> <p> { </p> <p> biaozhi=1;</p> <p> repaint();</p> <p> break;</p> <p> }</p> <p> if(biaozhi!=1)</p> <p> she.zou(direc);</p> <p> Thread.sleep(delay);</p> <p> repaint();</p> <p> }</p> <p> }</p> <p> }catch(Exception e){}</p> <p> }</p> <p> public void keyPressed(KeyEvent ke)</p> <p> {</p> <p> }</p> <p> public void keyReleased(KeyEvent ke)</p> <p> {</p> <p> }</p> <p> public void keyTyped(KeyEvent ke)</p> <p> {</p> <p> if((""+ke.getKeyChar()).equals("w"))</p> <p> {</p> <p> direc=she.fangxiang("w");</p> <p> if(she.y[0]>0)</p> <p> she.zou(direc);</p> <p> }</p> <p> else if((""+ke.getKeyChar()).equals("s"))</p> <p> {</p> <p> direc=she.fangxiang("s");</p> <p> she.zou(direc);</p> <p> } </p> <p> else if((""+ke.getKeyChar()).equals("a"))</p> <p> {</p> <p> direc=she.fangxiang("a");</p> <p> if(she.x[0]>0)</p> <p> she.zou(direc);</p> <p> }</p> <p> else if((""+ke.getKeyChar()).equals("d"))</p> <p> {</p> <p> direc=she.fangxiang("d");</p> <p> she.zou(direc);</p> <p> } </p> <p> else if((""+ke.getKeyChar()).equals("b"))</p> <p> {</p> <p> if(t.isAlive() )</p> <p> t.interrupt();</p> <p> t=new Thread(this);</p> <p> for(int i=0;i </p> <p> for(int j=0;j </p> <p> {</p> <p> zhanwei[i][j]=0;</p> <p> }</p> <p> she=new snake(4,zhanwei);</p> <p> shi=new food();</p> <p> shi.yes=true;</p> <p> zu=new zhangai(5,zhanwei);</p> <p> zu.zushu=5;</p> <p> xing=true;</p> <p> Graphics g = mainp.getGraphics();</p> <p> g.clearRect(0,0,380,380);</p> <p> direc=3;</p> <p> ci=-1;</p> <p> flag=0;</p> <p> jibie=0;</p> <p> biaozhi=0;</p> <p> fen=0;</p> <p> delay=600;</p> <p> she.zou(3);</p> <p> t.start();</p> <p> }</p> <p> else if((""+ke.getKeyChar()).equals("t"))</p> <p> { </p> <p> ci++;</p> <p> if(ci%2==0)</p> <p> xing=false;</p> <p> else if(ci%2==1)</p> <p> xing=true;</p> <p> }</p> <p> else if((""+ke.getKeyChar()).equals("j"))</p> <p> {</p> <p> if(delay>=50)</p> <p> delay-=50;</p> <p> }</p> <p> else if((""+ke.getKeyChar()).equals("k"))</p> <p> {</p> <p> delay+=50;</p> <p> }</p> <p> }</p> <p> public static void main(String str[])</p> <p> {</p> <p> new tanchi();</p> <p> }</p> <p> }</p> <p> class snake</p> <p> {</p> <p> int x[];</p> <p> int y[];</p> <p> int node=4;</p> <p> int yipx;</p> <p> int yipy;</p> <p> int zhan[][];</p> <p> public snake(int nod,int[][] zhan)</p> <p> { </p> <p> x=new int[nod];</p> <p> y=new int[nod];</p> <p> this.zhan=zhan;</p> <p> for(int i=0;i<node><p> {</p> <p> x[i]=190+i*10;</p> <p> y[i]=190;</p> <p> zhan[x[i]/10][19]=1;</p> <p> }</p> <p> }</p> <p> public int fangxiang(String str)</p> <p> {</p> <p> int re=0;</p> <p> if(str.equals("w"))</p> <p> re=1;</p> <p> else if(str.equals("s"))</p> <p> re=2;</p> <p> else if(str.equals("a"))</p> <p> re=3;</p> <p> else if(str.equals("d"))</p> <p> re=4;</p> <p> return re; </p> <p> }</p> <p> public void renode(int laonode,int[] xn,int[] yn)</p> <p> { </p> <p> node++;</p> <p> x=new int[laonode+1];</p> <p> y=new int[laonode+1];</p> <p> for(int i=0;i<laonode><p> {</p> <p> x[i]=xn[i];</p> <p> y[i]=yn[i];</p> <p> zhan[x[i]/10][y[i]/10]=1;</p> <p> }</p> <p> x[laonode]=yipx;</p> <p> y[laonode]=yipy;</p> <p> }</p> <p> public void zou(int direction)</p> <p> {</p> <p> int linshi=0;</p> <p> zhan[x[node-1]/10][y[node-1]/10]=0;</p> <p> if(direction==1)</p> <p> {</p> <p> linshi=y[0];</p> <p> yipx=x[node-1];</p> <p> yipy=y[node-1];</p> <p> for(int i=node-1;i>0;i--)</p> <p> {</p> <p> x[i]=x[i-1];</p> <p> y[i]=y[i-1];</p> <p> zhan[x[i]/10][y[i]/10]=1;</p> <p>}</p> <p> y[0]=linshi-10;</p> <p> zhan[x[0]/10][y[0]/10]=1;</p> <p>}</p> <p> else if(direction==2)</p> <p> {</p> <p> linshi=y[0];</p> <p>yipx=x[node-1];</p> <p> yipy=y[node-1];</p> <p>for(int i=node-1;i>0;i--)</p> <p> {</p> <p> x[i]=x[i-1];</p> <p> y[i]=y[i-1];</p> <p> zhan[x[i]/10][y[i]/10]=1;</p> <p>}</p> <p> y[0]=linshi+10;</p> <p> zhan[x[0]/10][y[0]/10]=1;</p> <p>}</p> <p> else if(direction==3)</p> <p> {</p> <p> linshi=x[0];</p> <p>yipx=x[node-1];</p> <p> yipy=y[node-1];</p> <p>for(int i=node-1;i>0;i--)</p> <p> {</p> <p> x[i]=x[i-1];</p> <p> y[i]=y[i-1];</p> <p> zhan[x[i]/10][y[i]/10]=1;</p> <p>}</p> <p> x[0]=linshi-10;</p> <p> zhan[x[0]/10][y[0]/10]=1;</p> <p>}</p> <p> else if(direction==4)</p> <p> {</p> <p> linshi=x[0];</p> <p>yipx=x[node-1];</p> <p> yipy=y[node-1];</p> <p>for(int i=node-1;i>0;i--)</p> <p> {</p> <p> x[i]=x[i-1];</p> <p> y[i]=y[i-1];</p> <p> zhan[x[i]/10][y[i]/10]=1;</p> <p>}</p> <p> x[0]=linshi+10;</p> <p> zhan[x[0]/10][y[0]/10]=1;</p> <p>} </p> <p> }</p> <p> }</p> <p> class food</p> <p> {</p> <p> int x;</p> <p> int y;</p> <p> boolean yes;//判断是否要出现食物的变量</p> <p> }</p> <p> class zhangai</p> <p> {</p> <p> int x[];</p> <p> int y[];</p> <p> int zushu;</p> <p> int zhan[][];</p> <p> public zhangai(int nod,int[][] zhan)</p> <p> { </p> <p> this.zhan=zhan;</p> <p> x=new int[nod];</p> <p> y=new int[nod];</p> <p> for(int i=0;i<nod><p> {</p> <p> x[i]=-20;</p> <p> y[i]=-20;</p> <p> }</p> <p> }</p> <p> public void xiezu(int[] x,int[] y)</p> <p> {</p> <p> for(int i=0;i<zushu><p> {</p> <p> if(x[i]>10&&y[i]>0)</p> <p> zhan[x[i]/10][y[i]/10]=0;</p> <p> }</p> <p> }</p> <p> public void reshu(int za,int px,int py,int sx,int sy) </p> <p> { </p> <p> x=new int[za];</p> <p> y=new int[za];</p> <p> for(int i=0;i<za><p> {</p> <p> int lix=(int)(Math.random()*320)+40;</p> <p> int zux=lix-lix%10;</p> <p> int liy=(int)(Math.random()*320)+40;</p> <p> int zuy=liy-liy%10;</p> <p> if(px!=zux&&(px+10)!=zux&&(px-10)!=zux&&(px-20)!=zux&&(px+20)!=zux&&(px-30)!=zux&&(px+30)!=zux&&(py-30)!=zuy&&(py+30)!=zuy&&sx!=zux&&(sx+10)!=zux&&(sx-10)!=zux&&(sx-20)!=zux&&(sx+20)!=zux&&py!=zuy&&(py+10)!=zuy&&(py-10)!=zuy&&(py-20)!=zuy&&(py+20)!=zuy&&sy!=zuy&&(sy+10)!=zuy&&(sy-10)!=zuy&&(sy-20)!=zuy&&(sy-30)!=zuy&&(sy+30)!=zuy&&(sx-30)!=zux&&(sx+30)!=zux&&(sy+20)!=zuy)</p> <p> {</p> <p> x[i]=zux;</p> <p> y[i]=zuy;</p> <p> zhan[x[i]/10][y[i]/10]=2;</p> <p> }</p> <p> else</p> <p> {</p> <p> x[i]=-20;</p> <p> y[i]=-20;</p> <p> }</p> <p> }</p> <p> } </p> <p> }</p> </za></p></zushu></p></nod></p></laonode></p></node></p></zu.zushu></p></she.node></p></zu.zushu>