
正文
java经典代码100行的简单介绍
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
悬赏50.求一个JAVA游戏的代码,100行左右,要求每行都有相应的解释。用了什么类,什么方法。要自己写的。
好的
我帮你写一个猜拳游戏
import java.util.Random;
import java.util.Scanner;
public class Test {
String[] array = new String[] { "布", "剪刀", "石头" };// 选项
Random r = new Random();//得到随机对象
private int player = 0;// 玩家获胜数
private int computer = 0;// 电脑获胜数
private int count = 0;//盘数
/**
* 比较方法
*
* @param i
*/
private void compare(int i) {
count++;//盘数+1
System.out.print("玩家:" + array[i - 1] + "\t");//打印出玩家的选择
int k = r.nextInt(3);//随机数
System.out.print("电脑:" + array[k] + "\t");//打印出电脑的选择
if (i - 1 == k) {//如果选择相等
System.out.println("打平");
} else if (i - 1 - k == 1 || i - 1 - k == -2) {//如果玩家获胜
System.out.println("玩家获胜");
player++;//玩家获胜数加1
} else {//如果电脑获胜
System.out.println("电脑获胜");
computer++;//电脑获胜数加1
}
}
/**
* 输出方法
*/
private void info() {
System.out.println("共" + count + "盘");//打印
System.out.println("玩家获胜" + player + "盘");//打印
System.out.println("电脑获胜" + computer + "盘");//打印
System.out.println("打平" + (count - player - computer) + "盘");//打印
}
/**
* 开始方法
*/
public void start() {
String again = "";// 是否继续
Scanner scanner = new Scanner(System.in);// 得到输入对象
do {
System.out.println("请选择:\n1.布\n2.剪刀\n3.石头\n结束请输入exit");// 打印
again = scanner.next();// 接收是否继续的字符串
if (again.equalsIgnoreCase("exit")) {// 如果不是EXIT
info();//打印
break;//跳出循环
}
if (!again.equals("1") !again.equals("2") !again.equals("3")) {
System.out.println("选择错误,请重新选择");
continue;
}
compare(Integer.parseInt(again));
} while (!again.equals("exit"));
}
/**
* @param args
*/
public static void main(String[] args) {
new Test().start();// 游戏开始
}
}
相关问答
Q1: 求个简单点的Java程序 100行左右。 需要解释。
贪吃蛇游戏 望采纳
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];
ArrayListPoint snake_list=new ArrayListPoint();
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=0;i20;i++)
for(int j=0;j20;j++)
{
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=0;isnake_list.size();i++){
if(p.equals(snake_list.get(i) )){
Flag=true;break;
}
}
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.x0||p.x19|| p.y0||p.y19||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);
}
}
}
Q2: 求一个简单的JAVA游戏代码,100行左右,谢谢!
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.JFrame;
import javax.swing.JPanel;
public class Painter extends JFrame{
/**
*
*/
private static final long serialVersionUID = 8160427604782702376L;
CanvasPanel canvas = new CanvasPanel();;
public Painter() {
super("Star");
this.add(canvas);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.pack();
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
public static void main(String[] args) {
new Painter();
}
}
class CanvasPanel extends JPanel implements ActionListener{
/**
*
*/
private static final long serialVersionUID = -4642528854538741028L;
private JButton[] btn = new JButton[4];
private String[] btn_name = {"+", "-", "R", "L"};
private int center_x = 200, center_y = 200, radius = 100, degree = 0;
public CanvasPanel() {
this.setPreferredSize(new Dimension(400, 500));
this.setLayout(null);
for(int i = 0; i 4; i++) {
btn[i] = new JButton(btn_name[i]);
btn[i].setBounds(160 + i * 60, 425, 50, 50);
btn[i].addActionListener(this);
this.add(btn[i]);
}
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
for(int i = 0; i 5; i++) {
g.drawLine( (int) (center_x + radius * Math.sin(Math.toRadians(degree + 72 * i))),
(int) (center_y - radius * Math.cos(Math.toRadians(degree + 72 * i))),
(int) (center_x + radius * Math.sin(Math.toRadians(degree + 72 * i + 144))),
(int) (center_y - radius * Math.cos(Math.toRadians(degree + 72 * i + 144))));
}
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getActionCommand() == "+") {
if(radius 200)
radius += 2;
repaint();
} else if(e.getActionCommand() == "-") {
if(radius 0)
radius -= 2;
repaint();
} else if(e.getActionCommand() == "R") {
degree = (degree + 2) % 360;
repaint();
} else if(e.getActionCommand() == "L") {
degree = (degree - 2) % 360;
repaint();
}
}
}
Q3: java程序100行
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;
/**
* 反射类java经典代码100行,获取对象属性值java经典代码100行,设置对象属性值等操作
*/
public class ClassReflect {
/**
* 用于获取指定对象不确定属性名java经典代码100行的值 反射机制
* @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();
}
}else{
return null;
}
}
/**
* 设置对象属性
* @param object
* @param str
* @return
* @throws Exception
*/
public static void set(Object object,String property,Object value) throws Exception {
Field field = hasEqualsIgnoreCase(object.getClass(),property) ;
if(field != null){
Method m = object.getClass().getDeclaredMethod("set"+getMethodName(property),field.getType());
if(value!=null){
m.invoke(object,value);
}
}
}
/**
* @param clz 类文件
* @param str 类中的属性名
* @return 属性在liest中的下标
* @throws Exception
*/
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;
}
}
return null;
}
/**
* 大写第一个字母
* @param str 字段名
* @return
* @throws Exception
*/
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)
throws Exception {
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经典代码100行的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、java经典代码100行的信息别忘了在本站进行查找喔。






