java猜拳,java猜拳小遊戲

本文目錄一覽:

猜拳遊戲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==0r==0)  else if(a==0r==1)  else if(a==0r==2)   即可實現猜拳,if內直接輸出相關語句即可

②記錄勝負:  定義猜拳方法為int ,通過返回值記錄相關比賽的勝負情況  ,可以用0–失敗;1–獲勝;2–平局 進行記錄,在主函數中對相應拋出的數字記錄即可

if(a==0r==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(jk)

System.out.println(“You are the final winner”);

else if(kj)

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==0r==0){

System.out.println(“The computer comes out with cloth,it was a draw. “);

return 2;

}

else if(a==0r==1){

System.out.println(“The computer comes out with stone, you won. “);

return 1;

}

else if(a==0r==2){

System.out.println(“The computer comes out with scissor,you lost. “);

return 0;

}

else if(a==1r==0){

System.out.println(“The computer comes out with cloth,you lost. “);

return 0;

}

else if(a==1r==1){

System.out.println(“The computer comes out with stone,it was a draw. “);

return 2;

}

else if(a==1r==2){

System.out.println(“The computer comes out with scissors,you won. “);

return 1;

}

else if(a==2r==0){

System.out.println(“The computer comes out with cloth,you won. “);

return 1;

}

else if(a==2r==1){

System.out.println(“The computer comes out with stone,you lost. “);

return 0;

}

else if(a==2r==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日

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;

}

}

然後在主類中,首先要輸入對局的總數,然後創建兩名選手進行pk,在pk()方法中制定了獲勝規則,詳見代碼注釋。最終統計並利用BigDecimal計算勝率(BigDecimal可以很完美的解決整數除法及其四捨五入保留小數的問題):

public class Main {

public static void main(String[] args) {

System.out.println(“請輸入本局局數:”);

Scanner scanner = new Scanner(System.in);

int sum = scanner.nextInt();

//創建結果數組,resultArray[0]代表p1的獲勝局數,resultArray[1]代表p2的獲勝局數,resultArray[2]代表平局局數

int[] resultArray = new int[3];

//創建兩名選手

Player p1 = new Player(“張三”);

Player p2 = new Player(“李四”);

for (int i = 0; i sum; i++) {

//根據總局數進行pk

int result = pk(p1, p2);

if (result == 1) {

resultArray[0]++;

} else if (result == -1) {

resultArray[1]++;

} else {

resultArray[2]++;

}

}

System.out.println(“”);

System.out.println(“最終結果統計:”);

System.out.println(“選手[” + p1.getPlayerName() + “]獲勝局數為:” + resultArray[0] + “,勝率為:” +

new BigDecimal(resultArray[0]).multiply(new BigDecimal(100).divide(new BigDecimal(sum), 2, BigDecimal.ROUND_HALF_UP)) + “%”);

System.out.println(“選手[” + p2.getPlayerName() + “]獲勝局數為:” + resultArray[1] + “,勝率為:” +

new BigDecimal(resultArray[1]).multiply(new BigDecimal(100).divide(new BigDecimal(sum), 2, BigDecimal.ROUND_HALF_UP)) + “%”);

System.out.println(“平局局數為:” + resultArray[2] + “,平局率為:” +

new BigDecimal(resultArray[2]).multiply(new BigDecimal(100).divide(new BigDecimal(sum), 2, BigDecimal.ROUND_HALF_UP)) + “%”);

}

//0-石頭 1-剪刀 2-布

//return 0:平局 1:p1獲勝 -1:p2獲勝

private static int pk(Player p1, Player p2) {

System.out.println(“——————–“);

int a = p1.guess();

int b = p2.guess();

System.out.print(“\n對局結果:”);

//出拳相同平局

if (a == b) {

System.out.println(“平局”);

return 0;

}

//p1獲勝條件:p1出石頭時p2出剪刀,p1出剪刀時p2出步,p1出布時p2出石頭

else if ((a == 0 b == 1) || (a == 1 b == 2) || (a == 2 b == 0)) {

System.out.println(“選手[” + p1.getPlayerName() + “]獲勝”);

return 1;

}

//p2獲勝條件:p1出石頭時p2出布,p1出剪刀時p2出石頭,p1出布時p2出剪刀

else if ((a == 0 b == 2) || (a == 1 b == 0) || (a == 2 b == 1)) {

System.out.println(“選手[” + p2.getPlayerName() + “]獲勝”);

return -1;

} else {

//因為規定了隨機數產生0、1、2,所以其實不會走到本分支

throw new IllegalArgumentException(“本局無效”);

}

}

}

對局5局的運行結果:

我這裡就只能統計當前遊戲的數據了,如果你想統計多局遊戲總的勝率信息,那麼需要將每一局的比賽結果寫到txt文件里,最終根據txt文件內容統計即可。

用java如何編寫一個猜拳遊戲?

我之前寫了個猜拳遊戲的源代碼,不過沒你想的這麼精彩。你才給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();

}

}

}

求一個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

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/280566.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-21 13:04
下一篇 2024-12-21 13:04

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論