亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java實現(xiàn)人機猜拳小游戲

 更新時間:2019年11月30日 11:41:05   作者:龍淵客  
這篇文章主要為大家詳細介紹了Java實現(xiàn)人機猜拳小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例完成人機猜拳互動游戲的開發(fā),供大家參考,具體內(nèi)容如下

階段一:實驗——分析業(yè)務(wù),創(chuàng)建用戶類

1.分析業(yè)務(wù),抽象出類、類的特征和行為
2.創(chuàng)建出用戶類

階段二:實驗——創(chuàng)建出計算機類

1.創(chuàng)建計算機類Computer。實現(xiàn)計算機出拳
2.產(chǎn)生一個1—3的隨機數(shù),模擬計算機的出拳結(jié)果

階段三:實驗——創(chuàng)建游戲類,選擇對戰(zhàn)對手

1.創(chuàng)建游戲類Game
2.編寫游戲類的初始化方法initial()
3.編寫游戲類的開始游戲方法startGame()

階段四:實驗——實現(xiàn)一局對戰(zhàn)

分別調(diào)用用戶類和計算機類的出拳方法showFist(),接受返回值并比較,給出勝負結(jié)果

階段五:實驗——實現(xiàn)循環(huán)對戰(zhàn),并累計得分

實現(xiàn)循環(huán)對戰(zhàn),并且累加贏家的得分

階段六:實驗——顯示對戰(zhàn)結(jié)果

游戲結(jié)束后,顯示對戰(zhàn)結(jié)果
編寫showResult()方法,比較二者的得分情況,給出對戰(zhàn)結(jié)果

階段七:實驗——完善游戲類的startGame()

輸入并保存用戶姓名,游戲結(jié)束后顯示雙方的各自得分

Game.java

import java.util.Scanner;

public class Game {
Scanner sc = new Scanner(System.in);
User User;//用戶玩家
Computer Computer;//電腦玩家
int count;//對戰(zhàn)次數(shù)
int score;//分數(shù)

//游戲類的初始化方法
public void initial(){
 //創(chuàng)建用戶對象
 User= new User();
 //創(chuàng)建電腦對象
 Computer = new Computer();
 //初始化對戰(zhàn)次數(shù)為0
 count = 0;
}
//開始游戲的方法
public void startGame(){
 System.out.println("--------------------歡迎進入游戲世界-----------------------\n\n");
 System.out.println("\t\t*******************");
 System.out.println("\t\t**  猜拳,開始   **");
 System.out.println("\t\t*******************\n\n");
 System.out.println("出拳規(guī)則:1.石頭 2.剪刀 3.布");
 System.out.print("請選著對方角色(1:劉備 2:孫權(quán) 3:曹操)");
 int choose = sc.nextInt();//接收用戶選擇的角色
 switch(choose){
 case 1:
 Computer.computerName = "劉備";//把值賦給電腦類的name
 System.out.println("你選擇了"+Computer.computerName+"對戰(zhàn)");
 break;
 case 2:
 Computer.computerName = "孫權(quán)";
 System.out.println("你選擇了"+Computer.computerName+"對戰(zhàn)");
 break;
 case 3:
 Computer.computerName = "曹操";
 System.out.println("你選擇了"+Computer.computerName+"對戰(zhàn)");
 break;
 default:
  System.out.println("輸入有誤!");
  break;
 }
 System.out.println("請輸入你的姓名:");
 User.userName = sc.next();
 System.out.println("要開始嗎(y/n)");
 String con = sc.next();
 if(con.equals("n")){//如果不開始輸入"n"的話 就提示退出
 System.out.println("系統(tǒng)退出!");
 }
 int perFist;//用戶出的拳
 int comFist;//計算機出的拳
 while(con.equals("y")){
 //出拳
 perFist = User.showFirst();//調(diào)用用戶類的方法
 comFist = Computer.chuQuan();//調(diào)用電腦類的方法
 //裁決
 if((perFist == 1 && comFist == 1) || 
  (perFist == 2 && comFist == 2) || 
   (perFist == 3 && comFist == 3)){
  System.out.println("結(jié)果:和局,真衰!");//平局
 }else if((perFist == 1 && comFist == 3) || 
  (perFist == 2 && comFist == 1) || 
   (perFist == 3 && comFist == 2)){
  System.out.println("You lost!");//用戶輸了
  System.out.println("結(jié)果:你被KO");
  Computer.score++;//記錄電腦贏的分數(shù)
 }else{
  System.out.println("You win!");//用戶贏了
  System.out.println("結(jié)果:恭喜,你贏了!");
  User.score++;//記錄用戶贏的分數(shù)
 }
 count++;//對戰(zhàn)次數(shù)依次加一
 System.out.println("是否進入下一輪(y/n)");
 con = sc.next(); 
 }
 //如果結(jié)束 則顯示最后的結(jié)果
 showResult();
} 
 //顯示最后的輸出結(jié)果
 public void showResult(){
 System.out.println("------------------------------------------------");
 System.out.println(Computer.computerName+"\tVS\t"+User.userName);
 System.out.println("對戰(zhàn)次數(shù):"+count);
 System.out.println("姓名"+"\t"+"積分");
 System.out.println(User.userName+"\t"+User.score);
 System.out.println(Computer.computerName+"\t"+Computer.score);
 if(User.score>Computer.score){//如果用戶的分數(shù)大于電腦的分數(shù) 則用戶贏
 System.out.println(User.userName+"贏了!");
 }else{
 System.out.println(Computer.computerName+"贏了!");
 }
 System.out.println("-------------------------------------------------");
}
}

User.java

import java.util.Scanner;

public class User {
  String userName;//用戶名
  int score;//積分
  public int showFirst() {
  System.out.print("請出拳:1.剪刀2.石頭3.布(輸入相應(yīng)的數(shù)字):");
  Scanner sc = new Scanner(System.in);
  int choice = sc.nextInt();
  switch(choice) {
  case 1:
   System.out.println("你出拳:石頭");
   break;
  case 2:
   System.out.println("你出拳:剪刀");
   break;
  case 3:
   System.out.println("你出拳:布");
   break;
  default:
   System.out.println("輸入錯誤!");
   break;
  }
  return choice;
  }
} 

Computer.java

import java.util.Scanner;

public class Computer {
 String computerName;//電腦名
 int score;//電腦積分
 public int chuQuan() {
  int random =(int)(Math.random()*3)+1;
  switch(random) {
  case 1:
  System.out.println(computerName+"出拳:石頭");
  break;
  case 2:
  System.out.println(computerName+"出拳:剪刀");
  break;
  case 3:
  System.out.println(computerName+"出拳:布");
  break;
  default:
  System.out.println("輸入有錯,請重新輸入:");
  break;
  }
  return random;
 }
}

Main.java

public class Main {
public static void main(String[] args) {
 Game g = new Game();
 g.initial();//調(diào)用初始化方法
 g.startGame();//調(diào)用開始游戲的方法
}
}

總的來說,User和Computer類比較好寫,就是Game類要求比較多,但是按照步驟一步一步走穩(wěn),就不會有太大的問題,但是注意name和score這兩個在兩個類中都可以出現(xiàn),但是要注意區(qū)分,給讀者客觀上有一種提示。最后,Main中,可以不用再去初始化或者創(chuàng)建一個新的對象,直接調(diào)用前面那一系列方法就行,寫的越多,錯的幾率就越大。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java實現(xiàn)多人聊天工具(socket+多線程)

    java實現(xiàn)多人聊天工具(socket+多線程)

    這篇文章主要為大家詳細介紹了java實現(xiàn)多人聊天工具,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • java map中相同的key保存多個value值方式

    java map中相同的key保存多個value值方式

    這篇文章主要介紹了java map中相同的key保存多個value值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java中空指針異常的幾種解決方案

    Java中空指針異常的幾種解決方案

    這篇文章主要介紹了Java中空指針異常的幾種解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Java中基于maven實現(xiàn)zxing二維碼功能

    Java中基于maven實現(xiàn)zxing二維碼功能

    這篇文章主要介紹了Java中基于maven實現(xiàn)zxing二維碼功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • 淺談一下SpringBoot中的異步任務(wù)

    淺談一下SpringBoot中的異步任務(wù)

    這篇文章主要介紹了淺談一下SpringBoot中的異步任務(wù),SpringBoot 中的異步任務(wù)主要是指在 SpringBoot 中使用異步線程完成處理任務(wù),在 SpringBoot 中使用異步線程非常簡單,只需要兩個注解就可以搞定,需要的朋友可以參考下
    2023-10-10
  • Java線程死鎖代碼詳解

    Java線程死鎖代碼詳解

    本篇文章主要介紹了Java線程死鎖代碼詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-11-11
  • Druid關(guān)閉監(jiān)控頁面關(guān)閉不了的問題及解決

    Druid關(guān)閉監(jiān)控頁面關(guān)閉不了的問題及解決

    這篇文章主要介紹了Druid關(guān)閉監(jiān)控頁面關(guān)閉不了的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java日常練習題,每天進步一點點(9)

    Java日常練習題,每天進步一點點(9)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • 一文了解MyBatis Plus批量數(shù)據(jù)插入功能

    一文了解MyBatis Plus批量數(shù)據(jù)插入功能

    mybatisPlus底層的新增方法是一條一條的新增的,下面這篇文章主要給大家介紹了MyBatis Plus批量數(shù)據(jù)插入功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-09-09
  • SpringMVC中使用bean來接收form表單提交的參數(shù)時的注意點

    SpringMVC中使用bean來接收form表單提交的參數(shù)時的注意點

    本篇文章主要介紹了SpringMVC中使用bean來接收form表單提交的參數(shù)時的注意點,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-05-05

最新評論