当前位置:首页 » 编程语言 » java猜拳

java猜拳

发布时间: 2022-09-22 01:33:48

java猜拳游戏程序设计怎么做啊

importjava.util.Random;

classDianNao{
publicStringchuQuan(){
Randomrand=newRandom();
inti=rand.nextInt(3);
Stringstr="";
if(i==0){
str="石头";
}
if(i==1){
str="剪刀";
}
if(i==2){
str="布";
}
returnstr;

}
}

classCaiPan{
publicStringcaiJue(Stringstr1,Stringstr2){
Stringstr="输";
if(str1.equals("石头")&&str2.equals("剪刀")){
str="赢";
}
if(str1.equals("石头")&&str2.equals("布")){
str="输";
}
if(str1.equals("石头")&&str2.equals("石头")){
str="平";
}
if(str1.equals("剪刀")&&str2.equals("石头")){
str="输";
}
if(str1.equals("剪刀")&&str2.equals("布")){
str="赢";
}
if(str1.equals("剪刀")&&str2.equals("剪刀")){
str="平";
}
if(str1.equals("布")&&str2.equals("石头")){
str="赢";
}
if(str1.equals("布")&&str2.equals("剪刀")){
str="输";
}
if(str1.equals("布")&&str2.equals("布")){
str="平";
}
returnstr;
}
}

publicclassShiTouJianBu{

/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
CaiPancp=newCaiPan();
DianNaodn1=newDianNao();
DianNaodn2=newDianNao();
Stringstr1=dn1.chuQuan();
Stringstr2=dn2.chuQuan();
Stringresult=cp.caiJue(str1,str2);
System.out.println(str1);
System.out.println(str2);
System.out.println(result);
}

}

就帮你到这吧

⑵ 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;
}

}

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

⑶ 求JAVA人机猜拳的代码,类似一下界面。

自己纯手打,老半天才弄出来啊

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.util.Random;

import javax.swing.AbstractAction;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Demo2 extends JFrame {
private JLabel lb1, lb2, lb3, lb4; // 提示标签
private JTextField ta1, ta2;// 两个文本框
private JButton b1, b2, b3; // 三个按钮
private JPanel p1, p2; // 两个JPanel面板

public Demo2() {
// 初始化所有组件
lb1 = new JLabel("欢迎使用人机猜拳程序");
lb2 = new JLabel("你出拳: ");
lb3 = new JLabel("电脑出拳:");
lb4 = new JLabel("结果");

ta1 = new JTextField();
ta1.setPreferredSize(new Dimension(60, 60)); // 设置大小
ta1.setEditable(false);//设置不可编辑
ta2 = new JTextField();
ta2.setPreferredSize(new Dimension(60, 60));
ta2.setEditable(false);//设置不可编辑

b1 = new JButton("剪刀");
b2 = new JButton("石头");
b3 = new JButton("布");

p1 = new JPanel();
p2 = new JPanel();

// 设置第一个面板内容
Box box = Box.createVerticalBox();
Box box1 = Box.createHorizontalBox();
box1.add(lb2);
box1.add(ta1);
box1.add(lb3);
box1.add(ta2);

box.add(lb1);
box.add(Box.createVerticalStrut(40));
box.add(box1);
box.add(Box.createVerticalStrut(10));
box.add(lb4);
box.add(new JLabel());

p1.add(box);

// 设置第二个面板
p2.setLayout(new GridBagLayout()); // 使用GridBagLayout布局管理器
p2.setPreferredSize(new Dimension(0, 60));
GridBagConstraints g2 = new GridBagConstraints();
g2.fill = GridBagConstraints.BOTH;
g2.weightx = 1.0;
g2.weighty = 1.0;
g2.gridx = 0;
g2.gridy = 0;
p2.add(b1, g2);
g2.gridx = 1;
p2.add(b2, g2);
g2.gridx = 2;
p2.add(b3, g2);

//为3个按钮添加事件
b1.addActionListener(new buttonAction());
b2.addActionListener(new buttonAction());
b3.addActionListener(new buttonAction());

this.getContentPane().add(p1);
this.getContentPane().add(p2, BorderLayout.SOUTH);
this.setTitle("机器人猜拳游戏");
this.setSize(300, 300);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

//事件类
class buttonAction extends AbstractAction{

@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==b1){
ta1.setText("剪刀");
init(ta1.getText());

}else if(e.getSource()==b2){
ta1.setText("石头");
init(ta1.getText());
}else if(e.getSource()==b3){
ta1.setText("布");
init(ta1.getText());
}
}

// 模拟电脑出拳,产生三个随机数。0代表剪刀,1代表石头,2代表布
public String getQuan(){
String str="";
int num=new Random().nextInt(3) ;
if(num==0){
str="剪刀";
}else if(num==1){
str="石头";
}else if(num==2){
str="布";
}
return str;
}
// 判断输赢方法
public String isying(String s1,String s2){
String s="";
if(s1.equals(s2)){
s="平局";
}else if(s1.equals("剪刀")&&s2.equals("布")){
s="你赢";
}else if(s1.equals("石头")&&s2.equals("剪刀")){
s="你赢";
}else if(s1.equals("布")&&s2.equals("石头")){
s="你赢";
}else{
s="电脑赢";
}
return s;

}
public void init(String wo){
String sy=""; // 保存输赢结果
String dncq=getQuan(); //电脑出拳
if(wo.equals(dncq)){
sy="平局";
}else if(wo.equals("剪刀")&&dncq.equals("布")){
sy="你赢";
}else if(wo.equals("石头")&&dncq.equals("剪刀")){
sy="你赢";
}else if(wo.equals("布")&&dncq.equals("石头")){
sy="你赢";
}else{
sy="电脑赢";
}

ta2.setText(dncq);// 电脑出拳
lb4.setText("结果:"+sy);
}

}
public static void main(String[] args) {
new Demo2();
}

}

⑷ java 猜拳游戏 让人一直获胜

//猜拳,1石头,2剪刀,3,布
//随机数的输入Random类
importjava.util.*;
publicclasssecondDay4
{
publicstaticvoidmain(Stringargs[])
{
Gamegame=newGame();
game.money();
game.rule();
game.times();
}
}
classGame{
Scanners=newScanner(System.in);
privateintme;
privateintit;
privateintmoney;
privatestaticintaggregate;
privatestaticintdifference;
privatestaticinttemp;
privateinttimesWin;
privateinttimesLose;
privateinttimesDraw;

//构造函数,初始化情景
publicGame(){
System.out.println("***欢迎来到“石头剪子布”猜拳俱乐部***");
System.out.println("************游戏规则************");
System.out.println("1、石头 2、剪刀 3、布");
}

//定义游戏币类,初始化游戏币的值
publicvoidmoney(){
System.out.println("请选择以何种身份进入俱乐部");
System.out.println("***1普通会员***");
System.out.println("***2银卡会员***");
System.out.println("***3金卡会员***");
for(inti=1;i>0;i++){
this.money=s.nextInt();
if(money==1){
System.out.println("您的游戏币为100,开始游戏!");
aggregate=100;
break;
}elseif(money==2){
System.out.println("您的游戏币为1000,开始游戏!");
aggregate=1000;
break;
}elseif(money==3){
System.out.println("您的游戏币为5000,开始游戏!");
aggregate=5000;
break;
}else{
System.out.println("你手抖了o(╯□╰)o```重新选```");
}
}
}

//定义余额方法,计算余额
publicstaticintdifference(){
difference=aggregate+temp;
returndifference;
}

//定义times方法,计算游戏次数
publicvoidtimes(){
System.out.println("您的比赛成绩:");
System.out.println("胜利:"+this.timesWin+"次");
System.out.println("平局:"+this.timesDraw+"次");
System.out.println("失败:"+this.timesLose+"次");
}

//定义rule方法,写入游戏规则,并完成temp的累加等
publicvoidrule(){
for(inti=1;i>0;i++){
this.me=newRandom().nextInt(3)+1;
System.out.println("请出拳:");
this.it=s.nextInt();
if(this.me==this.it)
{
System.out.println("平局!");
timesDraw+=1;
}elseif(this.me==1&&this.it==2)
{
System.out.println("恭喜你,你赢了!");
temp+=50;
timesWin+=1;
}elseif(this.me==1&&this.it==3){
System.out.println("很遗憾,你输了!");
temp+=-50;
timesLose+=1;
}elseif(this.me==2&&this.it==1){
System.out.println("很遗憾,你输了!");
temp+=-50;
timesLose+=1;
}elseif(this.me==2&&this.it==3){
System.out.println("恭喜你,你赢了!");
temp+=50;
timesWin+=1;
}elseif(this.me==3&&this.it==1){
System.out.println("恭喜你,你赢了!");
temp+=50;
timesWin+=1;
}elseif(this.me==3&&this.it==2){
System.out.println("很遗憾,你输了!");
temp+=-50;
timesLose+=1;
}else{
System.out.println("喂!你有没脑子啊?这也会输错?");
}
System.out.println("您的余额是:"+difference());
if(difference()==0){
System.out.println("你没钱啦!O(∩_∩)O哈哈~欢迎下次再来!");
break;
}
System.out.println("还要继续吗?选择1继续游戏,选择2退出游戏");
intchange=s.nextInt();
if(change==1){
System.out.println("第"+i+"轮游戏开始!");
}elseif(change==2){
break;
}else{
System.out.println("操作错误,强行退出");
break;
}
}
}
}

上面是正确的猜拳游戏,如果想要每次人都赢,只要修改public void rule()方法,吧平局和输了里面的内容都改为:

System.out.println("恭喜你,你赢了!");
temp+=50;
timesWin+=1;

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

我之前写了个猜拳游戏的源代码,不过没你想的这么精彩。你才给5分就给你你自己修改了,应该很简单的。要多给点分我可以帮你修改。
import java.util.Scanner;
import java.util.Random;
public class caiquan
{
final int jian=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猜拳游戏程序

packagetest;
importjava.util.Random;
importjava.util.Scanner;
/**
*猜拳游戏思路
*1、定义输入函数
*2、提示用户输入猜拳数值
*3、定义随机一个数作为电脑数值
*4、判断[用户输入数值]与[电脑随机数值]
*5、能够相等就是打平,不能相等就利用&&、||逻辑符判断输赢
*6、设定数值1-石头2-剪刀3-布
*/
publicclassCaiQuanYouXi{
publicstaticvoidmain(String[]args){
Scannerin=newScanner(System.in);//定义输入函数in,Scanner包功能,输入数值用的
System.out.println("--------------猜拳游戏---------------");
System.out.println("请输入一个数值:1、石头2、剪刀3、布");//提示输入数值
System.out.println("");//空行
intx=in.nextInt();//让用户输入X的数值
Randomon=newRandom();//定义电脑的随机数值的函数on
inty=on.nextInt(3)+1;//定义y随机函数数值范围(1--3)
if(x>=4||x==0){//判断用户是否输入非1--3范围
System.out.println("亲,请正确输入:1、石头2、剪刀3、布。你输入了:"+x);
}else{
/*下面是判断用户输入x的数值嵌套if*/
if(x==y){
if(x==1){//判断打平的情况
System.out.println("你:石头------电脑:石头PK:很幸运打平手");
}elseif(x==2){
System.out.println("你:剪刀------电脑:剪刀PK:很幸运打平手");
}else{
System.out.println("你:布------电脑:布PK:很幸运打平手");
}
}elseif(x==1&&y==2||x==2&&y==3||x==3&&y==1){//开始判断赢的情况
if(x==1&&y==2){
System.out.println("你:石头------电脑:剪刀PK:恭喜您,赢了!");
}elseif(x==2&&y==3){
System.out.println("你:剪刀------电脑:布PK:恭喜您,赢了!");
}else{
System.out.println("你:布------电脑:石头PK:恭喜您,赢了!");
}
}else{//开始判断输的情况
if(x==1&&y==3){
System.out.println("你:石头------电脑:布PK:很遗憾,输了!");
}elseif(x==2&&y==1){
System.out.println("你:剪刀------电脑:石头PK:很遗憾,输了!");
}else{
System.out.println("你:布------电脑:剪刀PK:很遗憾,输了!");
}
}
}
}
}

运行后的效果展示:

--------------猜拳游戏---------------
请输入一个数值:1、石头 2、剪刀 3、布
1
你:石头------电脑:布 PK:很遗憾,输了!


--------------猜拳游戏---------------
请输入一个数值:1、石头 2、剪刀 3、布
4
亲,请正确输入:1、石头 2、剪刀 3、布。你输入了:4

⑺ java猜拳游戏 (3局2胜)

packageDemo;
importjava.util.Random;
importjava.util.Scanner;
publicclassDemo12{
publicstaticvoidmain(String[]args){
String[]str={"石头","剪刀","布"};
Randomram=newRandom();
inty,n,i;
while(true){
System.out.println("菜单: 1、开始猜拳 9、退出");
Scannerscan=newScanner(System.in);
System.out.print("请选择:");
Strings=scan.nextLine();
if("1".equals(s.trim())){
y=0;
n=0;
i=0;
while(true){
try{
System.out.println("请出拳:1、石头2、剪刀3、布");
ints1=Integer.parseInt(scan.nextLine());
if(s1>0&&s1<4){
System.out.println("你出:"+str[s1-1]);
ints2=ram.nextInt(3);
System.out.println("我出:"+str[s2]);
if(s1==(s2+1)){
System.out.println("这次是平局");
}elseif((s1==1&&s2==1)
||(s1==2&&s2==2)
||(s1==3&&s2==0)){
System.out.println("这次你赢了!");
y++;
}elseif((s1==1&&s2==2)
||(s1==2&&s2==0)
||(s1==3&&s2==1)){
System.out.println("这次你输了!");
n++;
}
if(i==2){
if(y>n){
System.out.println("你赢了"+y+":"+n);
}elseif(y<n){
System.out.println("你输了"+y+":"+n);
}else{
System.out.println("平局"+y+":"+n);
}
break;
}
i++;
}else{
System.out.println("输入有误!");
}
}catch(Exceptionex){
System.out.println("输入有误!");
}
}
}elseif("9".equals(s.trim())){
System.out.println("退出成功");
return;
}else{
System.out.println("指令错误~");
}
}
}
}




菜单:

1、开始猜拳

9、退出

请选择:2

指令错误~

菜单:

1、开始猜拳

9、退出

请选择:1

请出拳:1、石头 2、剪刀 3、布

2

你 出:剪刀

我 出:布

这次你赢了!

请出拳:1、石头 2、剪刀 3、布

4

输入有误!

请出拳:1、石头 2、剪刀 3、布

3

你 出:布

我 出:布

这次是平局

请出拳:1、石头 2、剪刀 3、布

1

你 出:石头

我 出:石头

这次是平局

你赢了 1:0

菜单:

1、开始猜拳

9、退出

请选择:9

退出成功

⑻ Java猜拳程序错误:找不到符号&无法取消引用char

解决这几个问题就好了.

  1. answer定义成String,String answer;

  2. if(person>3||person<1){

    System.out.println("你出的是什么?剪刀手?不玩了!;

    分号前少")

  3. else{

    System.out.println("你出的是"+Marks1+"电脑出的是"+Marks2+"你赢了;

    }

    问题同2

  4. answer=input.next(); 没有input,把input改成in


import java.util.Scanner;

public class caiquan{

public static void main(String[] args){

String answer;

Scanner in=new Scanner(System.in);

System.out.println("-----猜拳游戏·-----");

do{

System.out.println("请出拳(1、剪刀 2、石头 3、布)");

int person=in.nextInt();

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

String Marks1="拳头";

String Marks2="拳头";

switch(person){

case 1:

Marks1="剪刀";

break;

case 2:

Marks1="石头";

break;

case 3 :

Marks1="布";

break;

}

switch(computer){

case 1:

Marks2="剪刀";

break;

case 2:

Marks2="石头";

break;

case 3:

Marks2="布";

break;

}

if(person>3||person<1){

System.out.println("你出的是什么?剪刀手?不玩了!");

}else if(person==computer){

System.out.println("你出的是"+Marks1+"电脑出的是"+Marks2+"你和电脑是平局");

}else if((person==1&&computer==2)||(person==2&&computer==3)||(person==3&&computer==1)){

System.out.println("你出的是"+Marks1+"电脑出的是"+Marks2+"你输了");

}else{

System.out.println("你出的是"+Marks1+"电脑出的是"+Marks2+"你赢了");

}

System.out.println("还要再玩吗?(y/n)");

answer=in.next();

}while(answer.equals("y"));

System.out.println("谢谢使用");

}

}

⑼ java猜拳程序

package cn.xnec;
import javax.swing.JOptionPane;import java.util.Random;
class RandNumber {
public static void main(String args[]) {
String str = JOptionPane
.showInputDialog("人机大战开始,输入0表示拳头,\n1表示剪刀,2表示布,3退出");
Random sc = new Random();
int n = sc.nextInt(3);
int i = 0, j = 0, k = 0;
while (str.matches("0|1|2|3")) {
if (Integer.parseInt(str) == 3) {
JOptionPane.showMessageDialog(null, "游戏结束,你玩了" + (i + j + k)
+ "次", "结果", JOptionPane.PLAIN_MESSAGE);
break;
} else if (Integer.parseInt(str) == n) {
i++;
JOptionPane.showMessageDialog(null, "平局" + i + "次", "结果",
JOptionPane.PLAIN_MESSAGE);
} else if ((Integer.parseInt(str) - i) == -1
|| (Integer.parseInt(str) - i) == 2) {
j++;
JOptionPane.showMessageDialog(null, "你赢了" + j + "次", "结果",
JOptionPane.PLAIN_MESSAGE);
} else {
k++;
JOptionPane.showMessageDialog(null, "你输了" + k + "次", "结果",
JOptionPane.PLAIN_MESSAGE);
}
str = JOptionPane.showInputDialog("请输入数字[0,3]");
n = sc.nextInt(3);
}
JOptionPane.showMessageDialog(null, "你输入的数字不对,自动退出游戏", "结果",
JOptionPane.PLAIN_MESSAGE);
}
}

⑽ java代码猜拳游戏相关代码请教

comp是电脑产生的随机数字(电脑出的拳),people 是人出的拳。 因为剪刀石头布只有 1 2 3

。如果电脑的数字比的你刚好大1,就是它比你的大。 如2>1,3>2对应就是(石头大于剪刀,布大于石头)。 但也有可能是剪刀大于布 。 那么剪刀的位子是1 ,布的位子是3. 所以当电脑数字减你的数字等于2时 就是(电脑出的布 ,你出的石头这样的情况了)。
所以是if((comp-people)==-1||(comp-people)==2) 这两者结合就是你赢的时候

热点内容
2019速腾买什么配置好 发布:2025-01-11 01:35:07 浏览:828
博越存储异常 发布:2025-01-11 01:24:31 浏览:917
我的世界还原中国服务器版图 发布:2025-01-11 01:18:45 浏览:383
pythonopenasfile 发布:2025-01-11 01:17:06 浏览:972
hbasejavaapi 发布:2025-01-11 01:11:09 浏览:746
我的世界pe版饥饿服务器 发布:2025-01-11 01:09:39 浏览:485
异构数据库数据同步 发布:2025-01-11 01:09:04 浏览:957
c语言三角波 发布:2025-01-11 01:02:11 浏览:78
php正则转义 发布:2025-01-11 01:00:03 浏览:691
手拉的箱包上的密码锁一般是多少 发布:2025-01-11 00:59:55 浏览:8