java小游戏源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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:");
a rea=reader.nextInt();
s witch((area-1)/3)
{
c ase 0:System.out.println("You choose easy! ");break;
c ase 1:System.out.println("You choose middle! ");break;
c ase 2:System.out.println("You choose hard! ");break;
}
S ystem.out.println("Good Luck!");
G ameProcess 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;
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()
{
r and();
w hile(right!=area)
{
s canf();
c ompare();
p rint();
c heck();
}
}
void rand()
{
f or(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)
{
f or(int j=t;j<arrcount-1;j++)
base[j]=base[j+1];
a rrcount--;
}
void scanf()
{
S ystem.out.println("The system number has created!"+"\n"+"Please enter "+area+" Numbers");
{
userNum[i]=reader.nextShort();
}
}
void check()
{
if(right==area)
S ystem.out.println("You win…………!");
}
boolean check(int i)
{
r eturn true;
}
void compare()
{
i nt i=0,j=0;
r ight=midright=0;
f or(i=0;i<area;i++)
{
for(j=0;j<area;j++)
{
if(userNum[i]==sysNum[j])
{
if(i==j)
right++;
else
midright++;
}
}
}
}
void print()
{
S ystem.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
*/
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[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;
}
}
}
}。