A. 求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();
}
}
}
B. 用JAVA做一個剪刀,石頭,布的人機猜拳游戲。
編寫這個小游戲 我們需要幾個類
1、第一個 Person 類
import java.util.Scanner;
/**
* @right 2018 sugarsLab.com All rights reserved.
* @author jingfei.wu
* @date 2018年11月16日
* @version 1.0
* @ClassName Person
* @description 用戶類 用來計算用戶輸入
*/
public class Person {
public static final Person me = new Person();
private int n = 0;
/**
* @right 2018 sugarsLab.com All rights reserved.
* @author jingfei.wu
* @date 2018年11月16日
* @version 1.0
* @description 用戶輸入的 指令
* @return
*/
public int input() {
System.out.println("請輸入:石頭,剪刀,布 輸入:@退出 退出系統");
@SuppressWarnings("resource")
Scanner scanner = new Scanner(System.in);
String s = scanner.next();
// s 裡面存著 用戶輸入的 指令 切記這里不要使用 s.equals() 而是寫 "指令".equals() 這么寫 是為了避免空指針
if ("石頭".equals(s)) {
n = 1;
} else if ("剪刀".equals(s)) {
n = 2;
} else if ("洞拍布".equals(s)) {
n = 3;
} else if ("納旁羨@退出".equals(s)) {
System.out.print("系統退出了");
System.exit(0);
}
return n;
}
}
2、Computer 類
/**
* @right 2018 sugarsLab.com All rights reserved.
* @author jingfei.wu
* @date 2018年11月16日
* @version 1.0
* @ClassName Computer
* @description 游戲中電腦類 用來產生隨機數
*/
public class Computer {
public static final Computer me = new Computer();
/**
* @right 2018 sugarsLab.com All rights reserved.
* @author jingfei.wu
* @date 2018年11月16日
* @version 1.0
* @description TODO
* @return {int} 返回值為int 類型
*/
public int random() {return (int) (Math.random() * 3 + 1);}
}
3、Game類
/**
* @author jingfei.wu
* @date 2018年啟衫11月16日
* @version 1.0
* @ClassName Game
* @description 游戲類 用來計算游戲結果
*/
public class Game {
/**
* @author jingfei.wu
* @date 2018年11月16日
* @version 1.0
* @description 返回 人機交互結果
* @param n
* {int} 用戶輸入 的標識 石頭 為 1 剪刀 為 2 布 為 3
* @param m
* {int} 電腦產生的隨機數 石頭 為 1 剪刀 為 2 布 為 3
*/
public void result(int n, Integer m) {
String res = "";
if (m.intValue() == 1)
res = "石頭";
else if (m.intValue() == 2)
res = "剪刀";
else
res = "布";
if (n == m) {
System.out.println("平了 computer出" + res);
} else {
if (m == 1) {
if (n == 2)
System.out.println("你輸了 computer出 " + res);
else if (n == 3)
System.out.println("你贏了 computer出 " + res);
} else if (m == 2) {
if (n == 1)
System.out.println("你贏了 computer出 " + res);
else if (n == 3)
System.out.println("你輸了 computer出 " + res);
} else if (m == 3) {
if (n == 1)
System.out.println("你輸了 computer出 " + res);
else if (n == 2)
System.out.println("你贏了 computer出 " + res);
}
}
}
public static void main(String[] args) {
while (true) {
Game gamer = new Game();
gamer.result(Person.me.input(), Computer.me.random());
}
}
}
如下是程序運行截圖
C. 猜拳游戲java能輸出遊戲時間
Java實現猜拳游戲的核心在於電腦隨機數的生成,Java中的隨機數生成方法是:
首先引入包 import java.util.*; 然後 int r=new Random().nextInt(3); (nextInt中的數字三代表隨機數生成的個數,從零開始)
所以在猜拳的輸入中需要有0、1、2三個數字代替,如果要輸入漢字,則用if進行相應判斷即可。
在實現的游戲中實現①猜拳;②記錄勝負;③玩家決定游戲局數;④輸出獲勝、失敗及平局;⑤統計總共的勝負結果(根據獲勝次數判斷)
①猜拳基礎功能:該部分代碼可以放到一個方法中,減少主函數代碼量。
電腦出拳即 int r=new Random().nextInt(3); 注意:該部分一定要寫在for循環內部,否則無法實現每次不同的隨機數。
通過if判斷雙方出拳是否相等 if(a==0&&r==0) else if(a==0&&r==1) else if(a==0&&r==2) 即可實現猜拳,if內直接輸出相關語句即可
②記錄勝負: 定義猜拳方法為int ,通過返回值記錄相關比賽的勝負情況 ,可以用0--失敗;1--獲勝;2--平局 進行記錄,在主函數中對相應拋出的數字記錄即可
if(a==0&&r==0){
System.out.println("The computer comes out with cloth,it was a draw. ");
return 2;
}
h=comp.compare(a,r); if (h==1) j++;
登錄後復制
③玩家決定局數: 定義一個數,在循環中不大於該數即可
④輸出獲勝、失敗及平局: j、k即勝利和失敗,平局數即n-j-k。
⑤統計結果,直接用if比較i、j的數字結果即可。
主函數部分:
package SS2_5;
import java.util.*;
public class Main {
public static void main(String args[]){
Scanner scanner=new Scanner(System.in);
Compare comp=new Compare();
int h=0,j=0,k=0;
System.out.println("rules:0--cloth;1--stone;2--scissors.\nU can choose how many times you want to play:");
int n=scanner.nextInt();
for(int i=1;i<=n;i++){
System.out.print("It's the "+i+" round,your turn:");
int a=scanner.nextInt();
int r=new Random().nextInt(3);
switch (a){
case 0:
h=comp.compare(a,r);
break;
case 1:
h=comp.compare(a,r);
break;
case 2:
h=comp.compare(a,r);
break;
default:
System.out.println("Wrong number!");
break;
}
if (h==1)
j++;
else if(h==0)
k++;
}
System.out.println("The total times you won are "+j+",The draw times are "+(n-j-k)+".");
if(j>k)
System.out.println("You are the final winner");
else if(k>j)
System.out.println("The computer is the winner.");
if(j==k)
System.out.println("The final result is draw");
}
}
登錄後復制
compare方法部分
package SS2_5;
public class Compare {
public int compare(int a,int r){
int counter=0;
if(a==0&&r==0){
System.out.println("The computer comes out with cloth,it was a draw. ");
return 2;
}
else if(a==0&&r==1){
System.out.println("The computer comes out with stone, you won. ");
return 1;
}
else if(a==0&&r==2){
System.out.println("The computer comes out with scissor,you lost. ");
return 0;
}
else if(a==1&&r==0){
System.out.println("The computer comes out with cloth,you lost. ");
return 0;
}
else if(a==1&&r==1){
System.out.println("The computer comes out with stone,it was a draw. ");
return 2;
}
else if(a==1&&r==2){
System.out.println("The computer comes out with scissors,you won. ");
return 1;
}
else if(a==2&&r==0){
System.out.println("The computer comes out with cloth,you won. ");
return 1;
}
else if(a==2&&r==1){
System.out.println("The computer comes out with stone,you lost. ");
return 0;
}
else if(a==2&&r==2){
System.out.println("The computer comes out with scissors,it was a draw. ");
return 2;
}
else
return 0;
}
}
登錄後復制
java
704拖拉機
精選推薦
廣告
java寫簡單的猜拳游戲
2下載·0評論
2016年7月27日
用Java編寫的猜拳小游戲
2029閱讀·0評論·0點贊
2021年3月7日
Java猜拳游戲和Random的應用
21閱讀·0評論·0點贊
2022年10月24日
java實現完整版猜拳小游戲
25下載·0評論
2018年11月22日
用python實現功能猜拳
1137閱讀·2評論·3點贊
2022年7月14日
java猜拳switch計分制_java----猜拳(10局分勝負)
117閱讀·0評論·1點贊
2021年3月15日
二手拖拉機交易市場,你還在高價買嗎?
精選推薦
廣告
利用Java編寫簡單的猜拳游戲
911閱讀·0評論·1點贊
2022年9月8日
Java簡單實現猜拳游戲
1.1W閱讀·1評論·2點贊
2022年1月23日
java猜拳游戲代碼_Java實現簡單猜拳游戲
4496閱讀·0評論·0點贊
2021年3月1日
用java來寫一個簡單的猜拳小游戲
890閱讀·1評論·1點贊
2022年7月26日
java實現猜拳游戲
3180閱讀·2評論·1點贊
2022年5月4日
JAVA編寫猜拳游戲
3037閱讀·3評論·3點贊
2021年3月16日
[Java教程]17.實戰,趣味猜拳小游戲
8040閱讀·2評論·3點贊
2020年6月24日
怎麼用java實現人機猜拳?
1959閱讀·6評論·9點贊
2021年7月22日
Java Random經典例子【猜拳游戲】
4318閱讀·0評論·0點贊
2014年3月22日
java的人機猜拳代碼_Java實現人機猜拳游戲
702閱讀·0評論·2點贊
2021年3月12日
Java基礎練習之猜拳游戲
363閱讀·1評論·1點贊
2021年8月19日
用java寫猜拳小游戲
1096閱讀·0評論·1點贊
2021年9月1日
Java猜拳小游戲
97閱讀·0評論·0點贊
2022年8月23日
java猜拳小游戲
500閱讀·1評論·0點贊
2022年7月14日
D. 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(" 請出拳: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 Game<computer> {
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("-------歡迎進入游戲世界------- ");
System.out.println(" ***************");
System.out.println(" **猜拳,開舉岩始 **");
System.out.println(" ***************");
System.out.println(" 出拳規則: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+"對戰 ");
//擴展功能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==1&&compFist==1)||(perFist==2&&compFist==2)||(perFist==3&&compFist==3)){
System.out.println("結果:和局,真衰!嘿嘿,等著瞧吧! "); //平局
}else if((perFist==1&&compFist==3)||(perFist==2&&compFist==1)||(perFist==3&&compFist==2)){
System.out.println("結果:恭喜,你贏了!"); //用戶贏
person.score++;
}else{
System.out.println("結果說:^_^,你輸了,真笨! "); //計算機贏
computer.score++;
}
count++;
System.out.println(" 是否開始下一輪(y/n):");
start=input.next();
}
/*顯示結果*/
showResult();
//擴展功能3:循環游戲,知道退出系統
System.out.print(" 要開始下一局嗎?(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(" 姓名 得分");
System.out.println(person.name+" "+person.score);
System.out.println(computer.name+" "+computer.score+" ");
//擴展功能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.score>computer.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了
希望能幫到你
E. 求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();
}
}