java面向?qū)ο笾藱C(jī)猜拳小游戲
人機(jī)猜拳小游戲,只要用到的java面向?qū)ο蟮乃季S模式。本游戲中有游戲玩家和計(jì)算機(jī)兩個參與者。玩家和計(jì)算機(jī)都有的屬性是姓名和得分。共分為4個類。下圖是游俠小程序控制臺截圖:

以下是源代碼:
Computer.java類
package com.whf.guess.game;
/**
* @author :辰
* @version
* 創(chuàng)建時間: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)建時間: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請出拳: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)建時間:2017年2月24日 上午8:37:06
*
*/
public class Game<computer> {
Person person ; //甲方
Computer computer;// 乙方
int count;// 對戰(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();//初始化
//選擇對手
System.out.println("選擇你的對手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("請輸入你的姓名:");
person.name=input.next();
System.out.println(person.name+" VS "+computer.name+"對戰(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
//顯示對戰(zhàn)次數(shù)
System.out.println("------------------------------");
System.out.println(computer.name+" VS "+person.name);
System.out.println("對戰(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");
//顯示對戰(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)建時間: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.
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springboot2.0使用Hikari連接池的方法(替換druid)
這篇文章主要介紹了springboot 2.0使用Hikari連接池的方法(替換druid),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
基于Jpa中ManyToMany和OneToMany的雙向控制
這篇文章主要介紹了Jpa中ManyToMany和OneToMany的雙向控制,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
Springmvc如何返回xml及json格式數(shù)據(jù)
這篇文章主要介紹了Springmvc如何返回xml及json格式數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09
Java實(shí)現(xiàn)在線預(yù)覽的示例代碼(openOffice實(shí)現(xiàn))
本篇文章主要介紹了Java實(shí)現(xiàn)在線預(yù)覽的示例代碼(openOffice實(shí)現(xiàn)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
IDE Eval Reset忘了重置進(jìn)不去的完美解決方法
這篇文章主要介紹了IDE Eval Reset忘了重置進(jìn)不去的完美解決方法,插件安裝方式包括離線安裝和在線安裝方式,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-12-12

