下禮拜就要學習有參數的方法了,頗感壓力山大,買了兩本書一本是李興華的JAVA開發實戰經典跟HeadFirst,前者看起來須要基礎支撐,後者看起來全是英文,對我這種文盲來講,看起來實則費勁,但棄之有惋惜,想學習卻又找不到方法,人在生活中無時無刻都在面臨着選擇,當你選擇這件事的時候就註定你放棄了一些事,二者不可兼得。java
package 人機;dom
import java.util.Scanner;學習
/**
* 用戶類
* @param <Scanner>
*/遊戲
public class Person {
String name = "匿名";// 名字
int score = 0;// 積分開發
/**
* 出拳
* @return出拳結果:1.剪刀 2.石頭 3.布
*/input
public int showFist() {
// 接收用戶的選擇
Scanner input = new Scanner(System.in);
System.out.print("\n請出拳:1.剪刀 2.石頭 3.布 (輸入相應數字):");
int show = input.nextInt();
// 輸出出拳結果,並返回
switch (show) {
case 1:
System.out.println("你出拳:剪刀");
break;
case 2:
System.out.println("你出拳:石頭");
break;
case 3:
System.out.println("你出拳:布");
break;
}
return show;
}
}it
package 人機;class
public class Computer {
/**
* 計算機類
*/
String name = "電腦";// 名字
int score = 0;;// 積分import
/**
* 出拳
* @return 出拳結果:1.剪刀 2.石頭 3.布
*/
public int showFist() {
// 產生隨機數
int show = (int) (Math.random() * 10) % 3 + 1;// 產生隨機數,表示電腦出拳
// 輸出出拳結果並返回
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;
}
}
package 人機;
import java.util.Scanner;
/**
* 遊戲類
*
* @param <computer>
*/
public class Game<computer> {
Person person; // 甲方
Computer computer; // 乙方
int count;// 對戰次數
/**
* 初始化
*/
public void initial() {
person = new Person();
computer = new Computer();
count = 0;
}
/**
* 開始遊戲
*/
public void startGame() {
System.out.println("\t -------歡迎進入遊戲世界-------\n");
System.out.println("\n\t\t********************");
System.out.println("\t\t*******猜拳,開始 ******");
System.out.println("\t\t********************");
System.out.println("\n\n出拳規則:1.剪刀,2.石頭,3.布");
Scanner input = new Scanner(System.in);
String exit = "n"; // 退出系統
do {
initial();// 初始化
/* 選擇對方角色 */
System.out.print("請選擇對方角色:(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.print("請輸入你的姓名:");
person.name = input.next();
System.out.println(person.name + "VS" + computer.name + "對戰\n");
System.out.print("要開始嗎?(y/n)");
String start = input.next();// 開始每一局遊戲
int perFist; // 用戶出的拳
int compFist; // 計算機出的拳
while (start.equals("y")) {
/* 出拳 */
perFist = person.showFist();
compFist = computer.showFist();
/* 裁決 */
if ((perFist == 1 && compFist == 1)
|| (perFist == 2 && compFist == 2)
|| (perFist == 3 && compFist == 3)) {
System.out.println("結果:和局,真衰!嘿嘿,等着瞧吧!\n"); // 平局
} else if ((perFist == 1 && compFist == 3)
|| (perFist == 2 && compFist == 1)
|| (perFist == 3 && compFist == 2)) {
System.out.println("結果:恭喜,你贏了!"); // 用戶贏
person.score++;
} else {
System.out.println("結果說:^_^,你輸了,真笨!\n"); // 計算機贏
computer.score++;
}
count++;
System.out.println("\n是否開始下一輪(y/n):");
start = input.next();
}
/* 顯示結果 */
showResult();
// 循環遊戲,退出系統
System.out.print("\n要開始下一局嗎?(y/n):");
exit = input.next();
System.out.println();
// 結束
} while (!exit.equals("n"));
System.out.println("系統退出!");
}
/**
* 顯示比賽結果
*/
public void showResult() {
/* 顯示對戰次數 */
System.out.println("-------------------------------");
System.out.println(computer.name + "VS" + person.name);
System.out.println("對戰次數:" + count);
// 顯示最終的得分
System.out.println("\n姓名\t得分");
System.out.println(person.name + "\t" + person.score);
System.out.println(computer.name + "\t" + computer.score + "\n");
// 結束
/* 顯示對戰結果 */
int result = calcResult();
if (result == 1) {
System.out.println("結果:打成平手,下次再和你一分高下!");
} else if (result == 2) {
System.out.println("結果:恭喜恭喜!"); // 用戶獲勝
} else {
System.out.println("結果:呵呵,笨笨,下次加油啊!"); // 計算機獲勝
}
System.out.println("--------------------------------");
}
/**
* 計算比賽結果
* @return1:戰平; 2:用戶贏; 3:電腦贏
*/
public int calcResult() {
if (person.score == computer.score) {
return 1;// 戰平
} else if (person.score > computer.score) {
return 2;// 用戶贏
} else {
return 3;// 電腦贏
}
}
}
package 人機;
public class TestStartGuess {
public static void main(String[] args) {
Game game=new Game();
game.initial();
game.startGame();
}
}
代碼還存在一部分問題。