import java.awt.Button
import java.awt.Color
import java.awt.GridLayout
import java.awt.Point
import java.awt.event.KeyEvent
import java.awt.event.KeyListener
import java.util.*
import javax.swing.JFrame
import javax.swing.JOptionPane
public class Snake extends JFrame implements KeyListener{
int Count=0
Button[][] grid = new Button[20][20]
ArrayList<Point>snake_list=new ArrayList<Point>()
Point bean=new Point(-1,-1)//保存随机豆子【坐标】
int Direction = 1//方向标志 1:上2:下 3:左 4:右
//构造方法
public Snake()
{
//窗体初始化
this.setBounds(400,300,390,395)
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
GridLayout f=new GridLayout(20,20)
this.getContentPane().setBackground(Color.gray)
this.setLayout(f)
//初始化20*20个按钮
for(int i=0i<20i++)
for(int j=0j<20j++)
{
grid[i][j]=new Button()
this.add(grid[i][j])
grid[i][j].setVisible(false)
grid[i][j].addKeyListener(this)
grid[i][j].setBackground(Color.blue)
}
//蛇体初始化
grid[10][10].setVisible(true)
grid[11][10].setVisible(true)
grid[12][10].setVisible(true)
grid[13][10].setVisible(true)
grid[14][10].setVisible(true)
//在动态数组中保存蛇体按钮坐毁歼蔽标【行列】信息
snake_list.add(new Point(10,10))
snake_list.add(new Point(11,10))
snake_list.add(new Point(12,10))
snake_list.add(new Point(13,10))
snake_list.add(new Point(14,10))
this.rand_bean()
this.setTitle("总分:0")
this.setVisible(true)
}
//该方法随机一个豆子,且不在蛇体上,并使豆子可见
public void rand_bean(){
Random rd=new Random()
do{
bean.x=rd.nextInt(20)//纤州行
bean.y=rd.nextInt(20)//列
}while(snake_list.contains(bean))
grid[bean.x][bean.y].setVisible(true)
grid[bean.x][bean.y].setBackground(Color.red)
}
//判断拟增蛇头是否与自身有碰撞改含
public boolean is_cross(Point p){
boolean Flag=false
for(int i=0i<snake_list.size()i++){
if(p.equals(snake_list.get(i) )){
Flag=truebreak
}
}
return Flag
}
//判断蛇即将前进位置是否有豆子,有返回true,无返回false
public boolean isHaveBean(){
boolean Flag=false
int x=snake_list.get(0).x
int y=snake_list.get(0).y
Point p=null
if(Direction==1)p=new Point(x-1,y)
if(Direction==2)p=new Point(x+1,y)
if(Direction==3)p=new Point(x,y-1)
if(Direction==4)p=new Point(x,y+1)
if(bean.equals(p))Flag=true
return Flag
}
//前进一格
public void snake_move(){
if(isHaveBean()==true){//////////////有豆子吃
Point p=new Point(bean.x,bean.y)//【很重要,保证吃掉的是豆子的复制对象】
snake_list.add(0,p)//吃豆子
grid[p.x][p.y].setBackground(Color.blue)
this.Count++
this.setTitle("总分:"+Count)
this.rand_bean() //再产生一个豆子
}else{///////////////////无豆子吃
//取原蛇头坐标
int x=snake_list.get(0).x
int y=snake_list.get(0).y
//根据蛇头坐标推算出拟新增蛇头坐标
Point p=null
if(Direction==1)p=new Point(x-1,y)//计算出向上的新坐标
if(Direction==2)p=new Point(x+1,y)//计算出向下的新坐标
if(Direction==3)p=new Point(x,y-1)//计算出向左的新坐标
if(Direction==4)p=new Point(x,y+1)//计算出向右的新坐标
//若拟新增蛇头碰壁,或缠绕则游戏结束
if(p.x<0||p.x>19|| p.y<0||p.y>19||is_cross(p)==true){
JOptionPane.showMessageDialog(null, "游戏结束!")
System.exit(0)
}
//向蛇体增加新的蛇头坐标,并使新蛇头可见
snake_list.add(0,p)
grid[p.x][p.y].setVisible(true)
//删除原蛇尾坐标,使蛇尾不可见
int x1=snake_list.get(snake_list.size()-1).x
int y1=snake_list.get(snake_list.size()-1).y
grid[x1][y1].setVisible(false)
snake_list.remove(snake_list.size()-1)
}
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode()==KeyEvent.VK_UP &&Direction!=2) Direction=1
if(e.getKeyCode()==KeyEvent.VK_DOWN &&Direction!=1) Direction=2
if(e.getKeyCode()==KeyEvent.VK_LEFT &&Direction!=4) Direction=3
if(e.getKeyCode()==KeyEvent.VK_RIGHT &&Direction!=3) Direction=4
}
@Override
public void keyReleased(KeyEvent e) { }
@Override
public void keyTyped(KeyEvent e) { }
public static void main(String[] args) throws InterruptedException {
Snake win=new Snake()
while(true){
win.snake_move()
Thread.sleep(300)
}
}
}
先到官网下载myeclipse或者eclipse编程软件,并配置java环境变量,在百度搜索栏依次搜索eclipse下载和搜索java环境变量的配置,就可以找到图文并茂的详细教程。下面介绍一下怎么制作小程序:
1、打开myeclispe(eclipse都一样),依次点击File->New->Java Project,然后给这个项目起一个名字(随便起),这里就叫MyFirst.然后点击Finish;瞎袭渣
2、在myeclipse左侧找到自己建好的MyFirst项目,左键点击,下面有文件件src,点击src,右键,依次点击New->Class,然后给这个新的类起一个名字(随便起),我这里叫MyFirstClass,然后点击Finish;
3、复制粘贴下面这些代码到MyFirstClass.java文件中,然后ctrl+s,保存;
4、在MyFirstClass.java文件的空白处右键选择禅穗 Run As -->Java Application,你就会在下方的控制台看到hello worl。
扩展资料:
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继磨悄承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
参考资料:Java-百度百科
不是我牛叉以前有过类姿裤似的练习
修改了一下就发了
我也同意楼下的观点 自己动手做一下
有什么不明白的可以参考我的这个
也许你有更好的解决方法
1.
import java.util.Scanner
public class Test_If_Switch
{
public static void main(String[] args) {
System.out.println("输入一个数字:")
Scanner sc = new Scanner(System.in)
int x = sc.nextInt()
System.out.println("方法1:"+methodl(x))
System.out.println("方法2:"+method2(x))
}
static int methodl(int x)
{
int result = 0
if(x<0)
result = 2*x-1
else if(x>=0&&x<3)
result = 3*x+5
else if(x>=3&&x<5)
result = x+1
else if(x>=5&&x<10)
result=5*x-3
else if(x>=10)
result = 7*x+2
return result
}
static int method2(int x)
{
int result = 0
switch(x)
{
case 0:
case 1:
case 2:result = 3*x+5break
case 3:
case 4:result = x+1break
case 5:
case 6:
case 7:
case 8:
case 9:result=5*x-3break
case 10:result = 7*x+2break
default:result = 2*x-1break
}
return result
}
}
2.
import java.util.Scanner
public class Test_Tn {
public static void main(String[] args) {
System.out.println("输入一个数字芦悉:"陪册乎)
Scanner sc = new Scanner(System.in)
int x = sc.nextInt()
System.out.println("第"+x+"项的值为:"+method(x))
}
static long static method(int n) {
long Tn = 0
if (x == 1)
Tn = 1
else
Tn = method(x - 1) + x
return Tn
}
}
3.
public class test
{
public static void main (String args[])
{
int n=100
while(n<=1000)
{
int i,j,k
i=n/100
j=(n-i*100)/10
k=n%10
if((Math.pow(i, 3)+Math.pow(j, 3)+Math.pow(k, 3))==n)
System.out.print(n+String.valueOf('\t'))
n++
}
}
}
4.
public class Money {
public static void main(String[] args)
{
int a = 100,b = 50, c =10
for(int i =5i<=8i++)
for(int j = 0j<=6j++)
for(int k = 0k<30k++)
{
if(a*i+b*j+c*k==800)
System.out.println("100元"+i+"张"+"50元"+j+"张"+"10元"+k+"张")
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)