「猜拳java代码」猜拳游戏代码

博主:adminadmin 2022-12-01 21:22:08 63

今天给各位分享猜拳java代码的知识,其中也会对猜拳游戏代码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

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编程人机猜拳类和对象做求代码

先建立个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()*10)%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 Gamecomputer {

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***************");

System.out.println("\t\t**猜拳,开始 **");

System.out.println("\t\t***************");

System.out.println("\n\n出拳规则:1.剪刀,2.石头,3.布");

Scanner input=new Scanner(System.in);

String exit="n"; //退出系统

do{

initial();//初始化

/*选择对方角色*/

System.out.print("请选择对方角色:(1:刘备,2:孙权,3:曹操):");

int role=input.nextInt();

if(role==1){

computer.name="刘备";

}else if(role==2){

computer.name="孙权";

}else if(role==3){

computer.name="曹操";

}

//扩展功能1:输入用户姓名

/*输入用户姓名*/

System.out.print("请输入你的姓名:");

person.name=input.next();

System.out.println(person.name+"VS"+computer.name+"对战\n");

//扩展功能1结束

System.out.print("要开始吗?(y/n)");

String start=input.next();//开始每一局游戏

int perFist; //用户出的拳

int compFist; //计算机出的拳

while(start.equals("y")){

/*出拳*/

   perFist=person.showFist();

   compFist=computer.showFist();

   /*裁决*/

   if((perFist==1compFist==1)||(perFist==2compFist==2)||(perFist==3compFist==3)){

       System.out.println("结果:和局,真衰!嘿嘿,等着瞧吧!\n");  //平局

              }else if((perFist==1compFist==3)||(perFist==2compFist==1)||(perFist==3compFist==2)){

           System.out.println("结果:恭喜,你赢了!");  //用户赢

                    person.score++;

              }else{

                System.out.println("结果说:^_^,你输了,真笨!\n");  //计算机赢

                computer.score++;

              }

              count++;

              System.out.println("\n是否开始下一轮(y/n):");

              start=input.next();

              }

/*显示结果*/

showResult();

//扩展功能3:循环游戏,知道退出系统

System.out.print("\n要开始下一局吗?(y/n):");

exit=input.next();

       System.out.println();

       //扩展功能3结束

}while(!exit.equals("n"));

System.out.println("系统退出!");

}

/**

* 显示比赛结果

*/

public void showResult(){

/*显示对战次数*/

System.out.println("-------------------------------");

          System.out.println(computer.name+"VS"+person.name);

          System.out.println("对战次数:"+count);

       

          //扩展功能2:显示最终的得分

          System.out.println("\n姓名\t得分");

          System.out.println(person.name+"\t"+person.score);

System.out.println(computer.name+"\t"+computer.score+"\n");

   //扩展功能2结束

          /*显示对战结果*/

          int result=calcResult();

          if(result==1){

          System.out.println("结果:打成平手,下次再和你一分高下!");

          }else if(result==2){

          System.out.println("结果:恭喜恭喜!");  //用户获胜

          }else{

          System.out.println("结果:呵呵,笨笨,下次加油啊!");  //计算机获胜

          }

System.out.println("--------------------------------");

}

/**

* 计算比赛结果

* @return1:战平; 2:用户赢; 3:电脑赢

*/

public int calcResult(){

if(person.score==computer.score){

return 1;//战平

}else if(person.scorecomputer.score){

return 2;//用户赢

}else{

return 3;//电脑赢

}

}

}

5.Start 类

package com.game.guess;

public class StartGuess {

public static void main (String[] args){

Game c = new Game();

c.initial();

c.startGame();

}

}

然后编译执行就OK了

希望能帮到你

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

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

。如果电脑的数字比的你刚好大1,就是它比你的大。 如21,32对应就是(石头大于剪刀,布大于石头)。 但也有可能是剪刀大于布 。 那么剪刀的位子是1 ,布的位子是3. 所以当电脑数字减你的数字等于2时 就是(电脑出的布 ,你出的石头这样的情况了)。

所以是if((comp-people)==-1||(comp-people)==2) 这两者结合就是你赢的时候

求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猜拳游戏程序

package test;

import java.util.Random;

import java.util.Scanner;

/**

 * 猜拳游戏思路 

 * 1、定义输入函数 

 * 2、提示用户输入猜拳数值 

 * 3、定义随机一个数作为电脑数值 

 * 4、判断[用户输入数值]与 [电脑随机数值] 

 * 5、能够相等就是打平,不能相等就利用、||逻辑符判断输赢 

 * 6、设定数值1-石头 2-剪刀  3-布

 */

public class CaiQuanYouXi {

 public static void main(String[] args) {

  Scanner in=new Scanner(System.in);//定义输入函数in,Scanner包功能,输入数值用的

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

  System.out.println("请输入一个数值:1、石头 2、剪刀 3、布");//提示输入数值 

  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||x==0){   //判断用户是否输入非1--3范围 

   System.out.println("亲,请正确输入:1、石头 2、剪刀 3、布。你输入了:"+x);  

  }else{   

   /*下面是判断用户输入x的数值 嵌套if*/ 

   if(x==y){   

    if(x==1){ //判断打平的情况 

     System.out.println("你:石头------电脑:石头    PK:很幸运打平手"); 

    }else if(x==2){ 

     System.out.println("你:剪刀------电脑:剪刀   PK:很幸运打平手"); 

    }else { 

     System.out.println("你:布------电脑:布    PK:很幸运打平手"); 

    } 

   }else if(x==1y==2||x==2y==3||x==3y==1){ //开始判断赢的情况 

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

     System.out.println("你:石头------电脑:剪刀    PK:恭喜您,赢了!"); 

    }else if(x==2y==3){ 

     System.out.println("你:剪刀------电脑:布   PK:恭喜您,赢了!"); 

    }else {

     System.out.println("你:布------电脑:石头    PK:恭喜您,赢了!");

    } 

   }else {//开始判断输的情况 

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

     System.out.println("你:石头------电脑:布    PK:很遗憾,输了!"); 

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

     System.out.println("你:剪刀------电脑:石头    PK:很遗憾,输了!"); 

    }else { 

     System.out.println("你:布------电脑:剪刀    PK:很遗憾,输了!"); 

    } 

   }

  }

 }

}

运行后的效果展示:

--------------猜拳游戏---------------

请输入一个数值:1、石头 2、剪刀 3、布

1

你:石头------电脑:布    PK:很遗憾,输了!

--------------猜拳游戏---------------

请输入一个数值:1、石头 2、剪刀 3、布

4

亲,请正确输入:1、石头 2、剪刀 3、布。你输入了:4

猜拳java代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于猜拳游戏代码、猜拳java代码的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-01,除非注明,否则均为首码项目网原创文章,转载请注明出处。