求java人机猜拳游戏的程序

求java人机猜拳游戏的程序,第1张

我之前写了个猜拳游戏的源代码,局粗辩不过没你想的这么精桐缺彩。你才给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()

}

}

}

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

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()

}

}

大哥,刚刚看到你的就开始写了。各种功能都有,包括判断你输入的字符是否正确,假如不符合的字符就提示。不玩了就可以直接按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(a>0){//假如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==1&&y==2||x==2&&y==3||x==3&&y==1){ //开始判断赢的情况

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

win++//win1

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

all++

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

lose++

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

all++

}else if(x==2&&y==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

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12259797.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存