贪吃蛇游戏 望采纳
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;
ArrayListPoint snake_list=new ArrayListPoint();
Point bean=new Point(-1,-1);//保存随机豆子【坐标】
//构造方法
public Snake()
{
//窗体初始化
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().setBackground(Color.gray);
this.setLayout(f);
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);
//在动态数组中保存蛇体按钮坐标【行列】信息
snake_list.add(new Point(10,10));
snake_list.add(new Point(11,10));
this.rand_bean();
this.setTitle("总分:0");
this.setVisible(true);
//该方法随机一个豆子,且不在蛇体上,并使豆子可见
public void rand_bean(){
Random rd=new Random();
do{
}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=0;isnake_list.size();i◆◆){
if(p.equals(snake_list.get(i) )){
Flag=true;break;
return Flag;
//判断蛇即将前进位置是否有豆子,有返回true,无返回false
public boolean isHaveBean(){
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(bean.equals(p))Flag=true;
//前进一格
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{///////////////////无豆子吃
//取原蛇头坐标
//根据蛇头坐标推算出拟新增蛇头坐标
if(Direction==1)p=new Point(x-1,y);//计算出向上的新坐标
//若拟新增蛇头碰壁,或缠绕则游戏结束
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) {
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
public static void main(String[] args) throws InterruptedException {
Snake win=new Snake();
while(true){
win.snake_move();
package soyea.base.util;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.List;
import soyea.base.bean.physics.ChargeSite;
/**
* 反射类,获取对象属性值,设置对象属性值等操作
*/
public class ClassReflect {
* 用于获取指定对象不确定属性名的值 反射机制
* @param object 实体对象
* @param str 属性名
* @return 属性值
* @throws Exception
public static Object get(Object object,String str) throws Exception {
Field field = hasEqualsIgnoreCase(object.getClass(),str);
if(field != null){
Method m = object.getClass().getMethod("get"◆getMethodName(str));
Object invoke = m.invoke(object);
if(invoke == null){
return null;
}else{
return invoke.toString();
* 设置对象属性
* @param object
* @param str
* @return
public static void set(Object object,String property,Object value) throws Exception {
Field field = hasEqualsIgnoreCase(object.getClass(),property) ;
Method m = object.getClass().getDeclaredMethod("set"◆getMethodName(property),field.getType());
if(value!=null){
m.invoke(object,value);
* @param clz 类文件
* @param str 类中的属性名
* @return 属性在liest中的下标
public static Field hasEqualsIgnoreCase(Class? clz,String str) throws Exception{
ListField fields = Arrays.asList(clz.getDeclaredFields());
for(int i=0;ifields.size();i◆◆){
Field x = fields.get(i);
if(str.equalsIgnoreCase(x.getName().toString())){
return x;
* 大写第一个字母
* @param str 字段名
public static String getMethodName(String str) throws Exception{
byte[] b = str.getBytes();
b[0]=(byte)((char)b[0]-'a'◆'A');
return new String(b);
public static void resetObj(Object obj, String property)
throws Exception {
String gbk = Encoder.getByCode(obj, property);
if(gbk != null gbk.trim().length()0){
try {
ClassReflect.set(obj, property, gbk);
} catch (Exception e) {
e.printStackTrace();
public static void resetAllObjPropertiesByCode(Object obj)
Field[] fields = obj.getClass().getDeclaredFields();
for(int i=0;ifields.length;i◆◆){
Field f = fields[i];
String name = f.getName();
if("id".equals(name)){
continue;
resetObj(obj, name);
延展回答:
JAVA程序员广义上是指一群以JAVA为谋生手段的软件开发人员.狭义的说,是指拥有SUN公司JAVA认证的程序员.Sun Java认证分为两个级别:Sun 认证Java程序员和Sun 认证Java开发员.通常要求程序员精通java基础,java高级编程,及常用java设计模式,并深入理解mvc编程模式,了解uml相关知识.
虽然JAVA人才的薪水很高,但是对该类人才需求旺盛的IT企业却很难招聘到合格的JAVA人员.其中,最根本的原因就是许多计算机专业的毕业生在读期间没有掌握实用的技能与经验,距离企业的实际用人需求有较大的差距.所以呢,计算机专业的大学生欲成为Java程序员,最便捷的一条路就是参加以实战项目为主要教学方法的JAVA职业技能培训,从而有效地缩短同企业具体用人需求之间的差距.
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Painter extends JFrame{
*
CanvasPanel canvas = new CanvasPanel();;
public Painter() {
super("Star");
this.add(canvas);
this.pack();
this.setResizable(false);
this.setLocationRelativeTo(null);
public static void main(String[] args) {
new Painter();
class CanvasPanel extends JPanel implements ActionListener{
private String[] btn_name = {"◆", "-", "R", "L"};
public CanvasPanel() {
this.setLayout(null);
btn[i] = new JButton(btn_name[i]);
btn[i].addActionListener(this);
this.add(btn[i]);
public void paintComponent(Graphics g) {
super.paintComponent(g);
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getActionCommand() == "◆") {
repaint();
} else if(e.getActionCommand() == "-") {
if(radius 0)
} else if(e.getActionCommand() == "R") {
} else if(e.getActionCommand() == "L") {
视具体代码情况而定,视是否引用外部包而定,视个人编程书写习惯而定.
具体的来说,Python可以将任意长的代码写在一行上(其实好像java也可以这么干).
所以行数说明不了什么问题.
另外Python在某些问题上,处理比Java要更消耗资源,不过Python用了很多多线程优化,所以说起来,单机的运行速度不相上下,但在服务器上运行就能看出来Java是有明显优势的.
import java.util.Scanner;
public class test{
private static String temp, tempNumA, tempNumB;
private static int geWei, shiWei, baiWei, judgeA, judgeB;
private static int number(String inputNum) {
if (inputNum.equalsIgnoreCase("zero")) {
return 0;
} else if (inputNum.equalsIgnoreCase("one")) {
return 1;
} else if (inputNum.equalsIgnoreCase("two")) {
} else if (inputNum.equalsIgnoreCase("three")) {
} else if (inputNum.equalsIgnoreCase("four")) {
} else if (inputNum.equalsIgnoreCase("five")) {
} else if (inputNum.equalsIgnoreCase("six")) {
} else if (inputNum.equalsIgnoreCase("seven")) {
} else if (inputNum.equalsIgnoreCase("eigth")) {
} else if (inputNum.equalsIgnoreCase("nine")) {
} else if (inputNum.equalsIgnoreCase("ten")) {
return 10;
} else if (inputNum.equalsIgnoreCase("eleven")) {
return 11;
} else if (inputNum.equalsIgnoreCase("twelve")) {
} else if (inputNum.equalsIgnoreCase("thirteen")) {
} else if (inputNum.equalsIgnoreCase("fourteen")) {
} else if (inputNum.equalsIgnoreCase("fifteen")) {
} else if (inputNum.equalsIgnoreCase("sixteen")) {
} else if (inputNum.equalsIgnoreCase("seventeen")) {
} else if (inputNum.equalsIgnoreCase("eighteen")) {
} else if (inputNum.equalsIgnoreCase("nineteen")) {
} else if (inputNum.equalsIgnoreCase("twenty")) {
} else {
return -1;
private static String lessTen(int num) {
switch (num) {
case 0:
temp = "zero";
break;
case 1:
temp = "one";
temp = "two";
temp = "three";
temp = "four";
temp = "five";
temp = "six";
temp = "seven";
temp = "eight";
temp = "nine";
default:
temp = "erro";
return temp;
private static String moreThanTen(int num) {
case 10:
temp = "ten";
case 11:
temp = "eleven";
temp = "twelve";
temp = "thirteen";
temp = "fourteen";
temp = "fifteen";
temp = "sixteen";
temp = "seventeen";
temp = "eighteen";
temp = "nineteen";
temp = "twenty";
temp = "thirty";
temp = "forty";
temp = "fifty";
temp = "sixty";
temp = "seventy";
temp = "eighty";
temp = "ninety";
private static void outputReult(int num) {
System.out.println(lessTen(num));
System.out.println(moreThanTen(num));
shiWei = num / 10;
geWei = num % 10;
if (geWei == 0) {
System.out.println(moreThanTen(shiWei * 10));
System.out.println(moreThanTen(shiWei * 10) ◆ "-"
◆ lessTen(geWei));
baiWei = num / 100;
shiWei = num % 100 / 10;
geWei = num % 100 % 10;
if (shiWei == 0 geWei == 0) {
System.out.println(lessTen(baiWei) ◆ " " ◆ "hundred");
} else if (shiWei == 0 geWei != 0) {
System.out.println(lessTen(baiWei) ◆ " " ◆ "hundred" ◆ " "
◆ "and" ◆ " " ◆ lessTen(geWei));
} else if (shiWei != 0 geWei == 0) {
◆ "and" ◆ " " ◆ moreThanTen(shiWei * 10 ◆ geWei));
if (shiWei == 1 geWei != 0) {
◆ "and" ◆ " " ◆ moreThanTen(shiWei * 10) ◆ "-"
public static void inputNumber() {
tempNumA = new Scanner(System.in).next();
judgeA = number(tempNumA);
tempNumB = new Scanner(System.in).next();
judgeB = number(tempNumB);
if (judgeA == -1 || judgeB == -1) {
System.out.println("你输入的数字单词不正确,请重新输入!");
System.out.println(" ");
inputNumber();
System.out.print(tempNumA ◆ " multiply " ◆ tempNumB ◆ " equals ");
outputReult(number(tempNumA) * number(tempNumB));
以上就是土嘎嘎小编为大家整理的关于java代码100行左右的信息相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!