佰落暑期java自学记录-5

佰落暑期java自学记录-5

记录时间:2019-7-24
记录内容摘要:
1、java循环结构
2、java音频播放
3、随机数实现
4、石头剪刀布版拳皇初步实现

1、java循环结构
java循环结构与c语言循环结构基本相似,(for语句还未学到)
while语句和do while语句用法与c语言也基本相似;不做过多记录

2、java音频播放

具体内容尚未搞懂其使用方法,
本次使用的代码如下,播放游戏的开始音效;
可以将音频文件夹直接放到程序源码根目录下,java只支持wav格式音频(未验证)

	File sound1 = new File("拳皇音效/拳皇98选人画面.wav");
	AudioClip sound_choose = Applet.newAudioClip(sound1.toURL());
	sound_choose.play();//播放开始音效;

3、随机数实现

本处使用的时math.random()来取0-1之间的随机数,然后通过乘法和求模来等计算来取得所需随机数。
本处随机生成1,2,3来代替电脑选择;

	int com = (int) ((Math.random()*10) % 3 + 1);//电脑选择为自动生成

其它随机数方法待补充(正在研究);

4、石头剪刀布版拳皇初步实现

通过这次学习的内容制作了简易小游戏;
所含内容:
人机对战
循环
音频播放

代码如下:

	package Kingoffight;

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

public class Kingoffight
{

public static void main(String[] args) throws MalformedURLException, InterruptedException 
{
	Scanner input = new Scanner(System.in);
	
	//剪刀石头布版拳皇。
	//游戏开始;
	File sound1 = new File("拳皇音效/拳皇98选人画面.wav");
	AudioClip sound_choose = Applet.newAudioClip(sound1.toURL());
	sound_choose.play();//播放开始音效;
	
	System.out.println("欢迎您来到石头剪刀布版拳皇。");
	System.out.print("请输入您的昵称:");//输入昵称
	String useName = input.nextLine();
	
	
	System.out.println("**************************************************\n游戏规则如下");//介绍比赛和规则
	System.out.println("您输入1(石头),2(剪刀),3(布)来与电脑比赛,输的一方被攻击");
	System.out.println("按任意键开始游戏\n**************************************************");
	input.nextLine();

	
	
	double hp1=100.0,hp2=100.0;//双方血量;
	double attack=0;
	int choice = 0;
	
	while(hp1 > 0 && hp2 > 0)//双方血量都部小于0时执行
	{
		System.out.print("请输入您的选择:");//玩家选择
		choice = input.nextInt();
		
		int com = (int) ((Math.random()*10) % 3 + 1);//电脑选择为自动生成
		
		if((choice == 1 && com == 2)||(choice == 2 && com == 3)||(choice == 3 && com == 1))//玩家胜利情况
		{
			System.out.println("**************************************************");
			attack = Math.random()*10 + 10;//随机攻击力
			hp2 -= attack;//电脑掉血
			System.out.printf("您的石头击败了电脑的剪刀,打掉了电脑%.2f滴血\n",attack);
			System.out.printf("您剩余%.2f hp\n电脑剩余%.2f hp\n",hp1,hp2);//打印双方血量
			System.out.println("**************************************************");
		}
		if((choice == 1 && com ==1)||(choice == 2 && com ==2)||(choice == 3 && com == 3))//双方平局情况
		{
			System.out.println("**************************************************");
			switch(com)
			{
			case 1:System.out.println("本次你们都出的石头,平局");break;
			case 2:System.out.println("本次你们都出的剪刀,平局");break;
			case 3:System.out.println("本次你们都出的布,平局");break;
			}
			System.out.println("**************************************************");
		}
		if((com == 1 && choice == 2)||(com == 2 && choice == 3)||(com == 3 && choice == 1))//电脑胜利情况
		{
			System.out.println("**************************************************");
			
			attack = Math.random()*10 + 10;//随机攻击力
			hp1 -= attack;
			System.out.printf("电脑的石头击败了您的剪刀,打掉了您%.2f滴血\n",attack);
			System.out.printf("您剩余%.2f hp\n电脑剩余%.2f hp\n",hp1,hp2);
			
			System.out.println("**************************************************");
		}
			
	}
	sound_choose.stop();//结束音效;
	
	if(hp1 < 0)//输出胜利信息
		System.out.println("您被电脑打败了,再接再励!");
	else
		System.out.printf("恭喜%s获得胜利!\n",useName);
	
	System.out.println("本次游戏结束!");
	
	
}

}

运行结果:
欢迎您来到石头剪刀布版拳皇。
请输入您的昵称:张三丰


游戏规则如下
您输入1(石头),2(剪刀),3(布)来与电脑比赛,输的一方被攻击
按任意键开始游戏


请输入您的选择:1


本次你们都出的石头,平局


请输入您的选择:2


本次你们都出的剪刀,平局


请输入您的选择:3


您的石头击败了电脑的剪刀,打掉了电脑19.89滴血
您剩余100.00 hp
电脑剩余80.11 hp


请输入您的选择:1


本次你们都出的石头,平局


请输入您的选择:2


您的石头击败了电脑的剪刀,打掉了电脑12.18滴血
您剩余100.00 hp
电脑剩余67.93 hp


请输入您的选择:3


本次你们都出的布,平局


请输入您的选择:1


本次你们都出的石头,平局


请输入您的选择:2


您的石头击败了电脑的剪刀,打掉了电脑14.13滴血
您剩余100.00 hp
电脑剩余53.80 hp


请输入您的选择:3


本次你们都出的布,平局


请输入您的选择:1


您的石头击败了电脑的剪刀,打掉了电脑19.15滴血
您剩余100.00 hp
电脑剩余34.66 hp


请输入您的选择:2


本次你们都出的剪刀,平局


请输入您的选择:3


您的石头击败了电脑的剪刀,打掉了电脑12.90滴血
您剩余100.00 hp
电脑剩余21.75 hp


请输入您的选择:1


您的石头击败了电脑的剪刀,打掉了电脑13.10滴血
您剩余100.00 hp
电脑剩余8.65 hp


请输入您的选择:23
请输入您的选择:2


本次你们都出的剪刀,平局


请输入您的选择:3


您的石头击败了电脑的剪刀,打掉了电脑17.77滴血
您剩余100.00 hp
电脑剩余-9.12 hp


恭喜张三丰获得胜利!
本次游戏结束!

小游戏尚存较多bug,以后会慢慢更正;今天主要内容以实践为主。

问题:

1、各种import是不是类似与c中的函数库;
2、音频播放部分无法理解使用方法;太多不理解的英文字符串

额外收获
Java中时间的表示
System.currentTimeMillis();表示从1970-1-1到现在的毫秒数(很大,用long型);
可以记录两次时间来取差表示所用的时间

你可能感兴趣的:(自学记录)