版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
页眉内容页眉内容页眉内容Java小游戏第一个Java文件:import;publicclassGameA_B{ publicstaticvoidmain(String[]args){Scannerreader=newScanner(System.in);intarea;"GameStart…………Pleaseenterthearea:(1-9)"+ '\n'+"1,2,3meanseasy"+'\n'+"4,5,6meansmiddle"+'\n'+ "7,8,9meanshard"+'\n'+"Pleasechoose:"); area=reader.nextInt(); switch((area-1)/3) { case0:"Youchooseeasy!");break; case1:"Youchoosemiddle!");break; case2:"Youchoosehard!");break; } "GoodLuck!"); GameProcessgame1=newGameProcess(area);cess(); }}第二个Java文件:import;import;publicclassGameProcess{ intarea,i,arrcount,right,midright,t; intbase[]=newint[arrcount],userNum[]=newint[area],sysNum[]=newint[area]; Randomrandom=newRandom();Scannerreader=newScanner(System.in); GameProcess(inta) { area=a; arrcount=10; right=0; midright=0; t=0; base=newint[arrcount]; userNum=newint[area]; sysNum=newint[area]; for(inti=0;i<arrcount;i++) { base[i]=i; //; } }voidprocess(){ rand(); while(right!=area) { scanf(); compare(); print(); check(); }}voidrand(){ for(i=0;i<area;i++) { t=random.nextInt(arrcount); //; sysNum[i]=base[t]; ; delarr(t); }}voiddelarr(intt){ for(intj=t;j<arrcount-1;j++) base[j]=base[j+1]; arrcount--;}voidscanf(){ "Thesystemnumberhascreated!"+"\n"+"Pleaseenter"+area+"Numbers");for(inti=0;i<area;i++){ userNum[i]=reader.nextShort();}}voidcheck(){if(right==area) "Youwin…………!");}booleancheck(inti){ returntrue;}voidcompare(){ inti=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++; } } }}voidprint(){ "A"+right+"B"+midright);}}importjava.awt.*;
import;
importjavax.swing.*;
classTestGame{
publicstaticvoidmain(String[]args){
Appap=newApp();//调用App()开始运行程序
ap.show();
}
}
classAppextendsJFrame{
MainPanelmp;
publicApp(){
mp=newMainPanel();
this.getContentPane().add(mp);
this.setSize(400,450);
this.setTitle("小游戏");
}
}
/**
*主面板
*显示格子
*@authorAdministrator
*
*/
classMainPanelextendsJPanel{
ButtonPanelbp=newButtonPanel();
CtrlPanelrp=newCtrlPanel();
publicMainPanel(){
this.setLayout(newBorderLayout());
StartListener());
this.add(bp,"Center");
this.add(rp,"South");
}
classStartListenerimplementsActionListener{
/**
*重新开始按钮的事件
*调用按钮面板里面的颜色初始化方法
*/
publicvoidactionPerformed(ActionEvente){
if(e.getActionCommand()=="重新开始"){
bp.ColorInit();
}
}
}
}
classButtonPanelextendsJPanel{
JButton[][]b=newJButton[5][5];
/**
*按钮界面的构造器
*设置布局方式为Grid布局,并生成5*5的格子,
*在每个格子生成一个按钮,
*为每个按钮添加一个监听事件
*/
publicButtonPanel(){
this.setLayout(newGridLayout(5,5));
for(inti=0;i<5;i++){
for(intj=0;j<5;j++){
b[i][j]=newJButton();
b[i][j].setActionCommand(""+(i+1)+(j+1));
b[i][j].addActionListener(newMyButtonListener());
this.add(b[i][j]);
}
}
this.ColorInit();
}
/**
*面板初始化时候给所有的格子都绘上深灰色
*i.j分别是行和列
*/
publicvoidColorInit(){
for(inti=0;i<5;i++){
for(intj=0;j<5;j++){
b[i][j].setBackground(Color.DARK_GRAY);
}
}
}
/**
*按钮上监听的时事件,监听点击
*@authorAdministrator
*
*/
classMyButtonListenerimplementsActionListener{
intr,c;
/**
*需要改变颜色的行和列
*rrow
*ccolunm
*调用change()来改变颜色
*/
publicvoidactionPerformed(ActionEvente){
inti=Integer.parseInt(e.getActionCommand());
r=i/10-1;
c=i%10-1;
this.changer();
}
/**
*传一个按钮控件进去
*判断颜色,如果是深灰则变为粉红
*否则义相反
*@paramb
*/
publicvoidbtnChange(JButtonb){
if(b.getBackground()==Color.DARK_GRAY){
b.setBackground(Color.pink);
}else{
b.setBackground(Color.DARK_GRAY);
}
}
/**
*这个方法是根据点击的按钮判断周围需要
*不能超越数组的下标
*/
publicvoidchanger(){
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]);
}
}
}
/**
*控制面板
*@authorAdministrator
*下面的开始按钮
*/
classCtrlPanelextendsJPanel{
JButtonbtnstart;
publicCtrlPanel(){
btnstart=newJButton("重新开始");
this.add(btnstart);
}
}importjava.util.*;
publicclassCai{
enumRes{SHITOU,JIANZI,BU};
Resres;
publicstaticvoidmain(String[]args)throwsException{
//TODOAuto-generatedmethodstub
Caicai=newCai();
"请输入你的选择:");
"0表示石头,1表示剪子,2表示布");
charyourResultOfChar=(char);
intyourResultOfInt=yourResultOfChar-'0';
intcomputerResult=pb();
cai.getYourResult(yourResultOfInt);
switch(computerResult)
{
case0:
"电脑选择石头");
break;
case1:
"电脑选择剪子");
break;
case2:
"电脑选择布");
break;
}
cai.pa(computerResult);
}
publicvoidgetYourResult(intcount)
{
Res[]result=Res.values();
res=result[count];
}
voidpa(intcomputer)
{
Res[]result=Res.values();
if(this.res==Res.SHITOU)
{
"我选择石头");
switch(result[computer])
{
caseSHITOU:
"平局,再来!");
break;
caseJIANZI:
"我赢了!");
break;
caseBU:
"我输了!");
break;
}
}elseif(this.res==Res.JIANZI)
{
"我选择剪子");
switch(result[computer])
{
caseJIANZI:
"平局,再来!");
break;
caseBU:
"我赢了!");
break;
caseSHITOU:
"我输了!");
break;
}
}elseif(this.res==Res.BU)
{
"我选择布");
switch(result[computer])
{
caseBU:
"平局,再来!");
break;
caseSHITOU:
"我赢了!");
break;
caseJIANZI:
"我输了!");
break;
}
}
}
staticintpb()
{
Randomran=newRandom();
intres=ran.nextInt(3);
returnres;
//输出0-2的整数,0表示石头,1表示剪子,2表示布,和enumRes中的顺序相对应
}
}importjava.util.*;//导入实用包util下所有的类
importjavax.swing.*;
importjava.awt.*;
import;
publicclassCaiShu{
publicstaticvoidmain(String[]args){
Winf=newWin();
f.setVisible(true);
}
}
classWinextendsJFrameimplementsActionListener{
JLabellabe;
JButtonbutt;
JButtonbutton;
Randoma=newRandom();
privateinti=0;
privateintnum;
JTextFieldtext1,text2;
JPanelp;
publicWin(){
super("猜数游戏");
labe=newJLabel("我心里有个数,它是1---100之间的,你能猜出来吗?");
butt=newJButton("确认");
button=newJButton("重开");
text1=newJTextField(5);
text2=newJTextField(20);
p=newJPanel();
Containercon=getContentPane();
//调用JFrame的getContentPane得到容器
text2.setEditable(false);
//使输出结果文本域不可编辑
butt.addActionListener(this);
//执行结果动作
con.setLayout(newGridLayout(4,1));
//设置整个界面的长宽比
p.add(text1);
//添加输入数字文本域
p.add(butt);
p.add(button);
button.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
text1.setText("");
text2.setText("");
i=0;
}
});
con.add(labe);
//添加游戏标签
con.add(p);
con.add(text2);
//添加输出结果信息文本域
setSize(300,300);
//设置窗口尺寸
setVisible(true);
//设置窗口可视
pack();
addWindowListener(newWi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高职会计(财务会计实务)试题及答案
- 2025年大学医学检验技术(微生物检验技术)试题及答案
- 高职第二学年(旅游政策与法规实训)法规应用实操2026年阶段测试题及答案
- 2025年大学大四(农业资源与环境)农业环境保护综合试题及答案
- 2025年大学三年级(动物医学)动物传染病学试题及答案
- 2025年高职机械设计(设计实操)试题及答案
- 2025年中职工程监理(工程监理实务)试题及答案
- 2025年高职酒店管理(酒店专题)试题及答案
- 2025年大学食品卫生与营养学(营养配餐设计)试题及答案
- 2026年中职第一学年(学前教育)幼儿卫生保健测试题
- 胃肠外科危重患者监护与护理
- 销售人员销售技能培训
- 项目管理沟通矩阵及问题跟进器
- 交通运输企业人力资源管理中存在的问题及对策
- 2025版慢性阻塞性肺疾病常见症状及护理指南
- 2026年中国港口机械市场分析报告-市场规模现状与发展趋势分析
- 2025年江苏省淮安市高二上学期学业水平合格性考试调研历史试题(解析版)
- 2025-2026学年人教PEP版小学英语六年级上册期末检测试卷及答案
- 山东省青岛市市南区2024-2025学年六年级上学期期末考试数学试卷
- 2025年超声波金焊机行业研究报告及未来行业发展趋势预测
- 医学单招面试真题及答案
评论
0/150
提交评论