「猜拳java代码」猜拳游戏代码
今天给各位分享猜拳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代码的信息别忘了在本站进行查找喔。
发布于:2022-12-01,除非注明,否则均为
原创文章,转载请注明出处。