光棍節來臨的前奏

下禮拜就要學習有參數的方法了,頗感壓力山大,買了兩本書一本是李興華的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();


 }


}

 

代碼還存在一部分問題。

相關文章
相關標籤/搜索