java猜拳游戏编程代码简单(猜拳游戏代码c++极简)
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;
}
}
}
}