java游戏排行榜实现
创始人
2024-11-14 07:37:41
0

一、Java使用循环,实现猜拳游戏统计多少局及胜率

为了让游戏有参与感,并体现java面对对象的思想,我先创建一个Player选手类,包含选手的名字playerName还有出拳方法guess()。出拳时采用随机获取0、1和2的方式分别代表石头、剪刀和布,代码如下:

public class Player{

private String playerName;

public Player(String playerName){

this.playerName= playerName;

}

public String getPlayerName(){

return playerName;

}

//出拳方法 0-石头 1-剪刀 2-布

public int guess(){

//随机获取0、1、2

int num= new Random().nextInt(3);

if(num== 0){

System.out.print("选手"+ this.playerName+"出的是石头");

} else if(num== 1){

System.out.print("选手"+ this.playerName+"出的是剪刀");

} else if(num== 2){

System.out.print("选手"+ this.playerName+"出的是布");

}

return num;

}

}

然后在主类中,首先要输入对局的总数,然后创建两名选手进行pk,在pk()方法中制定了获胜规则,详见代码注释。最终统计并利用BigDecimal计算胜率(BigDecimal可以很完美的解决整数除法及其四舍五入保留小数的问题):

public class Main{

public static void main(String[] args){

System.out.println("请输入本局局数:");

Scanner scanner= new Scanner(System.in);

int sum= scanner.nextInt();

//创建结果数组,resultArray[0]代表p1的获胜局数,resultArray[1]代表p2的获胜局数,resultArray[2]代表平局局数

int[] resultArray= new int[3];

//创建两名选手

Player p1= new Player("张三");

Player p2= new Player("李四");

for(int i= 0; i< sum; i++){

//根据总局数进行pk

int result= pk(p1, p2);

if(result== 1){

resultArray[0]++;

} else if(result==-1){

resultArray[1]++;

} else{

resultArray[2]++;

}

}

System.out.println("");

System.out.println("最终结果统计:");

System.out.println("选手["+ p1.getPlayerName()+"]获胜局数为:"+ resultArray[0]+",胜率为:"+

new BigDecimal(resultArray[0]).multiply(new BigDecimal(100).divide(new BigDecimal(sum), 2, BigDecimal.ROUND_HALF_UP))+"%");

System.out.println("选手["+ p2.getPlayerName()+"]获胜局数为:"+ resultArray[1]+",胜率为:"+

new BigDecimal(resultArray[1]).multiply(new BigDecimal(100).divide(new BigDecimal(sum), 2, BigDecimal.ROUND_HALF_UP))+"%");

System.out.println("平局局数为:"+ resultArray[2]+",平局率为:"+

new BigDecimal(resultArray[2]).multiply(new BigDecimal(100).divide(new BigDecimal(sum), 2, BigDecimal.ROUND_HALF_UP))+"%");

}

//0-石头 1-剪刀 2-布

//return 0:平局 1:p1获胜-1:p2获胜

private static int pk(Player p1, Player p2){

System.out.println("--------------------");

int a= p1.guess();

int b= p2.guess();

System.out.print("\n对局结果:");

//出拳相同平局

if(a== b){

System.out.println("平局");

return 0;

}

//p1获胜条件:p1出石头时p2出剪刀,p1出剪刀时p2出步,p1出布时p2出石头

else if((a== 0&& b== 1)||(a== 1&& b== 2)||(a== 2&& b== 0)){

System.out.println("选手["+ p1.getPlayerName()+"]获胜");

return 1;

}

//p2获胜条件:p1出石头时p2出布,p1出剪刀时p2出石头,p1出布时p2出剪刀

else if((a== 0&& b== 2)||(a== 1&& b== 0)||(a== 2&& b== 1)){

System.out.println("选手["+ p2.getPlayerName()+"]获胜");

return-1;

} else{

//因为规定了随机数产生0、1、2,所以其实不会走到本分支

throw new IllegalArgumentException("本局无效");

}

}

}

对局5局的运行结果:

我这里就只能统计当前游戏的数据了,如果你想统计多局游戏总的胜率信息,那么需要将每一局的比赛结果写到txt文件里,最终根据txt文件内容统计即可。

二、如何用java编写一个游戏排行榜的功能

1)把记录的东西存到一个ArrayList里但是退出以后再进入就没了。

2)把记录的东西存到一个txt文件中用特殊的方式存再用特殊的方式取

比如说存的时候用“,”隔开名字和分数,在取的时候用split方法去分割

名字和分数。

3)把名字和分数存到数据库要的时候调用就是了(这个是最好的方法)

至于排行的话重写compareTo方法然后用Collections.sort去排序。

三、怎么用java写一个游戏排名界面,最好是有代码和解释,谢谢!

java实现的简单猜数字游戏代码,通过随机数与逻辑判断来实现游戏功能

代码如下:

import java.util.InputMismatchException;

import java.util.Scanner;

public class Main{

public static void main(String[] args){

//产生一个随机数

int number=(int)(Math.random()* 100)+ 1;

//加入count

int count= 0;

//在这里加入最大值,和最小值

int max= 100;

int min= 1;

while(true){

//键盘录入数据

Scanner sc= new Scanner(System.in);

System.out.println("请输入你要猜的数据:("+ min+"~"+ max+")");

try{

count++;

int guessNumber= sc.nextInt();

//判断

if(guessNumber> number){

max= guessNumber;

System.out.println("你猜大了");

} else if(guessNumber< number){

min= guessNumber;

System.out.println("你猜小了");

} else{

System.out.println("恭喜你,花了"+ count+"次就猜中了");

//问是否继续

System.out.println("请问还要继续吗?(yes)");

sc= new Scanner(System.in);

String str= sc.nextLine();

if("yes".equals(str)){

//重写赋值随机数

number=(int)(Math.random()* 100)+ 1;

count= 0;

max= 100;

min= 1;

} else{

break;

}

}

} catch(InputMismatchException e){

System.out.println("你输入的数据有误");

}

}

}

}

相关内容

热门资讯

国产 重力 游戏排行榜 一、推荐一些iphone APPstore里的重力感应游戏1、Labyrinth 2 HD一款控制钢...
广州棋牌游戏排行榜 一、电竞游戏排行榜前十名是哪些电竞游戏排行榜前十名:《DOTA2》,《绝地求生》,《英雄联盟》,《穿...
高清画质游戏排行榜 一、好玩的游戏排行榜前十名第1款《战争机器5》《战争机器》系列最早是Xbox平台上面的独占游戏,电脑...
顶级玄幻游戏排行榜 一、策略游戏排行榜前十名策略游戏排行榜前十名如下:1、《部落冲突》3D卡通的战争策略类游戏,在这个游...
当今恐怖游戏排行榜 一、恐怖游戏排行榜前十名恐怖游戏排行榜前十名依次是:《生化危机》、《寂静岭》、《逃生》、《死魂曲2》...
传奇游戏推荐 排行榜 一、有什么值得推荐好玩的传奇游戏要说好玩的游戏,首推:海蛇传奇(2022庆典福利版),2022.10...
策略游戏下载排行榜 一、手游策略游戏排行榜前十名手游策略游戏排行榜前十名是《三国志·战略版》《海岛奇兵》《部落冲突》《率...
ps系游戏排行榜 一、ps4游戏排行榜前十名ps4十大必玩的游戏有《漫威蜘蛛侠》、《荒野大镖客2》、《赞歌》、《战神4...
psp重制游戏排行榜 一、psp十大经典游戏排行10、《Daxter》《Jak& Daxter》一直是一款颇具人气的动作型...
8090游戏热度排行榜 一、2018美剧排行榜是怎么样的2018美剧排行榜:《Kidding》、《Maniac》、《The ...