Java小程序:单循环比赛,总分高者获胜的源代码
生活随笔
收集整理的這篇文章主要介紹了
Java小程序:单循环比赛,总分高者获胜的源代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
java5個人4項單循環比賽,每項決勝者得2分,平分各得一分,敗者不得分,總分高著獲勝的源代碼
程序運行截圖:
1.單循環賽,是所有參加比賽的隊均能相遇一次
2.運動員類Sportsman
3.運動項目類SportsEvents
4.運動場地類PlayingField
5.測試類
運動員類
/*** 運動員* */public class Sportsman {int ID;String name;Map<Integer, SportsEvents> map;// 參賽項目int totalScore;// 總得分public Sportsman(int ID, String name) {this.ID = ID;this.name = name;// 默認參加所有四場賽事this.map = new HashMap<Integer, SportsEvents>();map.put(0, new SportsEvents(0, "項目1"));map.put(1, new SportsEvents(1, "項目2"));map.put(2, new SportsEvents(2, "項目3"));map.put(3, new SportsEvents(3, "項目4"));}public void setScore(SportsEvents spEvents) {totalScore += spEvents.scoreRule.score;}}運動項目類 /*** 運動項目 單循環賽,所有參加比賽的隊均能相遇一次*/ public class SportsEvents {int ID;String name;// 項目名稱ScoreRule scoreRule;// 得分規則public SportsEvents(int ID, String name) {this.ID = ID;this.name = name;}public void setFlag(ScoreRule scoreRule) {this.scoreRule = scoreRule;String flag = scoreRule.flag;if ("失敗".compareTo(flag) == 0) {scoreRule.score = 0;} else if ("勝利".compareTo(flag) == 0) {scoreRule.score = 2;} else if ("平局".compareTo(flag) == 0) {scoreRule.score = 1;}}// 得分規則類class ScoreRule {int score;// 分值 決勝者得2分 平分各得一分 敗者不得分String flag;// 失敗/勝利/平局標示} }
運動場地類 /** 比賽場地* */ public class PlayingField {/*** 開始比賽* * @param sportsman* @param sportsman2* @param ID*/public void start(Sportsman sportsman, Sportsman sportsman2, int ID) {// 0<=Math.random()<1// 隨機抽取一個數0 1 2// 0:sportsman 獲勝 1:sportsman2獲勝 2:平局int random = (int) (Math.random() * 3);switch (random) {case 0: {SportsEvents sportsEvents = sportsman.map.get(ID);ScoreRule scoreRule = sportsEvents.new ScoreRule();scoreRule.flag = "勝利";sportsEvents.setFlag(scoreRule);sportsman.setScore(sportsEvents);SportsEvents sportsEvents2 = sportsman2.map.get(ID);ScoreRule scoreRule2 = sportsEvents2.new ScoreRule();scoreRule2.flag = "失敗";sportsEvents2.setFlag(scoreRule2);sportsman2.setScore(sportsEvents2);}break;case 1: {SportsEvents sportsEvents = sportsman.map.get(ID);ScoreRule scoreRule = sportsEvents.new ScoreRule();scoreRule.flag = "失敗";sportsEvents.setFlag(scoreRule);sportsman.setScore(sportsEvents);SportsEvents sportsEvents2 = sportsman2.map.get(ID);ScoreRule scoreRule2 = sportsEvents2.new ScoreRule();scoreRule2.flag = "勝利";sportsEvents2.setFlag(scoreRule2);sportsman2.setScore(sportsEvents2);}break;case 2: {SportsEvents sportsEvents = sportsman.map.get(ID);ScoreRule scoreRule = sportsEvents.new ScoreRule();scoreRule.flag = "平局";sportsEvents.setFlag(scoreRule);sportsman.setScore(sportsEvents);SportsEvents sportsEvents2 = sportsman2.map.get(ID);ScoreRule scoreRule2 = sportsEvents2.new ScoreRule();scoreRule2.flag = "平局";sportsEvents2.setFlag(scoreRule2);sportsman2.setScore(sportsEvents2);}break;default:break;}} } 測試類: public class Test {public static final void main(String[] args) {// 單循環賽,是所有參加比賽的隊均能相遇一次// java5個人4項單循環比賽,每項決勝者得2分,平分各得一分,敗者不得分,總分高著獲勝Sportsman[] sportsmans = new Sportsman[] { new Sportsman(0, "劉剛"),new Sportsman(1, "李毅"), new Sportsman(2, "趙四"),new Sportsman(3, "劉能"), new Sportsman(4, "王小寶") };PlayingField playingField = new PlayingField();for (int sportsEventsID = 0; sportsEventsID < 4; sportsEventsID++) {for (int i = 0; i < 5; i++) {for (int j = i + 1; j < 5; j++) {playingField.start(sportsmans[i], sportsmans[j],sportsEventsID);}}}for (int i = 0; i < sportsmans.length; i++) {System.out.println(sportsmans[i].name + "總得分:"+ sportsmans[i].totalScore);}} }
總結
以上是生活随笔為你收集整理的Java小程序:单循环比赛,总分高者获胜的源代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是图像识别?
- 下一篇: JAVA三角形边长定义_Java编译:定