public class Test {
涇縣網(wǎng)站建設公司創(chuàng)新互聯(lián)建站,涇縣網(wǎng)站設計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為涇縣上千多家提供企業(yè)網(wǎng)站建設服務。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務好的涇縣做網(wǎng)站的公司定做!
private static Scanner sc;
private static Random rad;
private static final String[] FINGERS = { "剪刀", "石頭", "布" };
private static int win = 0, loose = 0, draw = 0;
public static void main(String[] args) {
// 捕獲用戶輸入類
sc = new Scanner(System.in);
//產(chǎn)生隨機數(shù)的類
rad = new Random();
//一進來就讓用戶輸入開始游戲,直到輸入E, 退出游戲。
while (true) {
System.out.println("~~~~~~~~~~~~剪刀石頭布游戲,輸入E可以退出~~~~~~~~~~~");
System.out.println("請選擇你要出什么?Z——剪刀,X——石頭,C——布");
//獲取用戶輸入的字符
String command = sc.nextLine();
//輸入字符轉(zhuǎn)換 手勢沒發(fā)比較大小 就把字符轉(zhuǎn)換成數(shù)字比較大小
int playerFinger = getValue(command);
if (playerFinger == -1) {//用戶輸入的是E == -1 表示退出
break;
}
else if (playerFinger == 3) {//用戶輸入的是 E Z X C 之外的字符 == 3 表示輸入的不是合法的,然后繼續(xù)讓用戶重新輸入
System.out.println("輸入錯誤,請參考說明!");
continue;
}
//當用戶輸入 ZXC 中的字符時才會到這一步
//用戶的輸入轉(zhuǎn)換成了 0,1,2
//finger[0]="剪刀" finger[1]="石頭" finger[2]="布" 程序第一行定義好的
System.out.println("你出的是" + FINGERS[playerFinger]);
//生成隨機整數(shù) 3以內(nèi)的(1,2,3)
int cpuFinger = rad.nextInt(3);
//finger[0]="剪刀" finger[1]="石頭" finger[2]="布" 程序第一行定義好的
System.out.println("計算機出的是" + FINGERS[cpuFinger]);
//比較兩個數(shù)字,你可以理解 0 就是剪刀,1是石頭 2 是布
int result = playerFinger - cpuFinger;
if (0 == result) {//結(jié)果等于零說明兩個數(shù)字一樣
System.out.println("平局!");
draw++;
}
else if (-1 == result || 2 == result) {// 0-1=-1,1-2=-1,2-0=2 表示你輸?shù)娜N情況 ;0 就是剪刀,1是石頭 2 是布
System.out.println("你輸了!");
loose++;
}
else {//剩下的情況除了平局,輸局 肯定就是你贏了
System.out.println("你贏了!");
win++;
}
}
System.out.println("游戲結(jié)束!\r\n游戲統(tǒng)計次數(shù)");
System.out.println(String.format("贏:%d\r\n輸:%d\r\n平局:%d", win, loose, draw));
}
/**
* 用戶輸入字符進行轉(zhuǎn)換
* 輸入字符 E 就返回-1 作為后續(xù)判斷,表示退出程序
* 輸入字符 Z 返回 0 代表剪刀
* 輸入字符 X 返回 1 代表石頭
* 輸入字符 C 返回 2 代表布
* 輸入其他字符 返回3 ,表明輸入的不是符合規(guī)則的手勢(0,1,2)
*
* @param command
* @return
*/
private static int getValue(String command) {
if (command.equalsIgnoreCase("E")) {
return -1;
}
if (command.equalsIgnoreCase("Z")) {
return 0;
}
if (command.equalsIgnoreCase("X")) {
return 1;
}
if (command.equalsIgnoreCase("C")) {
return 2;
}
return 3;
}
}
comp是電腦產(chǎn)生的隨機數(shù)字(電腦出的拳),people 是人出的拳。 因為剪刀石頭布只有 1 2 3
。如果電腦的數(shù)字比的你剛好大1,就是它比你的大。 如21,32對應就是(石頭大于剪刀,布大于石頭)。 但也有可能是剪刀大于布 。 那么剪刀的位子是1 ,布的位子是3. 所以當電腦數(shù)字減你的數(shù)字等于2時 就是(電腦出的布 ,你出的石頭這樣的情況了)。
所以是if((comp-people)==-1||(comp-people)==2) 這兩者結(jié)合就是你贏的時候
寫了一下,結(jié)果輸出到桌面上,你把文件輸出路徑改成你的桌面路徑就可以了,不知道你要不要最終結(jié)果
代碼:
package com.hmall;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
/**
* @ClassName Mora
* @Description TODO
* @Author dell
* @Date 2019/7/1 13:03
* @Version 1.0
**/
public class Mora {
private static String calculate(String input) {
ListString list = new ArrayList();
list.add("拳頭");
list.add("剪刀");
list.add("布");
Random r = new Random();
Integer random = r.nextInt(3);
String temp = list.get(random);
if (temp.equals(input)) {
return "您出了" + input + ",電腦出了" + temp + ",結(jié)果為平局";
} else {
if (input.equals("拳頭")) {
if (temp.equals("剪刀")) {
return "您出了" + input + ",電腦出了" + temp + ",結(jié)果為您贏了";
} else {
return "您出了" + input + ",電腦出了" + temp + ",結(jié)果為您輸了";
}
} else if (input.equals("剪刀")) {
if (temp.equals("拳頭")) {
return "您出了" + input + ",電腦出了" + temp + ",結(jié)果為您輸了";
} else {
return "您出了" + input + ",電腦出了" + temp + ",結(jié)果為您贏了";
}
} else if (input.equals("布")) {
if (temp.equals("拳頭")) {
return "您出了" + input + ",電腦出了" + temp + ",結(jié)果為您贏了";
} else {
return "您出了" + input + ",電腦出了" + temp + ",結(jié)果為您輸了";
}
} else {
return "輸入數(shù)據(jù)有誤";
}
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Integer count;
while (true) {
System.out.println("請輸入比賽場次(不能小于5):");
count = scanner.nextInt();
if (count = 5) {
System.out.println("比賽開始");
break;
}
System.out.println("輸入小于5,請重新輸入");
}
String input;
File f = new File("C:\\Users\\dell\\Desktop\\result.txt");
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
for (int i = 0; i count; i++) {
System.out.println("請輸入您的選擇:");
input = scanner.next();
String result = calculate(input);
bw.write(result);
bw.newLine();
System.out.println(result);
}
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
結(jié)果:
import?java.util.Random;
import?java.util.a?href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLuHn1rjm4njbLmHKbm1PB0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3ErHD4rj6krH0Yn1f1nWbvnHT4"?target="_blank"?class="baidu-highlight"Sc/aanner;
public?class?FingerGuessingGame?{
private?static?a?href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLuHn1rjm4njbLmHKbm1PB0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3ErHD4rj6krH0Yn1f1nWbvnHT4"?target="_blank"?class="baidu-highlight"Sc/aanner?a?href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLuHn1rjm4njbLmHKbm1PB0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3ErHD4rj6krH0Yn1f1nWbvnHT4"?target="_blank"?class="baidu-highlight"sc/a;
private?static?Random?rad;
private?static?final?String[]?FINGERS?=?{"剪刀",?"石頭",?"布"};
private?static?int?win?=?0,?loose?=?0,?draw?=?0;
public?static?void?main(String[]?args)?{
sc?=?new?Scanner(System.in);
rad?=?new?Random();
while(true)?{
System.out.println("~~~~~~~~~~~~剪刀石頭布游戲,輸入E可以退出~~~~~~~~~~~");
System.out.println("請選擇你要出什么?Z——剪刀,X——石頭,C——布");
String?command?=?sc.nextLine();
int?playerFinger?=?getValue(command);
if(playerFinger?==?-1)?{
break;
}?else?if(playerFinger?==?3)?{
System.out.println("輸入錯誤,請參考說明!");
continue;
}
System.out.println("你出的是"?+?FINGERS[playerFinger]);
int?cpuFinger?=?rad.nextInt(3);
System.out.println("計算機出的是"?+?FINGERS[cpuFinger]);
int?result?=?playerFinger?-?cpuFinger;
if(0?==?result)?{
System.out.println("平局!");
draw?++;
}?else?if(-1?==?result)?{
System.out.println("你輸了!");
loose?++;
}?else?{
System.out.println("你贏了!");
win?++;
}
}
System.out.println("游戲結(jié)束!\r\n游戲統(tǒng)計次數(shù)");
System.out.println(String.format("贏:%d\r\n輸:%d\r\n平局:%d",?win,?loose,?draw));
}
private?static?int?getValue(String?command)?{
if(command.equalsIgnoreCase("E"))?{
return?-1;
}
if(command.equalsIgnoreCase("Z"))?{
return?0;
}
if(command.equalsIgnoreCase("X"))?{
return?1;
}
if(command.equalsIgnoreCase("C"))?{
return?2;
}
return?3;
}
}
import java.util.*;
public class Exam
{
public static void main(String[] args)
{
String[] cq={"石頭","剪刀","布"};
String guess;
int youwin=0,mewin=0,daping=0,total=0,n;
Random r=new Random();
Scanner sc=new Scanner(System.in);
while(true)
{
n=r.nextInt(3);
System.out.print("石頭、剪刀、布,我已出,請你出(輸入exit退出循環(huán)):");
guess=sc.nextLine();
if(guess.equals("exit"))
{
break;
}
else
{
total++;
System.out.print("這一次你出的是"+guess+",我出的是"+cq[n]+",所以");
if(guess.equals("石頭")1==n || guess.equals("剪刀")2==n || guess.equals("布")0==n)
{
youwin++;
System.out.println("你贏了!");
}
else if(guess.equals(cq[n]))
{
daping++;
System.out.println("我們打平了!");
}
else
{
mewin++;
System.out.println("我贏了!");
}
}
}
System.out.println("總共玩了"+total+"次,你贏了"+youwin+"次,我贏了"+mewin+"次,打平"+daping+"次!");
}
}