JavaSE實(shí)現(xiàn)猜拳游戲
本文實(shí)例為大家分享了JavaSE實(shí)現(xiàn)猜拳游戲的具體代碼,供大家參考,具體內(nèi)容如下
import java.util.Random;
import java.util.Scanner;
public class CaiQuan {
private String userName;//存儲(chǔ)用戶名
private String cName;//存儲(chǔ)對(duì)手
private int cNameNum;//存儲(chǔ)玩家選擇的對(duì)手代號(hào)
private String userInfo;//用戶出拳信息
private String cInfo;//電腦出拳信息
private int uNum;//接收用戶輸入的數(shù)
private int cNum;//接受電腦產(chǎn)生的數(shù)
private Scanner sc;
private static final String Army01 = "張飛";
private static final String Army02 = "關(guān)羽";
private static final String Army03 ="劉備";
private static boolean flag ;//平局和電腦勝為true,玩家贏為fasle
private int selectInfo;//玩家是否繼續(xù)游戲,1表示繼續(xù),0表示結(jié)束
private int score = 0;//分?jǐn)?shù)
public static void main(String[] args) {
CaiQuan cq = new CaiQuan();
cq.gameInfo();
do{
cq.selectArmy();
cq.userInput();
cq.cOutput();
cq.compareCaiQuan();
cq.gameOver();
}while(flag);
}
public CaiQuan(){
}
//打印游戲信息
public void gameInfo(){
System.out.println("歡迎進(jìn)行猜拳小游戲!");
System.out.println("1.表示石頭 2.表示剪刀 3.表示布");
sc = new Scanner(System.in);
if(userName==null){
System.out.println("玩家請(qǐng)輸入用戶名:");
System.out.println("=============================================");
userName = sc.next();
}
}
//選擇對(duì)手
public void selectArmy(){
System.out.println("=============================================");
System.out.println("對(duì)手選擇列表:");
System.out.println("1:"+Army01+" 2:"+Army02+" 3:"+Army03);
System.out.println(userName+"請(qǐng)輸入對(duì)手:");
System.out.println("=============================================");
test01();
System.out.println(userName+",您選擇的對(duì)手為"+cName);
System.out.println("=============================================");
}
//判斷對(duì)手
public void test01(){
cNameNum = sc.nextInt();
if(cNameNum==1){
cName = Army01;
}else if(cNameNum==2){
cName = Army02;
}else if(cNameNum==3){
cName = Army03;
}else{
System.out.println("對(duì)手選擇錯(cuò)誤,請(qǐng)重新選擇!");
test01();
}
}
//開始游戲
public void userInput(){
System.out.println(userName+"請(qǐng)出拳:");
System.out.println("1.表示石頭 2.表示剪刀 3.表示布");
System.out.println("=============================================");
test();
System.out.println("=============================================");
System.out.println(userName+"的出拳為:"+userInfo);
}
//判斷輸入的數(shù)是否錯(cuò)誤
public void test(){
uNum = sc.nextInt();
if(uNum==1){
userInfo = "石頭";
}else if(uNum==2){
userInfo = "剪刀";
}else if(uNum==3){
userInfo = "布";
}else{
System.out.println("輸入錯(cuò)誤,請(qǐng)請(qǐng)重新輸入");
test();
}
}
//電腦出拳
public void cOutput(){
Random random = new Random();
cNum = random.nextInt(3)+1;
if(cNum==1){
cInfo = "石頭";
}else if(cNum==2){
cInfo = "剪刀";
}else if(cNum==3){
cInfo = "布";
}
System.out.println(cName+"出拳為:"+cInfo);
}
//比較大小
public void compareCaiQuan(){
String msg = null;
if(uNum == 1){
if(cNum == 1){
msg="此時(shí)平局";
flag = true;
}else if(cNum == 2){
score += 1;
msg="此時(shí)"+userName+"勝出";
flag = false;
}else {
score -= 1;
msg="此時(shí)"+cName+"勝出";
flag = true;
}
return;
}else if(uNum == 2){
if(cNum == 1){
score -= 1;
msg="此時(shí)"+cName+"勝出";
flag = true;
}else if(cNum == 2){
msg="此時(shí)平局";
flag = true;
}else {
score += 1;
msg="此時(shí)"+userName+"勝出";
flag = false;
}
}else {
if(cNum == 1){
score += 1;
msg="此時(shí)"+userName+"勝出";
flag = false;
}else if(cNum == 2){
score -= 1;
msg="此時(shí)"+cName+"勝出";
flag = true;
}else {
msg=" 此時(shí)平局";
flag = true;
}
}
System.out.println(msg);
}
//游戲結(jié)束信息
public void gameOver(){
System.out.println("=============================================");
if(flag==true){
System.out.println(userName+",您沒有戰(zhàn)勝電腦,不要灰心,請(qǐng)繼續(xù)游戲!");
System.out.println("=============================================");
System.out.println("繼續(xù)游戲請(qǐng)輸入:1 結(jié)束游戲請(qǐng)輸入:2");
test02();
}else if(flag==false){
System.out.println(userName+",您太厲害了,竟然戰(zhàn)勝了"+cName+",游戲結(jié)束!");
System.out.println("=============================================");
System.out.println("繼續(xù)游戲請(qǐng)輸入:1 結(jié)束游戲請(qǐng)輸入:2");
test02();
}
}
//判斷玩家是否繼續(xù)游戲
public void test02(){
selectInfo = sc.nextInt();
if(selectInfo==1){
flag = true;
}else if(selectInfo==2){
System.out.println(userName+",您的游戲分?jǐn)?shù)為:"+score);
System.exit(0);
}else{
System.out.println(userName+",您輸入錯(cuò)誤,請(qǐng)重新輸入!");
test02();
}
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java去除重復(fù)對(duì)象的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇java去除重復(fù)對(duì)象的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
springboot整合token的實(shí)現(xiàn)代碼
這篇文章主要介紹了springboot整合token的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
東方通TongWeb結(jié)合Spring-Boot使用的實(shí)現(xiàn)
本文主要介紹了東方通TongWeb結(jié)合Spring-Boot使用的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07
如何使用BeanUtils.copyProperties進(jìn)行對(duì)象之間的屬性賦值
這篇文章主要介紹了使用BeanUtils.copyProperties進(jìn)行對(duì)象之間的屬性賦值,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
java abstract class interface之間的區(qū)別介紹
含有abstract修飾符的class即為抽象類,abstract 類不能創(chuàng)建的實(shí)例對(duì)象,abstract class類中定義抽象方法必須在具體(Concrete)子類中實(shí)現(xiàn),所以,不能有抽象構(gòu)造方法或抽象靜態(tài)方法2012-11-11
SpringBoot項(xiàng)目中訪問(wèn)HTML頁(yè)面的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot項(xiàng)目中訪問(wèn)HTML頁(yè)面的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08
centos7如何通過(guò)systemctl啟動(dòng)springboot服務(wù)代替java -jar方式啟動(dòng)
這篇文章主要介紹了centos7如何通過(guò)systemctl啟動(dòng)springboot服務(wù)代替java -jar方式啟動(dòng),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01

