java面向?qū)ο笾藱C(jī)猜拳小游戲
人機(jī)猜拳小游戲,只要用到的java面向?qū)ο蟮乃季S模式。本游戲中有游戲玩家和計(jì)算機(jī)兩個(gè)參與者。玩家和計(jì)算機(jī)都有的屬性是姓名和得分。共分為4個(gè)類。下圖是游俠小程序控制臺(tái)截圖:
以下是源代碼:
Computer.java類
package com.whf.guess.game; /** * @author :辰 * @version * 創(chuàng)建時(shí)間:2017年2月24日 上午8:38:29 * */ public class Computer { String name = "電腦";//名字 int score = 0;//積分 public int showFist() { //產(chǎn)生隨機(jī)數(shù) int show = (int) ((Math.random()*10)%3+1); // 產(chǎn)生隨機(jī)數(shù),表示電腦出拳 //輸出出拳結(jié)果并返回 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; } }
Person.java 類
package com.whf.guess.game; import java.util.Scanner; /** * @author :辰 * @version * 創(chuàng)建時(shí)間:2017年2月24日 上午8:45:41 * */ public class Person { String name = "匿名"; //名字 int score = 0; //積分 public int showFist(){ //接收用戶的選擇 Scanner input = new Scanner(System.in); System.out.println("\n請(qǐng)出拳:1.剪刀 2.石頭 3.布"); int show = input.nextInt(); //輸出出拳結(jié)果,并且返回 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; } }
Game.java類。包含游戲的比賽核心代碼
package com.whf.guess.game; import java.util.Scanner; /** * @author :辰 * @version * 創(chuàng)建時(shí)間:2017年2月24日 上午8:37:06 * */ public class Game<computer> { Person person ; //甲方 Computer computer;// 乙方 int count;// 對(duì)戰(zhàn)次數(shù) public void inital(){ person = new Person(); computer = new Computer(); count = 0; } //開始游戲 public void startGame(){ System.err.println("-------------歡迎進(jìn)入猜拳游戲---------------"); System.out.println(); System.out.println("******************************************"); System.out.println("——————出拳規(guī)則:1.剪刀 2.石頭 3.布——————————"); System.out.println("-------------》》》猜拳開始《《《------------"); System.err.println("-------------------------------------------"); Scanner input = new Scanner(System.in); String exit="n";//退出系統(tǒng) do { inital();//初始化 //選擇對(duì)手 System.out.println("選擇你的對(duì)手1.馬云 2.馬化騰 3.馬大姐 "); int role = input.nextInt(); if (role ==1) { computer.name="馬云"; }else if (role == 2) { computer.name="馬化騰"; }else if (role == 3) { computer.name="馬大姐"; } //游戲玩家輸入姓名 System.out.println("請(qǐng)輸入你的姓名:"); person.name=input.next(); System.out.println(person.name+" VS "+computer.name+"對(duì)戰(zhàn)\n"); //開始游戲 System.out.println("要開始嗎?(y/n)"); //開始一局游戲 String start = input.next(); int perFist;//游戲用戶出拳 int comFist;//計(jì)算機(jī)出拳 while (start.equals("y")) { //出拳 perFist = person.showFist(); comFist = computer.showFist(); //判斷勝負(fù) if ((perFist==1&&comFist==1)||(perFist==2&&comFist==2)||(perFist==3&&comFist==3)) { System.err.println("結(jié)果:和局,真衰!\n");//平局 }else if ((perFist==2&&comFist==1)||(perFist==3&&comFist==2)||(perFist==1&&comFist==3)) { System.err.println("結(jié)果:你贏了,真帥!\n");//勝利 person.score++; }else { System.err.println("結(jié)果是:^_^,你輸了,下載再戰(zhàn)!\n");//計(jì)算機(jī)贏 computer.score++; } count++; System.out.println("是否進(jìn)行下一輪(y/n)"); start = input.next(); } //顯示結(jié)果 showResult(); System.out.println("\n要開始下一局嗎?(y/n):"); exit = input.next(); System.out.println(); } while (!exit.equals("n")); System.out.println("系統(tǒng)退出"); } private void showResult() { // TODO Auto-generated method stub //顯示對(duì)戰(zhàn)次數(shù) System.out.println("------------------------------"); System.out.println(computer.name+" VS "+person.name); System.out.println("對(duì)戰(zhàn)次數(shù):"+count); //顯示最終得分 System.out.println("\n姓名\t得分"); System.out.println(person.name+"\t"+person.score); System.out.println(computer.name+"\t"+computer.score+"\n"); //顯示對(duì)戰(zhàn)結(jié)果 int result = calcResult(); if (result==1) { System.err.println("結(jié)果:打成平手,下次再和你一分高下"); }else if (result==2) { System.err.println("結(jié)果:恭喜恭喜你贏得比賽"); }else { System.err.println("結(jié)果:不氣餒,下次再來(lái)");//計(jì)算機(jī)贏 } System.out.println("--------------------------"); } //計(jì)算比賽結(jié)果 private int calcResult() { // TODO Auto-generated method stub if (person.score == computer.score) { return 1;//戰(zhàn)平 }else if (person.score > computer.score) { return 2;//游戲玩家贏 }else { return 3;//惜敗 } } }
StartGuess.java類
package com.whf.guess.game; /** * @author :辰 * @version * 創(chuàng)建時(shí)間:2017年2月24日 上午9:35:36 * */ public class StartGuess { public static void main(String[] args) { Game game = new Game(); game.inital(); game.startGame(); } }
以上就是完整的人機(jī)猜拳java面向?qū)ο蟮男∮螒蛟创a.
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springboot2.0使用Hikari連接池的方法(替換druid)
這篇文章主要介紹了springboot 2.0使用Hikari連接池的方法(替換druid),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12基于Jpa中ManyToMany和OneToMany的雙向控制
這篇文章主要介紹了Jpa中ManyToMany和OneToMany的雙向控制,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12Springmvc如何返回xml及json格式數(shù)據(jù)
這篇文章主要介紹了Springmvc如何返回xml及json格式數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Java實(shí)現(xiàn)在線預(yù)覽的示例代碼(openOffice實(shí)現(xiàn))
本篇文章主要介紹了Java實(shí)現(xiàn)在線預(yù)覽的示例代碼(openOffice實(shí)現(xiàn)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11IDE Eval Reset忘了重置進(jìn)不去的完美解決方法
這篇文章主要介紹了IDE Eval Reset忘了重置進(jìn)不去的完美解決方法,插件安裝方式包括離線安裝和在線安裝方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-12-12