Skip to content

Commit 85f2cb9

Browse files
author
Ivan Toshkov
committed
Initial commit
1 parent e6db416 commit 85f2cb9

File tree

4 files changed

+66
-0
lines changed

4 files changed

+66
-0
lines changed

.gitignore

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pom.xml
2+
*jar
3+
/lib/
4+
/classes/
5+
.lein-failures
6+
.lein-deps-sum

README

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# games
2+
3+
FIXME: write description
4+
5+
## Usage
6+
7+
FIXME: write
8+
9+
## License
10+
11+
Copyright (C) 2011 FIXME
12+
13+
Distributed under the Eclipse Public License, the same as Clojure.

project.clj

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
(defproject games "1.0.0-SNAPSHOT"
2+
:description "FIXME: write description"
3+
:dependencies [[org.clojure/clojure "1.2.1"]])

src/games/skeleton.clj

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
(ns games.skeleton
2+
(:import (javax.swing JPanel JFrame)
3+
(java.awt BasicStroke Color Dimension Graphics Graphics2D RenderingHints)
4+
(java.awt.geom AffineTransform Ellipse2D$Double)))
5+
6+
7+
(defn frame
8+
[content & {:keys [title size]
9+
:or {title "Untitled", size [300 300]}}]
10+
(doto (JFrame.)
11+
(.add content)
12+
(.setTitle title)
13+
(.setSize (first size) (second size))
14+
(.setLocationRelativeTo nil)
15+
(.setVisible true)))
16+
17+
18+
(defn skeleton []
19+
(doto (frame (JPanel.) :title "Skeleton" :size [600 200])
20+
(.setResizable false)))
21+
22+
23+
(defn donut-board []
24+
(proxy [JPanel]
25+
[]
26+
(paint [g]
27+
(proxy-super paint g)
28+
(doto g
29+
(.setRenderingHints {RenderingHints/KEY_ANTIALIASING RenderingHints/VALUE_ANTIALIAS_ON
30+
RenderingHints/KEY_RENDERING RenderingHints/VALUE_RENDER_QUALITY})
31+
(.setStroke (BasicStroke. 1))
32+
(.setColor Color/gray))
33+
34+
(let [size (.getSize this)
35+
w (/ (.getWidth size) 2)
36+
h (/ (.getHeight size) 2)
37+
e (Ellipse2D$Double. 0 0 80 130)]
38+
(doseq [deg (range 0 360 5)]
39+
(let [at (AffineTransform/getTranslateInstance w h)]
40+
(.rotate at (Math/toRadians deg))
41+
(.draw g (.createTransformedShape at e))))))))
42+
43+
(defn donut []
44+
(frame (donut-board) :title "Donut" :size [360 310]))

0 commit comments

Comments
 (0)