发表于: 2017-09-12 21:47:40
1 917
开学一周多了。之前在做毕业设计,准确地说是瞎做。我以为本科会像专科那样课题自己定,然后自己做就是了。程序写了 一大半的时候那天开班会班主任说课题是老师给,挂在教务网上自己查,然后选一个做。操蛋的学校。也有人说课题自己定。那毕设就先放着吧,谁知道是什么个情况。课题给了的话时间紧点一两个星期左右应该就能完成。
荒废了好长时间,键盘都能看见灰了。
1.6 下大雪
需求:尽量不看现成的程序完成下大雪的程序。
步骤:
1 随机生成300个坐标作为雪花;
2 所有雪花沿y轴落下;
3 当雪花落到低,到达屏幕低端时,让它再跑到屏幕最上方,循环落下。
4 可以加一些条件让一些坐标的X坐标也动起来,产生风的效果。
实现程序:
import java.awt.* ;
import java.awt.event.* ;
public class Snow {
public static void main(String[] args) {
Frame w = new Frame() ;
w.setSize(1000 , 500) ;
w.setBackground(new Color(90 , 70 , 149)) ;
myPanelSnow mp = new myPanelSnow() ;
w.add(mp) ;
Thread t = new Thread(mp) ;
t.start() ;
w.show() ;
w.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0) ;
}
});
}
}
class myPanelSnow extends Panel implements Runnable{
int[] x300 = new int[300] ;//x300数组用来储存三百个随机数的x坐标
int[] y300 = new int[300] ;
{//在这个代码块里用循环生成随机坐标
for(int i = 0 ; i < 300 ; i ++) {
int x = (int)(Math.random()*1000) ;
int y = (int)(Math.random()*500) ;
x300[i] = x ;
y300[i] = y ;
}
}
public void paint(Graphics g) {
g.setColor(new Color(192 , 192 , 192)) ;
for(int i = 0 ; i < 300 ; i ++) {
g.drawString("*" , x300[i] , y300[i]) ;
}
}
public void run() {
while(true) {
for(int i = 0 ; i < 300 ; i ++) {
if((int)(x300[i] % 2) == 0) {//使雪能横向飞
x300[i] += 8 ;
}
y300[i] += 3 ;
if(y300[i] >= 500) {
y300[i] = 0 ;
}
if(x300[i] >= 1000) {
x300[i] = 0 ;
}
}
try {
Thread.sleep(80) ;
}catch(Exception e) {}
repaint() ;
}
}
}
程序结束符
你发如雪 纷飞了眼泪 我等待苍老了谁~~
独立完成程序后看书,书上提到了数组是批量声明变量的工具,赞同。
在类中只能有变量的声明和方法,任何尝试写在类中的语句都会报错:
可以使用代码块和构造函数来解决这一问题。
评论