1.Java使用循环,猜拳猜拳实现猜拳游戏统计多少局及胜率?
2.java编程 用循环方式实现和计算机玩猜拳的程序 (设定胜出条件--输3次或赢3次即退出)
3.java编程人机猜拳类和对象做求代码
Java使用循环,实现猜拳游戏统计多少局及胜率?
为了让游戏有参与感,并体现java面对对象的源码思想,我先创建一个Player选手类,代码包含选手的猜拳猜拳名字playerName还有出拳方法guess()。出拳时采用随机获取0、源码1和2的代码二八杠app源码方式分别代表石头、剪刀和布,猜拳猜拳代码如下: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().divide(new BigDecimal(sum), 2, BigDecimal.ROUND_HALF_UP)) + "%");
System.out.println("选手[" + p2.getPlayerName() + "]获胜局数为:" + resultArray[1] + ",胜率为:" +
new BigDecimal(resultArray[1]).multiply(new BigDecimal().divide(new BigDecimal(sum), 2, BigDecimal.ROUND_HALF_UP)) + "%");
System.out.println("平局局数为:" + resultArray[2] + ",平局率为:" +
new BigDecimal(resultArray[2]).multiply(new BigDecimal().divide(new BigDecimal(sum),app注册登录源码 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编程 用循环方式实现和计算机玩猜拳的程序 (设定胜出条件--输3次或赢3次即退出)
大哥,刚刚看到你的就开始写了。各种功能都有,包括判断你输入的字符是否正确,假如不符合的字符就提示。不玩了就可以直接按0退出。然后,只要是赢三次,输三次都自动退出,并输出你输赢,玛雅吧VIP源码还可以自动共玩多少局,输赢局数统计!希望能帮到您。
/
*猜拳游戏思路
1、定义输入函数
2、提示用户输入猜拳数值
3、定义随机一个数作为电脑数值
4、判断[用户输入数值]与 [电脑随机数值]
5、能够相等就是打平,不能相等就利用&&、极客论坛源码||逻辑符判断输赢
6、设定数值1-石头 2-剪刀 3-布
*/
import java.util.*;//嵌入Java.util包所有
public class Cq{
public static void main(String[] args){
int win=0;//赢的记录
int lose=0;//输的记录
int all=1;//计数总的局数
int a=1;//控制循环条件使用
System.out.println("--------------猜拳游戏---------------");
System.out.println("游戏规则:赢三次便赢,输三次便输。");
while(a>0){ //假如a=0的话就不用继续玩
Scanner in=new Scanner(System.in);//定义输入函数in,Scanner包功能,输入数值用的System.out.println("请输入一个数值:1、石头 2、剪刀 3、布 0、退出游戏");//提示输入数值
System.out.println(" ");//空行
int x=in.nextInt();//让用户输入X的数值
Random on=new Random();//定义电脑的随机数值的函数on
int y=on.nextInt(3)+1;//定义y随机函数数值范围(1--3)
if(x>=4){ //判断用户是否输入非1--3范围
System.out.println("亲,请正确输入:1、石头 2、剪刀 3、布。你输入了:"+x);
}else if(x==0){
a=0;
System.out.println("欢迎再次玩“猜拳游戏”!");
return;
}
else{
/*下面是判断用户输入x的数值 嵌套if*/
if(x==y){
if(x==1){ //判断打平的情况
System.out.println("你:石头------电脑:石头 PK:平手"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose);
all++;
}
else if(x==2){
System.out.println("你:剪刀------电脑:剪刀 PK:平手"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose);
all++;
}else {
System.out.println("你:布------电脑:布 PK:平手"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose);
all++;
}
/* 打平手的判断END*/
}else if(x==1&&y==2||x==2&&y==3||x==3&&y==1){ //开始判断赢的情况
if(x==1&&y==2){
win++;//win1
System.out.println("[你]:石头---VS---[电脑]:剪刀 PK:赢了!"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose);
all++;
}else if(x==2&&y==3){
win++;//win2
System.out.println("[你]:剪刀---VS---[电脑]:布 PK:赢了!"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose);
all++;
}else {
win++;//win3
System.out.println("[你]:布---VS---[电脑]:石头 PK:赢了!"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose);
all++;
}
//判断赢的情况END
}else { //开始判断输的情况
if(x==1&&y==3){
lose++;
System.out.println("[你]:石头---VS---[电脑]:布 PK:输了!"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose);
all++;
}else if(x==2&&y==1){
lose++;
System.out.println("[你]:剪刀---VS---[电脑]:石头 PK:输了!"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose);
all++;
}else {
lose++;
System.out.println("[你]:布---VS---[电脑]:剪刀 PK:输了!"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose);
all++;
}
}//判断输的情况END
if(win==3){
System.out.println("");
System.out.println("");
System.out.println("游戏结束:恭喜您!你已经赢了[电脑]三局!!!"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose);
a=1;
return;
}else if (lose==3) {
a=1;
System.out.println("");
System.out.println("");
System.out.println("游戏结束:很遗憾,电脑赢了你三盘!继续加油!"+" 共玩"+all+"局,"+"赢:"+win+",输:"+lose);
return;
}
else{ continue;}
}//判断是否输入数值1-3范围,如果不是1-3会提醒重新输入 END
}//while
}
}
java编程人机猜拳类和对象做求代码
先建立个Game包然后我做的是分了5个类来做的
TestStartGuess 类
package com.game.guess;
public class TestStartGuess {
/
*** 人机互动版猜拳游戏
* 程序入口
*/
public static void main(String[] args) {
Game game=new Game();
game.initial();
game.startGame();
}
}
2.Person 类
package com.game.guess;
import java.util.Scanner;
/
*** 用户类
*阶段1完成
* @param <Scanner>
*/
public class Person {
String name ="匿名";//名字
int score =0;//积分
/
*** 出拳
*@return出拳结果:1.剪刀 2.石头 3.布
*/
public int showFist(){
//接收用户的选择
Scanner input =new Scanner(System.in);
System.out.print("\n请出拳:1.剪刀 2.石头 3.布 (输入相应数字):");
int show=input.nextInt();
//输出出拳结果,并返回
switch(show){
case 1:
System.out.println("你出拳:剪刀");
break;
case 2:
System.out.println("你出拳:石头");
break;
case 3:
System.out.println("你出拳:布");
break;
}
return show;
}
}
3.Computer 类
package com.game.guess;
/
***计算机类
*阶段2完成
*/
public class Computer{
String name="电脑";//名字
int score = 0;;//积分
/
***出拳
*@return 出拳结果:1.剪刀 2.石头 3.布
*/
public int showFist(){
//产生随机数
int show =(int)(Math.random()*)%3+1;//产生随机数,表示电脑出拳
//输出出拳结果并返回
switch(show){
case 1:
System.out.println(name+"你出拳:剪刀");
break;
case 2:
System.out.println(name+"你出拳:石头");
break;
case 3:
System.out.println(name+"你出拳:布");
break;
}
return show;
}
}
4.Game 类
package com.game.guess;
import java.util.Scanner;
/
*** 游戏类类完全版
* 阶段7:功能扩展
* @param <computer>
*
*/
public class Game<computer> {
Person person; //甲方
Computer computer; //乙方
int count;//对战次数
/
*** 初始化
*/
public void initial(){
person=new Person();
computer=new Computer();
count=0;
}
/
*** 开始游戏
*/
@SuppressWarnings("resource")
public void startGame(){
System.out.println("-------欢迎进入游戏世界-------\n");
System.out.println("\n\t\t