金庸群侠传

游戏运行界面:

 

游戏实现源码:

 package game.logic;
//人类
public class Person {
public String name; //名字 Person(){ } Person(String name){
this.name = name;
}
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} }
 package game.logic;

 //会武功的人类
public class KongFuPerson extends Person { protected int blood = 1000; // 默认都是1000点血 KongFuPerson() { } public int getBlood() {
return blood;
} public void setBlood(int blood) {
this.blood = blood;
} KongFuPerson(String name) {
this.name = name;
} // 普通招数
public void commonSkill(KongFuPerson P) {
P.blood -= 50; //攻击敌人50点血
} //杀招式
public void bestSkill(KongFuPerson P) {
P.blood -= 100; //攻击敌人100点血
}
}
 package game.logic;

 //武功绝学类(接口)
public interface Secrets {
public void secrets(KongFuPerson P);
}
 package game.logic;

 //武功高手类
public class KongFuMaster extends KongFuPerson implements Secrets{ public void secrets(KongFuPerson P) {
P.blood -= 300;//攻击敌人300点血 } }
 package game.roles;

 import game.logic.KongFuMaster;
import game.logic.KongFuPerson; //令狐冲类
public class Linghuchong extends KongFuMaster{ public Linghuchong(){ } public Linghuchong(String name){
this.name = name;
}
public void secrets(KongFuPerson P) {
// TODO Auto-generated method stub
super.secrets(P);
System.out.println(this.getName()+"使用武功绝学独孤九剑攻击"+P.getName()+"300点血");
} public void commonSkill(KongFuPerson P) {
// TODO Auto-generated method stub
super.commonSkill(P);
System.out.println(this.getName()+"使用越女剑法攻击"+P.getName()+"50点血");
} public void bestSkill(KongFuPerson P) {
// TODO Auto-generated method stub
super.bestSkill(P);
System.out.println(this.getName()+"使用华山剑法攻击"+P.getName()+"100点血");
} }
 package game.roles;

 import game.logic.KongFuMaster;
import game.logic.KongFuPerson; //欧阳锋类
public class Ouyangfeng extends KongFuMaster{
public Ouyangfeng(){ } public Ouyangfeng(String name){
this.name = name;
}
public void secrets(KongFuPerson P) {
// TODO Auto-generated method stub
super.secrets(P);
System.out.println(this.getName()+"使用武功绝学蛤蟆功攻击"+P.getName()+"300点血");
} public void commonSkill(KongFuPerson P) {
// TODO Auto-generated method stub
super.commonSkill(P);
System.out.println(this.getName()+"使用毒蛇攻击"+P.getName()+"50点血");
} public void bestSkill(KongFuPerson P) {
// TODO Auto-generated method stub
super.bestSkill(P);
System.out.println(this.getName()+"使用毒蛇拐杖攻击"+P.getName()+"100点血");
}
}
 package game.app;

 import game.logic.KongFuMaster;
import game.roles.Linghuchong;
import game.roles.Ouyangfeng; import java.util.Scanner; public class Game { public static Scanner in = new Scanner(System.in);
public static int choice;//用户的选择
public static KongFuMaster player;//玩家
public static KongFuMaster computer;//电脑玩家
public static boolean isFirst = true;//默认玩家打电脑 //游戏角色初始化方法
public static void init(){
switch(choice){
case 1:
player = new Linghuchong("令狐冲");
computer = new Ouyangfeng("欧阳锋");
break;
case 2:
player = new Ouyangfeng("欧阳锋");
computer = new Linghuchong("令狐冲");
break;
}
System.out.println("您选择了:"+ player.getName());
} //显示游戏菜单
public static void Menu(){
System.out.println("********欢迎进入金庸群侠传***********");
System.out.println("1.令狐冲 2.欧阳锋");
System.out.println("请选择:");
choice = in.nextInt();
} //游戏PK方法
public static void beginCombat(KongFuMaster player , KongFuMaster computer){
//生成一个1-3之间的随机数
int temp = (int)(Math.random()*10)%3; //0-2
temp++;
switch(temp){
case 1:
if(Game.isFirst){
player.commonSkill(computer);
}else{
computer.commonSkill(player);
}
break;
case 2:
if(Game.isFirst){
player.bestSkill(computer);
}else{
computer.bestSkill(player);
}
break;
case 3:
if(Game.isFirst){
player.secrets(computer);
}else{
computer.secrets(player);
}
break;
}
Game.isFirst = !Game.isFirst;
} //判断游戏是否结束
public static boolean isComplete(){
if(Game.player.getBlood()<=0||Game.computer.getBlood()<=0){
return true;
}else{
return false;
}
} //显示游戏结果
public static void showResult(){
if(Game.player.getBlood()<=0){
System.out.println("君子报仇十年不晚,咱们后会有期。。。。");
}else{
System.out.println("别羡慕哥,哥只是个传说。。。。");
}
} public static void main(String[] args){
Game.Menu();//显示菜单
Game.init();//初始化游戏 do{
//开始PK
Game.beginCombat(player, computer);
}while(!Game.isComplete());//判断是否结束 Game.showResult();//显示游戏结果
}
}

小游戏——金庸奇侠传(JAVA,对面向对象的进一步了解)的更多相关文章

  1. 一次httpserver优化的经验和教训(silverlight游戏 - 金庸群侠传X0.5上线记)

    金X因为被推荐到ACFUN游戏排行第一名.并同一时候在17YY.7K7K.U77.17173等各大小游戏站点上线.迎来了在线用户数量的爆炸式增长.眼下各大站点使用外链方式.也就是实际链接到金X官网的s ...

  2. 原创游戏,金庸群侠传X 0.5公布

    首先说一下背景,我个人从小特别爱玩游戏,对小时候一款游戏<金庸群侠传>DOS版更是情有独钟,自己工作以后,利用业余时间自己整了一个原创的改编版丢网上(找图片.音乐.写剧情更是虐心之极,耗时 ...

  3. 我用shell写了个mud游戏:武林群侠传

    零.前言 学习shell的时候,无聊的我,写了个简单版的文字mud,暂且叫武林群侠传吧.可能90后都不知道文字mud是什么了--哈哈 壹.效果 先看下效果吧,GIF图如下 文字效果如下: [root@ ...

  4. Java太阳系小游戏分析和源代码

    Java太阳系小游戏分析和源代码 -20150809 近期看了面向对象的一些知识.然后跟着老师的解说做了一个太阳系各行星绕太阳转的小游戏,来练习巩固一下近期学的知识: 用到知识点:类的继承.方法的重载 ...

  5. 【开源】微信小程序、小游戏以及 Web 通用 Canvas 渲染引擎 - Cax

    Cax 小程序.小游戏以及 Web 通用 Canvas 渲染引擎 Github → https://github.com/dntzhang/cax 点我看看 DEMO 小程序 DEMO 正在审核中敬请 ...

  6. canvas小游戏——flappy bird

    前言 如果说学编程就是学逻辑的话,那锻炼逻辑能力的最好方法就莫过于写游戏了.最近看了一位大神的fly bird小游戏,感觉很有帮助.于是为了寻求进一步的提高,我花了两天时间自己写了一个canvas版本 ...

  7. Java打飞机小游戏(附完整源码)

    写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习.java确实不适合写桌面应用,这里只是通过这个游戏让大家理解oop面向对象编程的过程,纯属娱乐.代码写的很 ...

  8. 记一次 .NET 某桌面奇侠游戏 非托管内存泄漏分析

    一:背景 1. 讲故事 说实话,这篇dump我本来是不准备上一篇文章来解读的,但它有两点深深的感动了我. 无数次的听说用 Unity 可做游戏开发,但百闻不如一见. 游戏中有很多金庸武侠小说才有的名字 ...

  9. Java猜拳小游戏(剪刀、石头、布)

    1.第一种实现方法,调用Random数据包,直接根据“1.2.3”输出“剪刀.石头.布”.主要用了9条输出判断语句. import java.util.Random; import java.util ...

随机推荐

  1. python中安装request模块

    使用命令行(cmd)进入到python安装目录下的Scripts文件夹(也可以先进入目标文件夹然后在文件路径上打开cmd回车即可) 在命令行中输入pip install requests,等待安装完成 ...

  2. Could not find a package,configuration file provided by "G2O" ,G2OConfig.cmake,g2o-config.cmake

    因为项目需要使用到g2o,所以自己从git上面clone下来, git clone https://github.com/RainerKuemmerle/g2o.git 然后: cd g2o mkdi ...

  3. idea常用快捷键及操作

    ctrl+j  ===== 智能提示 可用模版及关键字 ctrl+p ===== 显示方法可填入的参数 ctrl+space ===== 补全提示项目中可用的变量 ctrl+shift+j  ==== ...

  4. input text 只能输入数字

    添加 onkeyup="value=value.replace(/[^\d]/g,'')"

  5. 93. Restore IP Addresses产生所有可能的ip地址

    [抄题]: Given a string containing only digits, restore it by returning all possible valid IP address c ...

  6. Less入门及知识点整理

    LESS « 一种动态样式语言 文档链接:http://www.bootcss.com/p/lesscss/ 百科 Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合( ...

  7. Windows7 VS2015 下编译 PythonQt3.2

    本文在使用vs2015编译python3.6.7源代码后,编译的PythonQt3.2.如果使用python二进制文件进行安装,注意python的路径即可 本机环境: 1.win7 64 旗舰版 2. ...

  8. 33.MySQL高可用架构

    33.高可用架构33.1 MMM架构MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序(Perl).主要用来 ...

  9. hugepage优势

    hugepage的优势与使用 +2投票   优势 通过使用hugepage分配可以提高性能,因为需要更少的页,因此需要更少Translation Lookaside Buffers (TLB,高速传送 ...

  10. 操作系统学习笔记(二) 页式映射及windbg验证方式

    页式映射 本系列截图来自网络搜索及以下基本书籍: <Windows内核设计思想> <Windows内核情景分析> <WINDOWS内核原理与实现> 一个32位虚拟地 ...