1 /******************************************************************************
2 * WinLoss - Describe the Win Loss record against one player.
3 * $Id$
4 *
5 * BuckoFIBS - Backgammon by BuckoSoft
6 * Copyright 2010 - Dick Balaska - BuckoSoft, Corp.
7 *
8 * $Log$
9 * Revision 1.2 2010/12/30 17:38:19 dick
10 * Correct the cvs link.
11 *
12 * Revision 1.1 2010/12/24 02:58:03 dick
13 * Describe the Win Loss record against one player.
14 *
15 */
16
17 /*
18 * This program is free software: you can redistribute it and/or modify
19 * it under the terms of the GNU General Public License as published by
20 * the Free Software Foundation, either version 3 of the License, or
21 * (at your option) any later version.
22 *
23 * This program is distributed in the hope that it will be useful,
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 * GNU General Public License for more details.
27 *
28 * You should have received a copy of the GNU General Public License
29 * along with this program. If not, see <http://www.gnu.org/licenses/>.
30 *
31 * The Original Code is BuckoFIBS, <http://www.buckosoft.com/BuckoFIBS/>.
32 * The Initial Developer of the Original Code is Dick Balaska and BuckoSoft, Corp.
33 *
34 */
35 package com.buckosoft.fibs.domain;
36
37
38 /** A class to manage wins/losses for a Player.
39 * We need to be able to deal with them as numbers and present them as a string.
40 * @author dick
41 * @since 2010/12/23
42 * @version $Revision$ <br> $Date$
43 * @see <a href="http://cvs.buckosoft.com/Projects/BuckoFIBS/BuckoFIBS/src/main/java/com/buckosoft/fibs/domain/WinLoss.java">cvs WinLoss.java</a>
44 *
45 */
46 public class WinLoss implements Comparable<WinLoss> {
47 private int wins;
48 private int losses;
49
50 /** Convienence constructor that takes the wins and losses
51 * @param wins The number of times you have beaten this opponent.
52 * @param losses The number of times you have lost to this opponent.
53 */
54 public WinLoss(int wins, int losses) {
55 this.wins = wins;
56 this.losses = losses;
57 }
58
59 public WinLoss() {
60 }
61
62 /** Get the numeric value of this WinLoss
63 * @return wins/losses, more or less
64 */
65 public double getValue() {
66 if (losses == 0)
67 return(wins*10);
68 if (wins == 0)
69 return(-losses);
70 return((double)wins/(double)losses);
71 }
72
73 /** Get the String value of this WinLoss
74 * @return "W-L"
75 */
76 public String toString() {
77 return("" + wins + "-" + losses);
78 }
79
80 /** Compare the value of this WinLoss with that one.
81 * @param o The other player to compare
82 */
83 @Override
84 public int compareTo(WinLoss o) {
85 if (this.getValue() < o.getValue())
86 return(-1);
87 if (this.getValue() > o.getValue())
88 return(1);
89 return(0);
90 }
91 }
92