java猜拳游戏编程代码简单(猜拳游戏代码c++极简)

http://www.itjxue.com  2023-03-18 18:54  来源:未知  点击次数: 

java编程 用循环方式实现和计算机玩猜拳的程序 (设定胜出条件--输3次或赢3次即退出)

大哥,刚刚看到你的就开始写了。各种功能都有,包括判断你输入的字符是否正确,假如不符合的字符就提示。不玩了就可以直接按0退出。

然后,只要是赢三次,输三次都自动退出,并输出你输赢,还可以自动共玩多少局,输赢局数统计!希望能帮到您。

/*

猜拳游戏思路

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(a0){//假如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==1y==2||x==2y==3||x==3y==1){?//开始判断赢的情况

if(x==1y==2){

win++;//win1

System.out.println("[你]:石头---VS---[电脑]:剪刀????PK:赢了!"+"????共玩"+all+"局,"+"赢:"+win+",输:"+lose);

all++;

}else?if(x==2y==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==1y==3){

lose++;

System.out.println("[你]:石头---VS---[电脑]:布????PK:输了!"+"????共玩"+all+"局,"+"赢:"+win+",输:"+lose);

all++;

}else?if(x==2y==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使用循环,实现猜拳游戏统计多少局及胜率?

为了让游戏有参与感,并体现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能输出游戏时间

Java实现猜拳游戏的核心在于电脑随机数的生成,Java中的随机数生成方法是:

首先引入包? ?import java.util.*;??然后???int r=new Random().nextInt(3);??(nextInt中的数字三代表随机数生成的个数,从零开始)

所以在猜拳的输入中需要有0、1、2三个数字代替,如果要输入汉字,则用if进行相应判断即可。

在实现的游戏中实现①猜拳;②记录胜负;③玩家决定游戏局数;④输出获胜、失败及平局;⑤统计总共的胜负结果(根据获胜次数判断)

①猜拳基础功能:该部分代码可以放到一个方法中,减少主函数代码量。

电脑出拳即??int r=new Random().nextInt(3);??注意:该部分一定要写在for循环内部,否则无法实现每次不同的随机数。

通过if判断双方出拳是否相等? ?if(a==0r==0)? else?if(a==0r==1)? else if(a==0r==2)? ?即可实现猜拳,if内直接输出相关语句即可

②记录胜负:? 定义猜拳方法为int ,通过返回值记录相关比赛的胜负情况? ,可以用0--失败;1--获胜;2--平局 进行记录,在主函数中对相应抛出的数字记录即可

if(a==0r==0){

System.out.println("The computer comes out with cloth,it was a draw. ");

return 2;

}

h=comp.compare(a,r); if (h==1) j++;

登录后复制

③玩家决定局数: 定义一个数,在循环中不大于该数即可

④输出获胜、失败及平局: j、k即胜利和失败,平局数即n-j-k。

⑤统计结果,直接用if比较i、j的数字结果即可。

主函数部分:

package SS2_5;

import java.util.*;

public class Main {

public static void main(String args[]){

Scanner scanner=new Scanner(System.in);

Compare comp=new Compare();

int h=0,j=0,k=0;

System.out.println("rules:0--cloth;1--stone;2--scissors.\nU can choose how many times you want to play:");

int n=scanner.nextInt();

for(int i=1;i=n;i++){

System.out.print("It's the "+i+" round,your turn:");

int a=scanner.nextInt();

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

switch (a){

case 0:

h=comp.compare(a,r);

break;

case 1:

h=comp.compare(a,r);

break;

case 2:

h=comp.compare(a,r);

break;

default:

System.out.println("Wrong number!");

break;

}

if (h==1)

j++;

else if(h==0)

k++;

}

System.out.println("The total times you won are "+j+",The draw times are "+(n-j-k)+".");

if(jk)

System.out.println("You are the final winner");

else if(kj)

System.out.println("The computer is the winner.");

if(j==k)

System.out.println("The final result is draw");

}

}

登录后复制

compare方法部分

package SS2_5;

public class Compare {

public int compare(int a,int r){

int counter=0;

if(a==0r==0){

System.out.println("The computer comes out with cloth,it was a draw. ");

return 2;

}

else if(a==0r==1){

System.out.println("The computer comes out with stone, you won. ");

return 1;

}

else if(a==0r==2){

System.out.println("The computer comes out with scissor,you lost. ");

return 0;

}

else if(a==1r==0){

System.out.println("The computer comes out with cloth,you lost. ");

return 0;

}

else if(a==1r==1){

System.out.println("The computer comes out with stone,it was a draw. ");

return 2;

}

else if(a==1r==2){

System.out.println("The computer comes out with scissors,you won. ");

return 1;

}

else if(a==2r==0){

System.out.println("The computer comes out with cloth,you won. ");

return 1;

}

else if(a==2r==1){

System.out.println("The computer comes out with stone,you lost. ");

return 0;

}

else if(a==2r==2){

System.out.println("The computer comes out with scissors,it was a draw. ");

return 2;

}

else

return 0;

}

}

登录后复制

java

704拖拉机

精选推荐

广告

java写简单的猜拳游戏

2下载·0评论

2016年7月27日

用Java编写的猜拳小游戏

2029阅读·0评论·0点赞

2021年3月7日

Java猜拳游戏和Random的应用

21阅读·0评论·0点赞

2022年10月24日

java实现完整版猜拳小游戏

25下载·0评论

2018年11月22日

用python实现功能猜拳

1137阅读·2评论·3点赞

2022年7月14日

java猜拳switch计分制_java----猜拳(10局分胜负)

117阅读·0评论·1点赞

2021年3月15日

二手拖拉机交易市场,你还在高价买吗?

精选推荐

广告

利用Java编写简单的猜拳游戏

911阅读·0评论·1点赞

2022年9月8日

Java简单实现猜拳游戏

1.1W阅读·1评论·2点赞

2022年1月23日

java猜拳游戏代码_Java实现简单猜拳游戏

4496阅读·0评论·0点赞

2021年3月1日

用java来写一个简单的猜拳小游戏

890阅读·1评论·1点赞

2022年7月26日

java实现猜拳游戏

3180阅读·2评论·1点赞

2022年5月4日

JAVA编写猜拳游戏

3037阅读·3评论·3点赞

2021年3月16日

[Java教程]17.实战,趣味猜拳小游戏

8040阅读·2评论·3点赞

2020年6月24日

怎么用java实现人机猜拳?

1959阅读·6评论·9点赞

2021年7月22日

Java Random经典例子【猜拳游戏】

4318阅读·0评论·0点赞

2014年3月22日

java的人机猜拳代码_Java实现人机猜拳游戏

702阅读·0评论·2点赞

2021年3月12日

Java基础练习之猜拳游戏

363阅读·1评论·1点赞

2021年8月19日

用java写猜拳小游戏

1096阅读·0评论·1点赞

2021年9月1日

Java猜拳小游戏

97阅读·0评论·0点赞

2022年8月23日

java猜拳小游戏

500阅读·1评论·0点赞

2022年7月14日

用java如何编写一个猜拳游戏?

我之前写了个猜拳游戏的源代码,不过没你想的这么精彩。你才给5分就给你你自己修改了,应该很简单的。要多给点分我可以帮你修改。

import java.util.Scanner;

import java.util.Random;

public class caiquan

{

final int jiandao=0;

final int shitou=1;

final int bu=2;

public static void main(String[] args)

{

String yn="y";

while (yn.equals("y"))

{

Scanner scanner = new Scanner(System.in);

System.out.println("欢迎玩猜拳游戏。请输入0,1,2:0表示剪刀,1表示石头,2表示布");

int a = scanner.nextInt();

Random rd = new Random();

int b = rd.nextInt(3);

switch (b)

{

case 0:

{

System.out.println("系统出的是剪刀");

switch(a)

{

case 0:System.out.println("平");break;

case 1:System.out.println("赢");break;

case 2:System.out.println("输");break;

}

}

break;

case 1:

{

System.out.println("系统出的是石头");

switch(a)

{

case 0:System.out.println("输");break;

case 1:System.out.println("平");break;

case 2:System.out.println("赢");break;

}

}

break;

case 2:

{

System.out.println("系统出的是布");

switch(a)

{

case 0:System.out.println("赢");break;

case 1:System.out.println("输");break;

case 2:System.out.println("平");break;

}

}

}

Scanner ynn = new Scanner(System.in);

System.out.println("是否继续?是请输入y,否则输入n。");

yn=ynn.next();

}

}

}

用JAVA编写一个猜拳游戏【5局3胜】

import java.util.Scanner;

/**

* 用户输入石头,剪子,布,和系统随机产生的对比,【5局3胜】

* @author ww

*

*/

public class Mora {

public static void main(String[] args){

Scanner s = new Scanner(System.in);

System.out.println("请输入石头剪子布...");

int userWin = 0; //用户赢的次数

int computerWin = 0; //计算机赢的次数

for(int i=0;i5;i++){

String user = s.next();

int user_int;

int computer = (int) (Math.random()*3);

//将石头剪子布转换成数字,容易比较

//石头-0,剪子-1,布-2

if("石头".equals(user)){

user_int = 0;

}else if("剪子".equals(user)){

user_int = 1;

}else if("布".equals(user)){

user_int = 2;

}else{

System.out.println("请正确输入石头剪子布...");

i--;

continue;

}

System.out.println("user_int"+user_int);

System.out.println("computer"+computer);

//判断输赢

if(user_int-computer==-1 || user_int-computer==2){

userWin++;

System.out.println("您赢了"+userWin+"次");

if(userWin==3){

System.out.println("恭喜!您赢了");

break;

}

}else if(computer-user_int==-1 || computer-user_int==2){

computerWin++;

System.out.println("您输了"+computerWin+"次");

if(computerWin==3){

System.out.println("对不起!您输了");

break;

}

}else{

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

i--;

continue;

}

}

}

}

(责任编辑:IT教学网)

更多

推荐网络创业文章