Java课程设计报告-21点小游戏_第1页
Java课程设计报告-21点小游戏_第2页
Java课程设计报告-21点小游戏_第3页
Java课程设计报告-21点小游戏_第4页
Java课程设计报告-21点小游戏_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z.---.可修编.2016—20172016—2017学年第二学期《面向对象程序设计》课程设计报告题目:21点小游戏专业:班级::指导教师:成绩:计算机学院2017年5月16日TOC\o"1-2"\h\u1.课程设计的目的22.设计思路23.设计结果与分析24.设计体会25.参考文献26.附录2-.z.---.可修编.1.设计目的面向对象程序设计是一门实践性很强的专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。通过这次设计,掌握了以下容:面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用类、包、接口的定义与使用。常用工具类与算法的实现(数组、向量、字符串、链表),java.awt、java*.swing中常用标准GUI组件及相应的事件处理,Java的异常处理机制,Java的数据库连接技术,Java的多线程技术与动画制作以及Java的网络编程。游戏规则是:各个参与者设法使自己的牌达到总分21而不超过这个数值。2.设计思路本游戏选用Eclipse、uilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。在要牌的过程中,如果所有的牌加起来超过21点,玩家就输了——叫爆掉(Bust),游戏也就结束了。假如玩家没爆掉,而庄家的总点数加起来大于21点后,那庄家就输了。假如庄家没爆掉,而玩家也没有爆掉,则玩家就与庄家比点数大小,大为赢。一样的点数则庄家赢。开始开始玩家点数庄家点数玩家赢玩家输结束大于21点,爆牌,爆牌大于21点,爆牌,爆牌玩家点数大于庄家点数YN图1结构图3.设计结果与分析当打开该小游戏时,打开游戏菜单里面的开始游戏,软件运行界面如下图所示图2主界面图3玩家点数大于21点图4玩家点数大于庄家点数图5庄家点数大于玩家点数图6继续要牌图7玩家点数等于庄家点数4.设计体会该课程设计,除了全面系统的理解了JAVA面向对象编程原理的一般原理和基本实现方法。还把死板的课本知识变得生动有趣,激发了学习的积极性。把学过的编程原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。以前对面向对象认识和概念是有点模糊的,现在通过自己动手做课程设计,从实践上认识了面向对象编程是如何通过对象来简化面向过程中的操作。课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,注意尽力寻找程序中存在的不足之处,进而使功能更加完善。在这次课程设计中,我就是按照实验指导的思想来完成。加深了理解21点游戏的部功能及部实现,培养实践动手能力和程序开发能力的目的。当然在做课程设计要有很大的耐心,做的过程就是不断的调试—修改—调试过程,只有静下心来才能把问题解决。5.参考文献[1]耿祥义,跃平.Java2实用教程(第三版)[M].:清华大学,2004.5:37-103.[2][美]HerbertSchildt.Java参考大全[M].:清华大学,2007.8:145-168.[3]家兴.JAVA图形用户界面设计与实例[M].:冶金工业,2005.2:75-89.[4]伟.Java程序设计实战训练[M].:人民邮电,2005.7:97-105.[5]卫琴.Java面向对象编程[M].:电子工业,2009.5:123-156.[6][美]Deitel.Java.大学基础教程(第六版)[M].:电子工业,2008.8:34-78.[7][美]迪特尔().Java程序设计教程[M].:清华大学,2007.4:12-34.6.附录packagesdf;importjava.awt.*;

importjava.awt.event.*;

importjava.util.Random;

publicclassGamee*tendsFrameimplementsWindowListener,ActionListener{

Buttonst=newButton("开始游戏");

Buttonyao=newButton("继续发牌");

Buttonkai=newButton("开牌");

Panelp=newPanel();

Randomr=newRandom();

Fontf1=newFont("楷体",Font.BOLD,24);

ImageI[]=newImage[13];

intk[]=newint[14];

booleanbool=false,bol=false;

inti,n,sum,w;

publicvoidpaint(Graphicsg){

int*=20;

if(bool){

for(i=0;i<n;i++){

g.drawImage(I[k[i]],*,50,this);

*=*+80;

}

Strings;

s=Integer.toString(sum);

g.drawString("你现在的点数是:",20,300);

g.setColor(Color.BLUE);

g.setFont(f1);

g.drawString(s,110,300);

}

if(sum>21){

g.drawString("Sorry!你爆了~",300,380);

}

if(bol){

if(sum>w){

g.drawString("恭喜你~YOUWIN!",200,380);

}elseif(sum==w)

g.drawString("庄家和你一样大,所以庄家赢!",200,380);

else

g.drawString("庄家比你大,YOULOST!",200,380);

bol=false;

Stringstr;

g.drawString("庄家的牌面点数是:",250,420);

str=Integer.toString(w);

g.drawString(str,455,420);

}

}

publicGame(){

super("21点小游戏");

setSize(600,500);

setLocation(300,100);

setLayout(newBorderLayout());

addWindowListener(this);

setBackground(Color.lightGray);

p.setBackground(Color.blue);

p.add(st);

st.addActionListener(this);

p.add(yao);

yao.addActionListener(this);

p.add(kai);

kai.addActionListener(this);

add("South",p);

I[0]=Toolkit.getDefaultToolkit().getImage("a.jpg");

I[1]=Toolkit.getDefaultToolkit().getImage("2.jpg");

I[2]=Toolkit.getDefaultToolkit().getImage("3.jpg");

I[3]=Toolkit.getDefaultToolkit().getImage("4.jpg");

I[4]=Toolkit.getDefaultToolkit().getImage("5.jpg");

I[5]=Toolkit.getDefaultToolkit().getImage("6.jpg");

I[6]=Toolkit.getDefaultToolkit().getImage("7.jpg");

I[7]=Toolkit.getDefaultToolkit().getImage("8.jpg");

I[8]=Toolkit.getDefaultToolkit().getImage("9.jpg");

I[9]=Toolkit.getDefaultToolkit().getImage("10.jpg");

I[10]=Toolkit.getDefaultToolkit().getImage("j.jpg");

I[11]=Toolkit.getDefaultToolkit().getImage("q.jpg");

I[12]=Toolkit.getDefaultToolkit().getImage("k.jpg");

setVisible(true);

}

publicstaticvoidmain(String[]args){

Gameg=newGame();

}

publicvoidwindowActivated(WindowEvente){

}

publicvoidwindowClosed(WindowEvente){

}

publicvoidwindowClosing(WindowEvente){

e.getWindow().dispose();

System.e*it(0);

}

publicvoidwindowDeactivated(WindowEvente){

}

publicvoidwindowDeiconified(WindowEvente){

}

publicvoidwindowIconified(WindowEvente){

}

publicvoidwindowOpened(WindowEvente){

}

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==st){

kai.setEnabled(true);

yao.setEnabled(true);

w=Math.abs(r.ne*tInt()%22);

if(w<10){

w=w+10;

}

bool=true;

n=2;

for(i=0;i<2;i++){

k[i]=Math.abs(r.ne*tInt()%13);

}

}

if(e.getSource()==yao){

k[n]=Math.abs(r.ne*tInt()%13);

n++;

}

jifen();

repaint();

if(e.getSource()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论