记录生活吧,自己乱搞的,肯定有很多需要优化的地方,各位大佬多多谅解
游戏规则
猜拳游戏
玩家和电脑进行猜拳(石头剪刀布)
每回合分别由玩家和电脑依次出拳
打印显示双方出拳的结果,并对结果进行判定
回合结束后询问玩家是否要继续游戏
如果玩家选择继续游戏则开启下一个回合的猜拳
否则游戏结束
游戏结束后统计前面回合的数据
数据要求显示游戏的总局数,玩家胜利的场数,平局的场数以及失败的场数并显示胜率
根据胜利的场数打印显示最终结果(玩家胜场大于电脑胜场则表示玩家胜利)
import java.io.Serializable;
import java.util.Random;
import java.util.SplittableRandom;
/**
* 电脑类
*/
public class Computer {
/**
* 出拳的方法
*/
public int showFinger(){
//使用随机数(1-3)出拳
Random a= new Random();
int b=a.nextInt(3)+1;
return b;
}
}
package com.igeek.demo1;
import javax.xml.stream.events.StartDocument;
import java.awt.image.PixelInterleavedSampleModel;
import java.util.Scanner;
/**
* 游戏类 封装了游戏的业务内容
*/
public class Game {
//玩家
private Player player = new Player();
//电脑
private Computer cpu = new Computer();
int players;
int cpus;
/**
* 开启游戏
*/
public void start() {
player.setWinCount(0);
player.setLoseCount(0);
player.setDogfallCount(0);
//执行游戏回合
gameLogic();
//显示游戏统计结果
}
/**
* 每个回合的游戏内容
*/
public void gameLogic() {
players = player.showFinger();
//玩家出拳
cpus = cpu.showFinger();
//电脑出拳
//显示出拳结果
System.out.println("玩家 :"+changeFinger(players));
System.out.println("电脑 :"+changeFinger(cpus));
//判定出拳结果
//询问玩家是否继续游戏
showResult();
while(continues()==1){
gameLogic();
}
}
/**
* 将出拳的数值转换为字符信息(石头剪刀布)的方法
*
* @param figer
* @return
*/
public String changeFinger(int figer) {
if (figer == 1) {
return "石头";
} else if (figer == 2) {
return "剪刀";
} else {
return "布";
}
}
/**
* 游戏结果的显示统计
*/
public void showResult () {
pandingResult(players,cpus);
System.out.println("平局为:"+player.getDogfallCount());
System.out.println("胜局为:"+player.getWinCount());
System.out.println("败局为:"+player.getLoseCount());
}
public int continues(){
System.out.println("是否继续:继续则输1;退出则输0" );
Scanner input =new Scanner(System.in);
int b=input.nextInt();
return b;
}
public void pandingResult (int a,int b) {
if(a==1&&b==1){
player.setDogfallCount(player.getDogfallCount()+1);
}else if(a==2&&b==2){
player.setDogfallCount(player.getDogfallCount()+1);
}else if(a==3&&b==3){
player.setDogfallCount(player.getDogfallCount()+1);
}else if(a==1&&b==2){
player.setWinCount(player.getWinCount()+1);
}else if(a==1&&b==3){
player.setLoseCount(player.getLoseCount()+1);
}else if(a==2&&b==1){
player.setLoseCount(player.getLoseCount()+1);
}else if(a==2&&b==3){
player.setWinCount(player.getWinCount()+1);
}else if(a==3&&b==1){
player.setWinCount(player.getWinCount()+1);
}else if(a==3&&b==2){
player.setLoseCount(player.getLoseCount()+1);
}
}
}
package com.igeek.demo1;
import com.sun.jdi.PathSearchingVirtualMachine;
import java.util.Scanner;
/**
* 玩家类
*/
public class Player {
//胜场
private int winCount;
//平场
private int dogfallCount;
//输场
private int loseCount;
/**
* 出拳的方法
*/
public int showFinger(){
System.out.println("请输入1:石头;2:剪刀;3:布");
Scanner input =new Scanner(System.in);
int b=input.nextInt();
return b;
}
public int getWinCount() {
return winCount;
}
public void setWinCount(int winCount) {
this.winCount = winCount;
}
public int getDogfallCount() {
return dogfallCount;
}
public void setDogfallCount(int dogfallCount) {
this.dogfallCount = dogfallCount;
}
public int getLoseCount() {
return loseCount;
}
public void setLoseCount(int loseCount) {
this.loseCount = loseCount;
}
}
package com.igeek.demo1;
public class main {
public static void main(String[] args) {
Game am=new Game();
am.start();
}
}

该博客记录了一个猜拳游戏,玩家与电脑进行石头剪刀布,每回合依次出拳,显示结果并判定胜负。回合结束后询问玩家是否继续,若结束则统计总局数、玩家胜场、平局场数、失败场数及胜率,根据胜场判断最终胜负。
948





