Skip to content

Commit 3d3e298

Browse files
committed
Added Apache 2.0 License and Copyright info, added maven licensee plugin
1 parent 30aa7b7 commit 3d3e298

40 files changed

+10654
-10114
lines changed

LICENSE

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
Copyright 2004-2024 Brian Teeter
2+
3+
Licensed under the Apache License, Version 2.0 (the "License");
4+
you may not use this file except in compliance with the License.
5+
You may obtain a copy of the License at
6+
7+
http://www.apache.org/licenses/LICENSE-2.0
8+
9+
Unless required by applicable law or agreed to in writing, software
10+
distributed under the License is distributed on an "AS IS" BASIS,
11+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
See the License for the specific language governing permissions and
13+
limitations under the License.

README.md

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,43 @@
11
# Hold Em Analyzer
22
---
33

4-
The Hold Em Analyzer is a project that I created back in 2004-2006. I initially created this to help me do hand analisys for Texas Hold Em games. Back in that era I was playing a lot both online and in person and this helped me to learn the math odds of various situations.
4+
The Hold Em Analyzer is a project that I created back in 2004-2006. I initially created this to help me do hand analisys
5+
for Texas Hold Em games. Back in that era I was playing a lot both online and in person and this helped me to learn the
6+
math odds of various situations.
57

6-
The app uses Monte Carlo simulation to simulate the outcome of a hand. It does this by simulating the remaining cards in the deck and then running a number of iterations to determine the outcome of the hand. The more iterations you run, the more accurate the results will be. Back in 2006 the default settings on fast hardware would produce 10's of thousands of iterations - today its more like hundreds of thousands which produces pretty accurate outcome estimates.
8+
The app uses Monte Carlo simulation to simulate the outcome of a hand. It does this by simulating the remaining cards in
9+
the deck and then running a number of iterations to determine the outcome of the hand. The more iterations you run, the
10+
more accurate the results will be. Back in 2006 the default settings on fast hardware would produce 10's of thousands of
11+
iterations - today its more like hundreds of thousands which produces pretty accurate outcome estimates.
712

8-
I intentionally chose to do Monte Carlo simulation vs calculating outcomes because I wanted to have slight variance in output. Why? Because I intended to use this as the core of a bot and the slight randomness would make it harder to predict, detect and play against.
13+
I intentionally chose to do Monte Carlo simulation vs calculating outcomes because I wanted to have slight variance in
14+
output. Why? Because I intended to use this as the core of a bot and the slight randomness would make it harder to
15+
predict, detect and play against.
916

1017
## Tech Details:
1118
---
12-
This app is written in Java and was originally written in Java 1.4. It uses the Java Swing UI toolkit which was created way back at the beginning of Java's life.
19+
This app is written in Java and was originally written in Java 1.4. It uses the Java Swing UI toolkit which was created
20+
way back at the beginning of Java's life.
1321

14-
The UI is fairly simple and made to fit the 640x480 or 800x600 screens of the day.
22+
The UI is fairly simple and made to fit the 640x480 or 800x600 screens of the day.
1523

1624
## Required Build and Execution Tools
1725
---
1826

1927
### JDK 21
2028
---
21-
To build this project you will need to have a modern JDK installed. I have updated and tested this with JDK 21. You can download the JDK from Oracle's website or use OpenJDK.
29+
To build this project you will need to have a modern JDK installed. I have updated and tested this with JDK 21. You can
30+
download the JDK from Oracle's website or use OpenJDK.
2231

2332
### Maven:
2433
---
25-
You will also need to install maven, the widely used Java packaging, dependency and build tool.
34+
You will also need to install maven, the widely used Java packaging, dependency and build tool.
2635

2736

2837
## To Build and Run
2938
---
3039

31-
Clone this project to your local machine. Then navigate to the root of the project and run the following command:
40+
Clone this project to your local machine. Then navigate to the root of the project and run the following command:
3241

3342
```
3443
mvn clean install
@@ -40,12 +49,20 @@ Then after the build runs, you should be able to run the app with the following
4049
java -jar target/HoldEmAnalyzer-1.0-SNAPSHOT-jar-with-dependencies.jar
4150
```
4251

43-
That will bring up the UI and the rest should be self explanitory.
52+
That will bring up the UI and the rest should be self explanitory.
4453

4554

4655
## Features:
4756
---
4857

49-
This tool can do simple outcome analysis on a single hand or a it can compare two hands. You can also set the board to whatever cards you like, including no cards, the flop, turn, and river.
58+
This tool can do simple outcome analysis on a single hand or a it can compare two hands. You can also set the board to
59+
whatever cards you like, including no cards, the flop, turn, and river.
5060

51-
On the Settings screen you can adjust the "think" time of the simulation. The default is enough now to do pretty hundreds of thousands of iterations - so its probably adequate on todays hardware.
61+
On the Settings screen you can adjust the "think" time of the simulation. The default is enough now to do pretty
62+
hundreds of thousands of iterations - so its probably adequate on todays hardware.
63+
64+
## License
65+
66+
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
67+
68+
Copyright 2004-2024 - Brian Teeter.

license-header.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*
2+
* Copyright 2004-2024 - Brian Teeter
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/

pom.xml

Lines changed: 56 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@
2020
<artifactId>jfreechart</artifactId>
2121
<version>1.5.5</version>
2222
</dependency>
23+
<!-- https://mvnrepository.com/artifact/org.codehaus.mojo/license-maven-plugin -->
24+
<dependency>
25+
<groupId>org.codehaus.mojo</groupId>
26+
<artifactId>license-maven-plugin</artifactId>
27+
<version>2.5.0</version>
28+
</dependency>
29+
2330
</dependencies>
2431

2532
<build>
@@ -33,28 +40,55 @@
3340
<target>21</target>
3441
</configuration>
3542
</plugin>
36-
<plugin>
37-
<artifactId>maven-assembly-plugin</artifactId>
38-
<executions>
39-
<execution>
40-
<phase>package</phase>
41-
<goals>
42-
<goal>single</goal>
43-
</goals>
44-
</execution>
45-
</executions>
46-
<configuration>
47-
<archive>
48-
<manifest>
49-
<addClasspath>true</addClasspath>
50-
<mainClass>com.brianteeter.poker.utils.HoldEmAnalyzerApplication</mainClass>
51-
</manifest>
52-
</archive>
53-
<descriptorRefs>
54-
<descriptorRef>jar-with-dependencies</descriptorRef>
55-
</descriptorRefs>
56-
</configuration>
57-
</plugin>
43+
<plugin>
44+
<artifactId>maven-assembly-plugin</artifactId>
45+
<executions>
46+
<execution>
47+
<phase>package</phase>
48+
<goals>
49+
<goal>single</goal>
50+
</goals>
51+
</execution>
52+
</executions>
53+
<configuration>
54+
<archive>
55+
<manifest>
56+
<addClasspath>true</addClasspath>
57+
<mainClass>com.brianteeter.poker.utils.HoldEmAnalyzerApplication</mainClass>
58+
</manifest>
59+
</archive>
60+
<descriptorRefs>
61+
<descriptorRef>jar-with-dependencies</descriptorRef>
62+
</descriptorRefs>
63+
</configuration>
64+
</plugin>
65+
<plugin>
66+
<groupId>org.codehaus.mojo</groupId>
67+
<artifactId>license-maven-plugin</artifactId>
68+
<version>2.5.0</version>
69+
<configuration>
70+
<verbose>false</verbose>
71+
<addSvnKeyWords>true</addSvnKeyWords>
72+
</configuration>
73+
<executions>
74+
<execution>
75+
<id>first</id>
76+
<goals>
77+
<goal>update-file-header</goal>
78+
</goals>
79+
<phase>process-sources</phase>
80+
<configuration>
81+
<organizationName>Brian Teeter</organizationName>
82+
<inceptionYear>2004</inceptionYear>
83+
<licenseName>apache_v2</licenseName>
84+
<roots>
85+
<root>src/main/java</root>
86+
<root>src/test</root>
87+
</roots>
88+
</configuration>
89+
</execution>
90+
</executions>
91+
</plugin>
5892
</plugins>
5993

6094
</build>

0 commit comments

Comments
 (0)