您好,登錄后才能下訂單哦!
怎么在java中利用面向?qū)ο缶帉懸粋€(gè)人機(jī)猜拳小游戲?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
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é)果:不氣餒,下次再來");//計(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(); } }
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。