當前位置:首頁 » 編程語言 » 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