Yuav Ua Li Cas Pob Zeb, Ntawv, Txiab Game hauv Java (nrog Duab)

Cov txheej txheem:

Yuav Ua Li Cas Pob Zeb, Ntawv, Txiab Game hauv Java (nrog Duab)
Yuav Ua Li Cas Pob Zeb, Ntawv, Txiab Game hauv Java (nrog Duab)

Video: Yuav Ua Li Cas Pob Zeb, Ntawv, Txiab Game hauv Java (nrog Duab)

Video: Yuav Ua Li Cas Pob Zeb, Ntawv, Txiab Game hauv Java (nrog Duab)
Video: Ep25 Qhia Designer los yog txua phom hmoob Cartoon 3D Animation 2021-2022 2024, Tej zaum
Anonim

Pob Zeb, Ntawv, Txiab yog tes ua si los ntawm ob tus neeg. Ob tus tib neeg yuav hais "pob zeb, ntawv, txiab txaij" thiab tom qab ntawd ib txhij tsim ib qho ntawm peb yam khoom (pob zeb, ntawv, lossis txiab) nrog txhais tes nthuav. Tus yeej yog txiav txim siab los ntawm tes tsim. Txiab ntaus ntawv, ntawv ntaus pob zeb, thiab pob zeb ntaus txiab. Yog tias ob tus neeg ua si ua tib lub tes tsim, nws suav tias yog khi. Peb yuav sau qhov kev ua si yooj yim hauv Java los simulates Pob Zeb, Ntawv, Txiab txiab uas ib tus neeg siv yog tus siv thiab lwm tus neeg siv yog lub khoos phis tawj.

Cov kauj ruam

1585279 1 1
1585279 1 1

Kauj Ruam 1. Tsim cov chav kawm tseem ceeb thiab hu rau nws

RockPaperScissors

.

Qhov no yuav yog chav kawm uas peb yuav sau qhov kev ua si. Koj tuaj yeem xaiv lub npe nws lwm yam xws li

Game

los yog

Lub ntsiab

. Sau hauv txoj kev tshaj tawm rau tus tsim thiab txoj hauv kev tseem ceeb.

pej xeem chav RockPaperScissors {pej xeem RockPaperScissors () {} pej xeem zoo li qub tsis muaj dab tsi tseem ceeb (Txoj hlua args) {}}

1585279 2 1
1585279 2 1

Kauj Ruam 2. Tsim kev suav sau rau tes taw (pob zeb, ntawv, lossis txiab)

Peb tuaj yeem siv cov hlua los sawv cev pob zeb, ntawv, lossis txiab, tab sis kev suav sau tso cai rau peb ua ntej ua ntej peb qhov txuas ntxiv uas txhais tau tias kev siv cov suav suav yog kev tsim qauv zoo dua. Peb yuav hu peb hom enum

Tsiv

nrog qhov tseem ceeb

ROCK

PAPER

thiab

SCISSORS

ntiag tug enum txav {ROCK, PAPER, SCISSORS}

1585279 3 1
1585279 3 1

Kauj Ruam 3. Tsim ob chav kawm ntiag tug

Tus neeg siv

thiab

Khoos phis tawj

.

Cov chav kawm no yuav sawv cev rau peb cov players hauv qhov kev ua si. Koj tuaj yeem xaiv ua cov chav kawm no rau pej xeem. Cov

Tus neeg siv

chav kawm yuav yog chav kawm uas qhia tus neeg siv rau pob zeb, ntawv, lossis txiab, yog li peb yuav tsum sau

tau txais ()

txoj kev. Cov

Khoos phis tawj

chav kawm tseem yuav tsum muaj a

tau txais ()

txoj hauv kev kom lub khoos phis tawj tseem tuaj yeem txav mus. Peb yuav muab cov neeg tso rau hauv cov txheej txheem no thiab siv lawv tom qab. Cov

Tus neeg siv

chav kawm yuav xav tau tus tsim tawm uas teeb tsa

Scanner

yam khoom siv rau hauv tus neeg siv tswv yim. Peb yuav tso

Scanner

raws li tus kheej ntiag tug rau tus neeg siv thiab tom qab ntawd pib nws hauv tus tsim. Txij li thaum peb siv lub

Scanner

chav kawm, peb yuav tsum sau cov lus hais tawm rau nws nyob rau sab saum toj ntawm peb cov cai. Cov

Khoos phis tawj

chav kawm tsis xav tau tus tsim khoom, yog li peb tsis tas yuav sau ib qho; thaum peb pib lub

Khoos phis tawj

yam khoom, peb yuav tsuas yog hu rau tus tsim ua haujlwm. Nov yog qhov peb paub

RockPaperScissors

chav kawm zoo li tam sim no:

ntshuam java.util. Scanner; pej xeem chav RockPaperScissors {tus kheej enum Txav mus {ROCK, PAPER, SCISSORS} tus kheej chav siv {tus kheej Scanner inputScanner; pej xeem neeg siv () {inputScanner = Scanner tshiab (System.in); } pej xeem Txav mus getMove () {// TODO: Siv txoj hauv kev no rov qab null; }} chav kawm ntiag tug Computer {pej xeem txav mus getMove () {// TODO: Siv txoj hauv kev no rov qab null; }} pej xeem RockPaperScissors () {} pej xeem zoo li qub tsis muaj dab tsi tseem ceeb (Txoj hlua args) {}}

1585279 4 1
1585279 4 1

Kauj Ruam 4. Sau

tau txais ()

method rau

Khoos phis tawj

chav kawm

Txoj kev no yuav rov ua qhov tsis raug

Tsiv

. Peb tuaj yeem tau txais ib qho array ntawm

Tsiv

kev suav sau los ntawm kev hu rau

qhov tseem ceeb ()

txoj kev:

Move.values ()

. Txhawm rau xaiv qhov tsis raug

Tsiv

kev suav sau hauv qhov tseem ceeb no, peb yuav tsum tsim kom muaj qhov ntsuas ntsuas tsis sib xws uas yog cov lej nruab nrab ntawm 0 thiab qhov ntev ntawm peb qhov txiaj ntsig zoo. Txhawm rau ua qhov no, peb tuaj yeem siv Cov

tom ntej no ()

method ntawm

Random

chav kawm uas peb xav tau los ntawm

java.util

. Tom qab peb tau txais qhov ntsuas ntsuas tsis raug, peb tuaj yeem xa rov qab

Tsiv

ntawm qhov ntsuas los ntawm peb qhov txiaj ntsig array.

pej xeem txav getMove () {Tsiv txav = Move.values (); Random random = Random tshiab (); int index = random.nextInt (moves.length); rov txav [index]; }

1585279 5 1
1585279 5 1

Kauj Ruam 5. Sau

tau txais ()

method rau

Tus neeg siv

chav kawm

Txoj kev no yuav rov qab a

Tsiv

sib thooj rau qhov tus neeg siv tau nkag mus. Peb yuav cia siab tias tus neeg siv yuav sau "pob zeb", "ntawv", lossis "txiab". Ua ntej, peb yuav tsum tau hais kom tus neeg siv nkag mus:

System.out.print ("Pob zeb, ntawv, lossis txiab?")

. Tom qab ntawd siv lub

tom ntejLine ()

method ntawm

Scanner

object kom tau txais cov neeg siv tswv yim ua ib txoj hlua. Peb xav tau tam sim no yuav tsum tau txheeb xyuas yog tias tus neeg siv tau xa qhov hloov pauv tau, tab sis peb tuaj yeem ua siab ntev yog tias tus neeg siv tau sau ib lo lus tsis raug. Yog li peb tsuas yog txheeb xyuas yog tias thawj tsab ntawv ntawm tus neeg siv nkag mus yog "R" (rau pob zeb), "P" (rau ntawv), lossis "S" (rau txiab), thiab peb yuav tsis quav ntsej txog rooj plaub vim tias peb yuav xub siv lub

toUpperCase ()

method ntawm

Txoj hlua

chav kawm kom ua rau cov neeg siv cov hlua nkag tau txhua tus ntawv loj. Yog tias tus neeg siv tsis tau nkag mus rau cov lus nkag teb chaws raug, peb yuav qhia tus neeg siv dua. Tom qab ntawd, nyob ntawm seb tus neeg siv tau muab tso rau hauv, peb yuav xa rov qab qhov sib xws.

pej xeem txav getMove () {// Hais kom tus neeg siv System.out.print ("Pob zeb, ntawv, lossis txiab?"); // Tau txais tus neeg siv cov lus siv txoj hlua userInput = inputScanner.nextLine (); userInput = userInput.toUpperCase (); char firstLetter = userInput.charAt (0); yog (firstLetter == 'R' || firstLetter == 'P' || firstLetter == 'S') {// Tus neeg siv tau nkag mus rau qhov hloov pauv siv tau (firstLetter) {case 'R': rov Move. ROCK; rooj plaub 'P': xa Move. PAPER; rooj plaub 'S': rov qab Move. SCISSORS; }} // Tus neeg siv tsis tau nkag mus rau qhov siv tau. Hais dua. rov getMove (); }

1585279 6
1585279 6

Kauj Ruam 6. Sau a

playAgain ()

method rau

Tus neeg siv

chav kawm

Tus neeg siv yuav tsum muaj peev xwm ua si qhov kev ua si ntau thiab ntau dua. Txhawm rau txiav txim siab seb tus neeg siv xav rov ua si dua, peb yuav tsum sau a

playAgain ()

txoj kev uas rov qab boolean qhia qhov kev ua si seb tus neeg siv tau txiav txim siab rov ua si dua lossis tsis. Hauv txoj kev no, peb tab tom siv

Scanner

uas peb tau pib ua ntej hauv tus tsim kom tau txais "Yog" lossis "Tsis Yog" los ntawm tus neeg siv. Peb yuav tsuas yog txheeb xyuas yog tias thawj tsab ntawv yog 'Y' los txiav txim seb tus neeg siv xav rov ua si dua. Lwm yam kev tawm tswv yim yuav txhais tau tias tus neeg siv tsis xav rov ua si dua.

pej xeem boolean playAgain () {System.out.print ("Koj puas xav rov ua dua?"); Txoj hlua userInput = inputScanner.nextLine (); userInput = userInput.toUpperCase (); rov qab userInput.charAt (0) == 'Y'; }

1585279 7
1585279 7

Kauj Ruam 7. Txuas lub

Tus neeg siv

thiab

Khoos phis tawj

cov chav kawm ua ke hauv

RockPaperScissors

chav kawm

Tam sim no peb tau ua tiav kev sau ntawv

Tus neeg siv

thiab

Khoos phis tawj

cov chav kawm, peb tuaj yeem tsom mus rau ua haujlwm ntawm peb qhov kev ua si tiag. Tsim cov chaw ntiag tug rau

Tus neeg siv

thiab

Khoos phis tawj

cov chav kawm hauv

RockPaperScissors

chav kawm Peb yuav tsum nkag mus rau cov haujlwm no txhawm rau nkag mus rau

tau txais ()

cov txheej txheem thaum peb tab tom ua si. Nyob rau hauv lub constructor rau

RockPaperScissors

chav kawm, pib ua cov haujlwm no. Peb tseem yuav tsum tau taug qab cov qhab nia hauv

userScore

thiab

ComputerScore

teb, uas peb xav tau pib ua 0 hauv tus tsim. Peb yuav tsum tau taug qab tus lej ntawm cov kev ua si ib yam, uas tseem yuav yog thaj chaw pib ua 0.

tus neeg siv ntiag tug; private Computer lub computer; ntiag tug int userScore; ntiag tug int computerScore; ntiag tug int numberOfGames; pej xeem RockPaperScissors () {user = user tshiab (); computer = tshiab Computer (); userScore = 0; ComputerScore = 0; numberOfGames = 0; }

1585279 8
1585279 8

Kauj Ruam 8. Ncua qhov

Tsiv

enum suav nrog txoj hauv kev uas qhia peb uas txav mus yeej hauv txhua kis.

Peb yuav tsum sau a

sib pivMoves ()

txoj kev uas rov qab 0 yog tias kev txav mus los zoo ib yam, 1 yog tias qhov kev txav tam sim no ntaus lwm qhov txav, thiab -1 yog tias qhov kev txav tam sim no poob rau lwm qhov txav. Qhov no yuav muaj txiaj ntsig rau kev txiav txim siab tus yeej hauv qhov kev ua si. Txhawm rau siv txoj hauv kev no, peb yuav xub rov qab 0 yog tias kev txav mus los zoo ib yam thiab yog li peb muaj txoj hlua khi. Tom qab ntawd sau cov lus hloov pauv rau rov qab 1 lossis -1.

ntiag tug enum Tsiv {ROCK, PAPER, SCISSORS; /** * Sib piv qhov kev txav no nrog lwm qhov txav mus rau kev txiav txim siab khi, yeej, lossis * poob. * * @param otherMove * txav los sib piv rau * @return 1 yog tias qhov kev txav no ntaus lwm qhov txav, -1 yog tias qhov kev txav no poob rau * lwm qhov txav, 0 yog tias cov kev txav no sib koom * / pej xeem int sib pivMoves (Txav mus rau lwm qhov txav) { / / Tie if (this == otherMove) return 0; hloov (qhov no) {rooj plaub ROCK: rov qab (otherMove == SCISSORS? 1: -1); rooj PAPER: rov qab (otherMove == ROCK? 1: -1); rooj SCISSORS: rov qab (otherMove == PAPER? 1: -1); } // Yuav tsum tsis txhob mus txog ntawm no rov qab 0; }}

1585279 9
1585279 9

Kauj Ruam 9. Tsim a

startGame ()

method hauv

RockPaperScissors

chav kawm

Txoj kev no yuav yog kev ua si ntawm qhov kev ua si. Pib tawm los ntawm kev muab qhov yooj yim

System.out.println

nyob rau hauv txoj kev.

pej xeem void startGame () {System.out.println ("ROCK, PAPER, SCISSORS!"); }

1585279 10
1585279 10

Kauj Ruam 10. Tau txav los ntawm tus neeg siv thiab lub khoos phis tawj

Hauv

startGame ()

method, siv cov

tau txais ()

cov txheej txheem los ntawm

Tus neeg siv

class thiab

Khoos phis tawj

chav kawm kom tau txais tus neeg siv thiab lub khoos phis tawj txav mus los.

Tsiv userMove = user.getMove (); Tsiv computerMove = computer.getMove (); System.out.println ("\ nKoj tau ua" + userMove + "."); System.out.println ("Computer ua si" + computerMove + ". / N");

1585279 11
1585279 11

Kauj Ruam 11. Sib piv ob qhov txav mus thiab txiav txim seb tus neeg siv yeej lossis lub khoos phis tawj yeej

Siv cov

sib pivMoves ()

method los ntawm

Tsiv

enum los txiav txim seb tus neeg siv yeej lossis tsis. Yog tias tus neeg siv yeej, nce tus neeg siv cov qhab nia los ntawm 1. Yog tias tus neeg siv poob, nce lub computer cov qhab nia los ntawm 1. Yog tias muaj kev sib khi, tsis txhob nce ib qho ntawm cov qhab nia. Tom qab ntawd nce tus naj npawb ntawm cov game ua si los ntawm ib qho.

int sib pivMoves = userMove.compareMoves (computerMove); hloov (sib pivMoves) {rooj plaub 0: // Tie System.out.println ("Tie!"); tawg; rooj plaub 1: // Tus neeg siv yeej System.out.println (userMove + "ntaus" + computerMove + ". Koj yeej!"); userScore ++; tawg; rooj plaub -1: // Lub computer yeej System.out.println (computerMove + "ntaus" + userMove + ". Koj poob lawm."); ComputerScore ++; tawg; } numberOfGames ++;

1585279 12
1585279 12

Kauj Ruam 12. Nug yog tias tus neeg siv xav rov ua si dua

Yog tias tus neeg siv xav rov ua si dua, hu

startGame ()

dua. Txwv tsis pub, hu

printGameStats ()

uas yuav luam tawm cov txheeb cais ntawm qhov kev ua si. Peb yuav sau txoj hauv kev no hauv cov kauj ruam tom ntej.

yog (user.playAgain ()) {System.out.println (); startGame (); } lwm {printGameStats (); }

1585279 13
1585279 13

Kauj Ruam 13. Sau

printGameStats ()

txoj kev.

Txoj hauv kev no yuav tso tawm qhov txheeb cais ntawm qhov kev ua si: tus lej yeej, tus lej poob, tus lej sib tw, tus lej ntawm cov kev ua si, thiab feem pua ntawm cov kev ua si yeej los ntawm tus neeg siv. Feem pua ntawm kev ua si yeej yog xam los ntawm (# yeej + (# sib txuas/2))/(# ua si ua si). Txoj kev no siv

System.out.printf

luam tawm cov ntawv uas tau muab kho dua.

ntiag tug void printGameStats () {int yeej = userScore; int losses = computerScore; int ties = numberOfGames - userScore - computerScore; ob feem puaWon = (yeej + ((ob npaug) kev sib raug zoo) / 2) / numberOfGames; // Kab System.out.print ("+"); printDashes (68); System.out.println ("+"); // Luam cov npe System.out.printf ("| %6s | %6s | %6s | %12s | %14s | / n", "WINS", "LOSSES", "TIES", "GAMES PLAYED", "PERCENTAGE YOG "); // Kab System.out.print ("|"); printDashes (10); System.out.print ("+"); printDashes (10); System.out.print ("+"); printDashes (10); System.out.print ("+"); printDashes (16); System.out.print ("+"); printDashes (18); System.out.println ("|"); // Luam qhov tseem ceeb System.out.printf ("| %6d | %6d | %6d | %12d | %13.2f %% | / n", yeej, poob, sib raug zoo, numberOfGames, feem puaWon * 100); // Kab System.out.print ("+"); printDashes (68); System.out.println ("+"); }

1585279 14
1585279 14

Kauj Ruam 14. Pib qhov kev ua si hauv chav kawm tseem ceeb

Hauv chav kawm tseem ceeb, pib ua piv txwv ntawm

RockPaperScissors

class thiab hu rau

startGame ()

txoj kev.

pej xeem tsis muaj nuj nqis zoo li qub (Txoj hlua args) {RockPaperScissors game = RockPaperScissors tshiab (); game.startGame (); }

1585279 15
1585279 15

Kauj Ruam 15. Kuaj koj qhov kev ua si

Tam sim no peb tau dhau los ntawm txhua qhov kev mob siab rau sau Pob Zeb, Ntawv, Txiab game, nws yog lub sijhawm los sau thiab sim txhua yam tawm!

Qauv Qauv

ntshuam java.util. Random; ntshuam java.util. Scanner; pej xeem chav RockPaperScissors {tus neeg siv ntiag tug; private Computer lub computer; ntiag tug int userScore; ntiag tug int computerScore; ntiag tug int numberOfGames; ntiag tug enum Tsiv {ROCK, PAPER, SCISSORS; /** * Sib piv qhov kev txav no nrog lwm qhov txav mus rau kev txiav txim siab khi, yeej, lossis * poob. * * @param otherMove * txav los sib piv rau * @return 1 yog tias qhov kev txav no ntaus lwm qhov txav, -1 yog tias qhov kev txav no poob rau * lwm qhov txav, 0 yog tias cov kev txav no sib koom * / pej xeem int sib pivMoves (Txav mus rau lwm qhov txav) { / / Tie yog (qhov no == otherMove) rov qab 0; hloov (qhov no) {rooj plaub ROCK: rov qab (otherMove == SCISSORS? 1: -1); rooj PAPER: rov qab (otherMove == ROCK? 1: -1); rooj SCISSORS: rov qab (otherMove == PAPER? 1: -1); } // Yuav tsum tsis txhob mus txog ntawm no rov qab 0; }} chav kawm ntiag tug Tus neeg siv {tus kheej Scanner inputScanner; pej xeem neeg siv () {inputScanner = Scanner tshiab (System.in); } pej xeem txav getMove () {// Hais kom tus neeg siv System.out.print ("Pob zeb, ntawv, lossis txiab?"); // Tau txais tus neeg siv cov khoom siv txoj hlua userInput = inputScanner.nextLine (); userInput = userInput.toUpperCase (); char firstLetter = userInput.charAt (0); yog (firstLetter == 'R' || firstLetter == 'P' || firstLetter == 'S') {// Tus neeg siv tau nkag mus rau qhov hloov pauv nkag tau siv tau (firstLetter) {case 'R': rov Move. ROCK; rooj plaub 'P': xa Move. PAPER; rooj plaub 'S': xa Move. SCISSORS; }} // Tus neeg siv tsis tau nkag mus rau qhov siv tau. Hais dua. rov getMove (); } pej xeem boolean playAgain () {System.out.print ("Koj puas xav rov ua dua?"); Txoj hlua userInput = inputScanner.nextLine (); userInput = userInput.toUpperCase (); rov qab userInput.charAt (0) == 'Y'; }} chav kawm ntiag tug Computer {pej xeem txav getMove () {Tsiv txav = Move.values (); Random random = Random tshiab (); int index = random.nextInt (moves.length); rov txav [index]; }} pej xeem RockPaperScissors () {neeg siv = neeg siv tshiab (); computer = tshiab Computer (); userScore = 0; ComputerScore = 0; numberOfGames = 0; } pej xeem void startGame () {System.out.println ("ROCK, PAPER, SCISSORS!"); // Tau txais txav txav userMove = user.getMove (); Tsiv computerMove = computer.getMove (); System.out.println ("\ nKoj tau ua" + userMove + "."); System.out.println ("Computer ua si" + computerMove + ". / N"); // Sib piv txav thiab txiav txim siab tus yeej int sib pivMoves = userMove.compareMoves (computerMove); hloov (sib pivMoves) {rooj plaub 0: // Tie System.out.println ("Tie!"); tawg; rooj plaub 1: // Tus neeg siv yeej System.out.println (userMove + "ntaus" + computerMove + ". Koj yeej!"); userScore ++; tawg; rooj plaub -1: // Lub computer yeej System.out.println (computerMove + "ntaus" + userMove + ". Koj poob lawm."); ComputerScore ++; tawg; } numberOfGames ++; // Nug tus neeg siv kom rov ua si yog (user.playAgain ()) {System.out.println (); startGame (); } lwm {printGameStats (); }} /*** Luam tawm cov txheeb cais ntawm qhov kev ua si. Laij kev sib raug zoo raws li 1/2 yeej hauv * feem pua yeej. */ ntiag tug tsis muaj dab tsi printGameStats () {int yeej = userScore; int losses = computerScore; int ties = numberOfGames - userScore - computerScore; ob feem puaWon = (yeej + ((ob npaug) kev sib raug zoo) / 2) / numberOfGames; // Kab System.out.print ("+"); printDashes (68); System.out.println ("+"); // Luam cov npe System.out.printf ("| %6s | %6s | %6s | %12s | %14s | / n", "WINS", "LOSSES", "TIES", "GAMES PLAYED", "PERCENTAGE YOG "); // Kab System.out.print ("|"); printDashes (10); System.out.print ("+"); printDashes (10); System.out.print ("+"); printDashes (10); System.out.print ("+"); printDashes (16); System.out.print ("+"); printDashes (18); System.out.println ("|"); // Luam qhov tseem ceeb System.out.printf ("| %6d | %6d | %6d | %12d | %13.2f %% | / n", yeej, poob, sib koom, numberOfGames, feem puaWon * 100); // Kab System.out.print ("+"); printDashes (68); System.out.println ("+"); } ntiag tug tsis muaj dab tsi printDashes (int numberOfDashes) {rau (int i = 0; kuv <numberOfDashes; i ++) {System.out.print ("-"); }} pej xeem zoo li qub tsis muaj qhov tseem ceeb (Txoj hlua args) {RockPaperScissors game = RockPaperScissors tshiab (); game.startGame (); }}

Pom zoo: