用循环模拟的简单文字拳皇对战

拳皇这个游戏相信大家都不陌生吧,我也是刚学java,还不怎么会GUI和一些组件的使用,就写了一个文字版,什么叫文字版呢,就是我通过循环以及判断模拟出拳皇两名玩家对战的情况,通过简单的循环判断实现该程序,我们假定两个玩家的初始生命值为100,每一次的攻击是产生的5-15的随机数,我们可以假定攻击<10就判断为玩家进行一次普攻,攻击>10意味着玩家开大,我在每一次进行攻击或者时开始对战以及结果都插入了相应的音效,插入音效文件在java中不能使用.mp3后缀名的,需要将.mp3格式转化为默认的.wav格式,下一个格式工厂即可。把音频文件放在你的项目的sourse文件夹就可以了,复制粘贴。

         File sound1 = new File("sounds/Iori Yagami.wav");    
        AudioClip sound_choose = Applet.newAudioClip(sound1.toURL());

        sound_choose.play();   //开始播放音乐

        sound_choose.stop();//停止播放音乐

这些在API帮助文档可以看到

源代码如下:

import java.applet.Applet;
import java.applet.AudioClip;
import java.io.File;
import java.net.MalformedURLException;
import java.util.*;


public class EasyQuanHuangGame {


public static void main(String[] args) throws MalformedURLException, InterruptedException {
// TODO 自动生成的方法存根
        Scanner input = new Scanner(System.in);
        int HP1 = 100;   //玩家1基础生命值
        int HP2 = 100;   //玩家2基础生命值
        int attack1 = 0;  //玩家1的初始攻击值
        int attack2 = 0;  //玩家2的初始攻击值
        
        /***********模拟选人**************/
        File sound1 = new File("sounds/Iori Yagami.wav");
        AudioClip sound_choose = Applet.newAudioClip(sound1.toURL());
        sound_choose.play();   //开始播放音乐
        System.out.println("请玩家1选择游戏角色");
        String game1 = input.next();
        String ComputerName = "草稚京";
        System.out.println("玩家1选择了"+game1+"!");
        System.out.println(game1+" VS "+ComputerName);
        sound_choose.stop();    //停止播放音乐
        Thread.sleep(1000);     //等待1秒在进行
        /***********模拟对战**************/
        
        System.out.println("游戏开始!");
        File sound5 = new File("sounds/round1 go.wav");
        sound_choose = Applet.newAudioClip(sound5.toURL());
        sound_choose.play();
        Thread.sleep(3000);
        sound_choose.stop();
        
        while(HP1>0&&HP2>0) {
        attack1 = (int)((Math.random()*10000)%11+5);   //每次玩家1攻击造成的伤害5-15
        attack2 = (int)((Math.random()*10000)%11+5);   //每次玩家2攻击造成的伤害5-15
        if(attack1<10&&attack2<10) {
        /***********玩家1先进行普攻**************/
        HP2-=attack1;
        System.out.println("玩家1进行普攻对玩家2造成伤害:"+attack1);
        File sound6 = new File("sounds/普攻1.wav");
                sound_choose = Applet.newAudioClip(sound6.toURL());
                sound_choose.play();
                Thread.sleep(1000);
                sound_choose.stop();
                System.out.println("玩家2血量值:"+HP2);
                if(HP2<0)    //避免极端情况比如两个玩家生命值很相近3,5.
                {
                break;
                }
       
                /***********玩家2进行普攻**************/
            HP1-=attack2;
            System.out.println("玩家2进行普攻对玩家1造成的伤害:"+attack2);
            File sound7 = new File("sounds/普攻1.wav");
                sound_choose = Applet.newAudioClip(sound7.toURL());
                sound_choose.play();
                Thread.sleep(1000);
                sound_choose.stop();
                System.out.println("玩家1血量值:"+HP1);
                if(HP1<0) {
                break;
                }
        }
       
        if(attack1>10&&attack2>10)
        {
        /***********玩家1开大**************/
        HP2-=attack1;
        System.out.println(game1+" 大招 "+ComputerName);
        System.out.println("玩家1进行大招对玩家2造成的伤害:"+attack1);
        File sound8 = new File("sounds/八神庵大招.wav");
                sound_choose = Applet.newAudioClip(sound8.toURL());
                sound_choose.play();
                Thread.sleep(5000);
                sound_choose.stop();
                System.out.println("玩家2血量值:"+HP2);
                if(HP2<0)    //避免极端情况比如两个玩家生命值很相近3,5.
                {
                break;
                }
                
            /***********玩家2开大**************/
        HP1-=attack2;
        System.out.println(ComputerName+" 大招 "+game1);
        System.out.println("玩家2进行大招对玩家1造成的伤害:"+attack2);
        File sound9 = new File("sounds/草薙京大招.wav");
                sound_choose = Applet.newAudioClip(sound9.toURL());
                sound_choose.play();
                Thread.sleep(5000);
                sound_choose.stop();
                System.out.println("玩家1血量值:"+HP1);
                if(HP1<0) {
                break;
                }
        }
       
        if(attack1<10&&attack2>10)
        {
        /***********玩家1普攻**************/
        HP2-=attack1;
        System.out.println("玩家1进行普攻对玩家2造成伤害:"+attack1);
        File sound6 = new File("sounds/普攻1.wav");
                sound_choose = Applet.newAudioClip(sound6.toURL());
                sound_choose.play();
                Thread.sleep(1000);
                sound_choose.stop();
                System.out.println("玩家2血量值:"+HP2);
                if(HP2<0)    //避免极端情况比如两个玩家生命值很相近3,5.
                {
                break;
                }
                /***********玩家2开大**************/
                HP1-=attack2;
        System.out.println(ComputerName+" 大招 "+game1);
        System.out.println("玩家2进行大招对玩家1造成的伤害:"+attack2);
        File sound9 = new File("sounds/草薙京大招.wav");
                sound_choose = Applet.newAudioClip(sound9.toURL());
                sound_choose.play();
                Thread.sleep(5000);
                sound_choose.stop();
                System.out.println("玩家1血量值:"+HP1);
                if(HP1<0) {
                break;
                }
        }
        if(attack1>10&&attack2<10)
        {
        /***********玩家1开大**************/
       
        HP2-=attack1;
        System.out.println(game1+" 大招 "+ComputerName);
        System.out.println("玩家1进行大招对玩家2造成的伤害:"+attack1);
        File sound8 = new File("sounds/八神庵大招.wav");
                sound_choose = Applet.newAudioClip(sound8.toURL());
                sound_choose.play();
                Thread.sleep(5000);
                sound_choose.stop();
                System.out.println("玩家2血量值:"+HP2);
                if(HP2<0)    //避免极端情况比如两个玩家生命值很相近3,5.
                {
                break;
                }
                /***********玩家2进行普攻**************/
            HP1-=attack2;
            System.out.println("玩家2进行普攻对玩家1造成的伤害:"+attack2);
            File sound7 = new File("sounds/普攻1.wav");
                sound_choose = Applet.newAudioClip(sound7.toURL());
                sound_choose.play();
                Thread.sleep(1000);
                sound_choose.stop();
                System.out.println("玩家1血量值:"+HP1);
                if(HP1<0) {
                break;
                }
        }
        }
        /***********对战结果**************/
        if(HP2<=0) {
        File sound2 = new File("sounds/ko 草薙京.wav");
            sound_choose = Applet.newAudioClip(sound2.toURL());
            sound_choose.play();
            System.out.println(game1+" KO "+ComputerName);
            Thread.sleep(4000);
            sound_choose.stop();
        }
        else if(HP1<=0)
        {
        File sound3 = new File("sounds/ko 八神庵.wav");
            sound_choose = Applet.newAudioClip(sound3.toURL());
            sound_choose.play();
        System.out.println(ComputerName+" KO "+game1);
        Thread.sleep(4000);
            sound_choose.stop();
        }
        else   //平局
        {
        File sound4 = new File("sounds/drawgame 平局.wav");
            sound_choose = Applet.newAudioClip(sound4.toURL());
            sound_choose.play();
        System.out.println(ComputerName+" 平局 "+game1);
        Thread.sleep(1000);
            sound_choose.stop();
        }
        System.out.println("双方剩余血量:");
        System.out.println(game1+": "+HP1+"\t"+ComputerName+": "+HP2);
        input.close();
}


}

大概运行结果:



猜你喜欢

转载自blog.csdn.net/lytwy123/article/details/80949848