java小游戏源代码
Java 小游戏 第一个Java 文件:
import java.util.Scanner;
public class GameA_B {
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
int area;
System.out.println("Game Start…………Please enter the area:(1-9)" +
"\n"+"1,2,3 means easy"+"\n"+"4,5,6 means middle"+"\n"+
"7,8,9 means hard"+"\n"+"Please choose:");
area=reader.nextInt();
switch((area-1)/3)
{
case 0:System.out.println("You choose easy! ");break;
case 1:System.out.println("You choose middle! ");break;
case 2:System.out.println("You choose hard! ");break;
}
System.out.println("Good Luck!");
GameProcess game1=new GameProcess(area);
game1.process();
}
}
第二个 Java 文件:
import java.util.Random; import java.util.Scanner;
public class GameProcess {
int area,i,arrcount,right,midright,t;
int base[]=new int[arrcount],userNum[]=new int[area],sysNum[]=new int[area];
Random random=new Random();
Scanner reader=new Scanner(System.in);
GameProcess(int a)
{
area=a;
arrcount=10;
right=0;
midright=0;
t=0;
base=new int[arrcount];
userNum=new int[area];
sysNum=new int[area];
for(int i=0;i<arrcount;i++)
{
base[i]=i;
//System.out.println(base[i]);
}
}
void process()
{
rand();
while(right!=area)
{
scanf();
compare();
print();
check();
}
}
void rand()
{
for(i=0;i<area;i++)
{
t=random.nextInt(arrcount);
//System.out.println(t);
sysNum[i]=base[t];
System.out.println(base[t]);
delarr(t);
}
}
void delarr(int t)
{
for(int j=t;j<arrcount-1;j++)
base[j]=base[j+1];
arrcount--;
}
void scanf()
{
System.out.println("The system number has created!"+"\n"+"Please enter "+area+" Numbers");
for(int i=0;i<area;i++)
{
userNum[i]=reader.nextShort();
}
}
void check()
{
if(right==area)
System.out.println("You win…………!");
}
boolean check(int i)
{
return true;
}
void compare()
{
int i=0,j=0;
right=midright=0;
for(i=0;i<area;i++)
{
for(j=0;j<area;j++)
{
if(userNum[i]==sysNum[j])
{
if(i==j)
right++;
else
midright++;
}
}
}
}
void print()
{
System.out.println(" A "+right+" B "+midright);
} }
import java.awt.*; import java.awt.event.*; import javax.swing.*;
class TestGame {
public static void main(String[] args) {
App ap = new App(); //调用 App()开始运行程序
ap.show();
} }
class App extends JFrame {
MainPanel mp;
public App() {
mp = new MainPanel();
this.getContentPane().add(mp);
this.setSize(400, 450);
this.setTitle("小游戏");
} }
/**
* 主面板
* 显示格子
* @author Administrator
*
*/ class MainPanel extends JPanel {
ButtonPanel bp = new ButtonPanel();
CtrlPanel rp = new CtrlPanel();
public MainPanel() {
this.setLayout(new BorderLayout());
rp.btnstart.addActionListener(new StartListener());
this.add(bp, "Center");
this.add(rp, "South");
}
class StartListener implements ActionListener {
/**
* 重新开始按钮的事件
* 调用按钮面板里面的颜色初始化方法
*/
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand() == "重新开始") {
bp.ColorInit();
}
}
} }
class ButtonPanel extends JPanel {
JButton[][] b = new JButton[5][5];
/**
* 按钮界面的构造器
* 设置布局方式为 Grid 布局,并生成5*5的格子,
* 在每个格子生成一个按钮,
* 为每个按钮添加一个监听事件
*/
public ButtonPanel() {
this.setLayout(new GridLayout(5, 5));
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
b[i][j] = new JButton();
b[i][j].setActionCommand("" + (i + 1) + (j + 1));
b[i][j].addActionListener(new MyButtonListener());
this.add(b[i][j]);
}
}
this.ColorInit();
}
/**
* 面板初始化时候给所有的格子都绘上深灰色
* i.j 分别是行和列
*/
public void ColorInit() {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
b[i][j].setBackground(Color.DARK_GRAY);
}
}
}
/**
* 按钮上监听的时事件,监听点击
* @author Administrator
*
*/
class MyButtonListener implements ActionListener {
int r, c;
/**
* 需要改变颜色的行和列
* r
row
* c
colunm
* 调用 change()来改变颜色
*/
public void actionPerformed(ActionEvent e) {
int i = Integer.parseInt(e.getActionCommand());
r = i / 10 - 1;
c = i % 10 - 1;
this.changer();
}
/**
* 传一个按钮控件进去
* 判断颜色,如果是深灰则变为粉红
* 否则义相反
* @param b
*/
public void btnChange(JButton b) {
if (b.getBackground() == Color.DARK_GRAY) {
b.setBackground(Color.pink);
} else {
b.setBackground(Color.DARK_GRAY);
}
}
/**
* 这个方法是根据点击的按钮判断周围需要
* 不能超越数组的下标
*/
public void changer() {
this.btnChange(b[r][c]);
if (r > 0) //行号大于0
this.btnChange(b[r - 1][c]);
if (r < 4)
this.btnChange(b[r + 1][c]);
if (c > 0)//列号大于0
this.btnChange(b[r][c - 1]);
if (c < 4)//列好小余0
this.btnChange(b[r][c + 1]);
}
} }
/**
* 控制面板
* @author Administrator
*下面的开始按钮
*/ class CtrlPanel extends JPanel {
JButton btnstart;
public CtrlPanel() {
btnstart = new JButton("重新开始");
this.add(btnstart);
} }
import java.util.*;
public class Cai {
enum Res{SHITOU, JIANZI, BU};
Res res;
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Cai cai = new Cai();
System.out.println("请输入你的选择:");
System.out.println("0表示石头,1表示剪子,2表示布");
char yourResultOfChar =(char) System.in.read();
int yourResultOfInt = yourResultOfChar - "0";
int computerResult = pb();
cai.getYourResult(yourResultOfInt);
switch (computerResult)
{
case 0:
System.out.println("电脑选择石头");
break;
case 1:
System.out.println("电脑选择剪子");
break;
case 2:
System.out.println("电脑选择布");
break;
}
cai.pa(computerResult);
}
public void getYourResult(int count)
{
Res[] result = Res.values();
res = result[count];
}
void pa(int computer)
{
Res[] result = Res.values();
if(this.res == Res.SHITOU)
{
System.out.println("我选择石头");
switch(result[computer])
{
case SHITOU:
System.out.println("平局,再来!");
break;
case JIANZI:
System.out.println("我赢了!");
break;
case BU:
System.out.println("我输了!");
break;
}
} else if(this.res == Res.JIANZI)
{
System.out.println("我选择剪子");
switch(result[computer])
{
case JIANZI:
System.out.println("平局,再来!");
break;
case BU:
System.out.println("我赢了!");
break;
case SHITOU:
System.out.println("我输了!");
break;
}
} else if(this.res == Res.BU)
{
System.out.println("我选择布");
switch(result[computer])
{
case BU:
System.out.println("平局,再来!");
break;
case SHITOU:
System.out.println("我赢了!");
break;
case JIANZI:
System.out.println("我输了!");
break;
}
}
}
static int pb()
{
Random ran = new Random();
int res = ran.nextInt(3);
return res;
//输出0-2的整数,0表示石头,1表示剪子,2表示布,和 enum Res 中的顺序相对应
} }
import java.util.*; //导入实用包 util 下所有的类 import javax.swing.*; import java.awt.*; import java.awt.event.*;
public class CaiShu {
public static void main(String[] args) {
Win f = new Win();
f.setVisible(true);
} }
class Win extends JFrame implements ActionListener {
JLabel labe;
JButton butt;
JButton button;
Random a = new Random();
private int i = 0;
private int num;
JTextField text1, text2;
JPanel p;
public Win() {
super("猜数游戏");
labe = new JLabel("我心里有个数,它是1---100之间的,你能猜出来吗?");
butt = new JButton("确认");
button = new JButton("重开");
text1 = new JTextField(5);
text2 = new JTextField(20);
p = new JPanel();
Container con = getContentPane();
// 调用 JFrame 的 getContentPane 得到容器
text2.setEditable(false);
// 使输出结果文本域不可编辑
butt.addActionListener(this);
// 执行结果动作
con.setLayout(new GridLayout(4, 1));
// 设置整个界面的长宽比
p.add(text1);
// 添加输入数字文本域
p.add(butt);
p.add(button);
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
text1.setText("");
text2.setText("");
i=0;
}
});
con.add(labe);
// 添加游戏标签
con.add(p);
con.add(text2);
// 添加输出结果信息文本域
setSize(300, 300);
// 设置窗口尺寸
setVisible(true);
// 设置窗口可视
pack();
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
setVisible(false);
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e) {
int shu;
while (true) {
shu = Integer.parseInt(text1.getText());
if (i == 0) {
num = a.nextInt(100);
}
i++;
if (i == 10) {
text2.setText("结束吧,你没有希望了!!");
i = 0;
break;
}
if (e.getSource() == butt) {
if (shu > num) {
text2.setText("输入的数大了,输小点的!");
} else if (shu < num) {
text2.setText("输入的数小了,输大点的!");
} else if (shu == num) {
text2.setText("恭喜你,猜对了!");
if (i <= 2)
text2.setText("你真是个天才!");
else if (i <= 6)
text2.setText("还将就,你过关了!");
else if (i <= 8)
text2.setText("但是你还……真笨!");
else
text2.setText("你实在是太笨了!");
}
break;
}
}
} }