代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
河内塔
作者:
javas2s.com
/ 发布于
2011/4/26
/
479
<div> <div class="codeShade"> <font color="#7f0055"><b>import </b></font><font color="#000000">java.awt.*;</font> <font color="#7f0055"><b>import </b></font><font color="#000000">javax.swing.*;</font> <font color="#7f0055"><b>import </b></font><font color="#000000">no.geosoft.cc.graphics.*;</font> <font color="#3f5fbf">/**</font> <font color="#3f5fbf">* G demo program. Demonstrates:</font> <font color="#3f5fbf">*</font> <font color="#3f5fbf">* <ul></font> <font color="#3f5fbf">* <li>A sample game application</font> <font color="#3f5fbf">* <li>Graphics animation</font> <font color="#3f5fbf">* <li>GObject reparenting</font> <font color="#3f5fbf">* </ul></font> <font color="#3f5fbf">* </font> <font color="#3f5fbf">* </font><font color="#7f9fbf">@author </font><font color="#3f5fbf"><a href="mailto:jacob.dreyer@geosoft.no">Jacob Dreyer</a></font> <font color="#3f5fbf">*/ </font> <font color="#7f0055"><b>public class </b></font><font color="#000000">Demo14 </font><font color="#7f0055"><b>extends </b></font><font color="#000000">JFrame</font> <font color="#000000">{</font> <font color="#7f0055"><b>private </b></font><font color="#000000">TowersOfHanoi towersOfHanoi_;</font> <font color="#7f0055"><b>private </b></font><font color="#000000">GWindow window_;</font> <font color="#7f0055"><b>private </b></font><font color="#000000">Peg</font><font color="#000000">[] </font><font color="#000000">pegs_;</font> <font color="#7f0055"><b>private </b></font><font color="#7f0055"><b>int </b></font><font color="#000000">nDiscs_;</font> <font color="#7f0055"><b>private </b></font><font color="#000000">JButton startButton_;</font> <font color="#7f0055"><b>public </b></font><font color="#000000">Demo14 </font><font color="#000000">(</font><font color="#7f0055"><b>int </b></font><font color="#000000">nDiscs</font><font color="#000000">)</font> <font color="#000000">{</font> <font color="#7f0055"><b>super </b></font><font color="#000000">(</font><font color="#2a00ff">"G Graphics Library - Demo 14"</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">setDefaultCloseOperation </font><font color="#000000">(</font><font color="#000000">JFrame.EXIT_ON_CLOSE</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">nDiscs_ = nDiscs;</font> <font color="#3f7f5f">// Create the graphic canvas</font> <font color="#000000">window_ = </font><font color="#7f0055"><b>new </b></font><font color="#000000">GWindow </font><font color="#000000">(</font><font color="#7f0055"><b>new </b></font><font color="#000000">Color </font><font color="#000000">(</font><font color="#990000">200</font><font color="#000000">, </font><font color="#990000">230</font><font color="#000000">, </font><font color="#990000">200</font><font color="#000000">))</font><font color="#000000">;</font> <font color="#000000">getContentPane</font><font color="#000000">()</font><font color="#000000">.add </font><font color="#000000">(</font><font color="#000000">window_.getCanvas</font><font color="#000000">())</font><font color="#000000">;</font> <font color="#3f7f5f">// Create scene</font> <font color="#000000">GScene scene = </font><font color="#7f0055"><b>new </b></font><font color="#000000">GScene </font><font color="#000000">(</font><font color="#000000">window_</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#7f0055"><b>double </b></font><font color="#000000">w0</font><font color="#000000">[] </font><font color="#000000">= </font><font color="#000000">{</font><font color="#990000">0.0</font><font color="#000000">, </font><font color="#990000">0.0</font><font color="#000000">, </font><font color="#990000">0.0</font><font color="#000000">}</font><font color="#000000">;</font> <font color="#7f0055"><b>double </b></font><font color="#000000">w1</font><font color="#000000">[] </font><font color="#000000">= </font><font color="#000000">{</font><font color="#990000">4.0</font><font color="#000000">, </font><font color="#990000">0.0</font><font color="#000000">, </font><font color="#990000">0.0</font><font color="#000000">}</font><font color="#000000">;</font> <font color="#7f0055"><b>double </b></font><font color="#000000">w2</font><font color="#000000">[] </font><font color="#000000">= </font><font color="#000000">{</font><font color="#990000">0.0</font><font color="#000000">, nDiscs_ * </font><font color="#990000">2</font><font color="#000000">, </font><font color="#990000">0.0</font><font color="#000000">}</font><font color="#000000">;</font> <font color="#000000">scene.setWorldExtent </font><font color="#000000">(</font><font color="#000000">w0, w1, w2</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#3f7f5f">// Add title object and add to scene</font> <font color="#000000">scene.add </font><font color="#000000">(</font><font color="#7f0055"><b>new </b></font><font color="#000000">Title</font><font color="#000000">())</font><font color="#000000">;</font> <font color="#3f7f5f">// Create the 3 pegs and add to the scene</font> <font color="#7f0055"><b>int </b></font><font color="#000000">nPegs = </font><font color="#990000">3</font><font color="#000000">;</font> <font color="#000000">pegs_ = </font><font color="#7f0055"><b>new </b></font><font color="#000000">Peg</font><font color="#000000">[</font><font color="#000000">nPegs</font><font color="#000000">]</font><font color="#000000">;</font> <font color="#7f0055"><b>for </b></font><font color="#000000">(</font><font color="#7f0055"><b>int </b></font><font color="#000000">i = </font><font color="#990000">0</font><font color="#000000">; i < nPegs; i++</font><font color="#000000">) {</font> <font color="#000000">pegs_</font><font color="#000000">[</font><font color="#000000">i</font><font color="#000000">] </font><font color="#000000">= </font><font color="#7f0055"><b>new </b></font><font color="#000000">Peg </font><font color="#000000">(</font><font color="#000000">i + </font><font color="#990000">1.0</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">scene.add </font><font color="#000000">(</font><font color="#000000">pegs_</font><font color="#000000">[</font><font color="#000000">i</font><font color="#000000">])</font><font color="#000000">;</font> <font color="#000000">}</font> <font color="#3f7f5f">// Create the discs and add to the first peg</font> <font color="#7f0055"><b>for </b></font><font color="#000000">(</font><font color="#7f0055"><b>int </b></font><font color="#000000">i = </font><font color="#990000">0</font><font color="#000000">; i < nDiscs; i++</font><font color="#000000">) {</font> <font color="#000000">Disc disc = </font><font color="#7f0055"><b>new </b></font><font color="#000000">Disc </font><font color="#000000">((</font><font color="#7f0055"><b>double</b></font><font color="#000000">) (</font><font color="#000000">nDiscs - i</font><font color="#000000">) </font><font color="#000000">/ nDiscs</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">disc.setPosition </font><font color="#000000">(</font><font color="#990000">1.0</font><font color="#000000">, i</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">pegs_</font><font color="#000000">[</font><font color="#990000">0</font><font color="#000000">]</font><font color="#000000">.add </font><font color="#000000">(</font><font color="#000000">disc</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">}</font> <font color="#000000">pack</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#000000">setSize </font><font color="#000000">(</font><font color="#7f0055"><b>new </b></font><font color="#000000">Dimension </font><font color="#000000">(</font><font color="#990000">500</font><font color="#000000">, </font><font color="#990000">500</font><font color="#000000">))</font><font color="#000000">;</font> <font color="#000000">setVisible </font><font color="#000000">(</font><font color="#7f0055"><b>true</b></font><font color="#000000">)</font><font color="#000000">;</font> <font color="#3f7f5f">// Create the puzzle and execute the solution</font> <font color="#000000">towersOfHanoi_ = </font><font color="#7f0055"><b>new </b></font><font color="#000000">TowersOfHanoi</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#000000">towersOfHanoi_.solve</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#000000">}</font> <font color="#7f0055"><b>public </b></font><font color="#7f0055"><b>void </b></font><font color="#000000">discMoved </font><font color="#000000">(</font><font color="#7f0055"><b>int </b></font><font color="#000000">source, </font><font color="#7f0055"><b>int </b></font><font color="#000000">destination</font><font color="#000000">)</font> <font color="#000000">{</font> <font color="#3f7f5f">// This is the disc to move</font> <font color="#000000">Disc disc = </font><font color="#000000">(</font><font color="#000000">Disc</font><font color="#000000">) </font><font color="#000000">pegs_</font><font color="#000000">[</font><font color="#000000">source</font><font color="#000000">]</font><font color="#000000">.getChild </font><font color="#000000">(</font><font color="#000000">pegs_</font><font color="#000000">[</font><font color="#000000">source</font><font color="#000000">]</font><font color="#000000">.getNChildren</font><font color="#000000">()</font><font color="#000000">-</font><font color="#990000">1</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#7f0055"><b>double </b></font><font color="#000000">y0 = disc.getY</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#7f0055"><b>double </b></font><font color="#000000">y1 = nDiscs_ + </font><font color="#990000">4.0</font><font color="#000000">;</font> <font color="#7f0055"><b>double </b></font><font color="#000000">x0 = pegs_</font><font color="#000000">[</font><font color="#000000">source</font><font color="#000000">]</font><font color="#000000">.getX</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#7f0055"><b>double </b></font><font color="#000000">x1 = pegs_</font><font color="#000000">[</font><font color="#000000">destination</font><font color="#000000">]</font><font color="#000000">.getX</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#3f7f5f">// Animate vertical up movement</font> <font color="#7f0055"><b>double </b></font><font color="#000000">step = </font><font color="#990000">0.2</font><font color="#000000">;</font> <font color="#7f0055"><b>double </b></font><font color="#000000">y = y0;</font> <font color="#7f0055"><b>while </b></font><font color="#000000">(</font><font color="#000000">y < y1</font><font color="#000000">) {</font> <font color="#000000">disc.setPosition </font><font color="#000000">(</font><font color="#000000">x0, y</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">disc.redraw</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#000000">window_.refresh</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#000000">y += step;</font> <font color="#000000">}</font> <font color="#3f7f5f">// Reparent peg</font> <font color="#000000">pegs_</font><font color="#000000">[</font><font color="#000000">source</font><font color="#000000">]</font><font color="#000000">.remove </font><font color="#000000">(</font><font color="#000000">disc</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">pegs_</font><font color="#000000">[</font><font color="#000000">destination</font><font color="#000000">]</font><font color="#000000">.add </font><font color="#000000">(</font><font color="#000000">disc</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#3f7f5f">// Animate horizontal movement</font> <font color="#000000">step = </font><font color="#990000">0.05</font><font color="#000000">;</font> <font color="#7f0055"><b>double </b></font><font color="#000000">x = x0;</font> <font color="#7f0055"><b>while </b></font><font color="#000000">(</font><font color="#000000">x != x1</font><font color="#000000">) {</font> <font color="#000000">disc.setPosition </font><font color="#000000">(</font><font color="#000000">x, y</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">disc.redraw</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#000000">window_.refresh</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#000000">x += </font><font color="#000000">(</font><font color="#000000">x1 > x0 ? step : -step</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#7f0055"><b>if </b></font><font color="#000000">(</font><font color="#000000">Math.abs </font><font color="#000000">(</font><font color="#000000">x - x1</font><font color="#000000">) </font><font color="#000000">< </font><font color="#990000">0.01</font><font color="#000000">) </font><font color="#000000">x = x1;</font> <font color="#000000">}</font> <font color="#3f7f5f">// Animate vertical down movement</font> <font color="#000000">step = </font><font color="#990000">0.2</font><font color="#000000">;</font> <font color="#000000">y = y1;</font> <font color="#000000">y1 = pegs_</font><font color="#000000">[</font><font color="#000000">destination</font><font color="#000000">]</font><font color="#000000">.getNChildren</font><font color="#000000">() </font><font color="#000000">- </font><font color="#990000">1</font><font color="#000000">;</font> <font color="#7f0055"><b>while </b></font><font color="#000000">(</font><font color="#000000">y > y1</font><font color="#000000">) {</font> <font color="#7f0055"><b>if </b></font><font color="#000000">(</font><font color="#000000">Math.abs </font><font color="#000000">(</font><font color="#000000">y - y1</font><font color="#000000">) </font><font color="#000000">< </font><font color="#990000">0.01</font><font color="#000000">) </font><font color="#000000">y = y1;</font> <font color="#000000">disc.setPosition </font><font color="#000000">(</font><font color="#000000">x, y</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">disc.redraw</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#000000">window_.refresh</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#000000">y -= step;</font> <font color="#000000">}</font> <font color="#000000">}</font> <font color="#3f5fbf">/**</font> <font color="#3f5fbf">* Graphics object for canvas title.</font> <font color="#3f5fbf">*/</font> <font color="#7f0055"><b>class </b></font><font color="#000000">Title </font><font color="#7f0055"><b>extends </b></font><font color="#000000">GObject</font> <font color="#000000">{</font> <font color="#7f0055"><b>private </b></font><font color="#000000">GSegment anchor_;</font> <font color="#7f0055"><b>public </b></font><font color="#000000">Title</font><font color="#000000">()</font> <font color="#000000">{</font> <font color="#000000">GStyle style = </font><font color="#7f0055"><b>new </b></font><font color="#000000">GStyle</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#000000">style.setLineStyle </font><font color="#000000">(</font><font color="#000000">GStyle.LINESTYLE_INVISIBLE</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">style.setForegroundColor </font><font color="#000000">(</font><font color="#7f0055"><b>new </b></font><font color="#000000">Color </font><font color="#000000">(</font><font color="#990000">100</font><font color="#000000">, </font><font color="#990000">100</font><font color="#000000">, </font><font color="#990000">200</font><font color="#000000">))</font><font color="#000000">;</font> <font color="#000000">style.setFont </font><font color="#000000">(</font><font color="#7f0055"><b>new </b></font><font color="#000000">Font </font><font color="#000000">(</font><font color="#2a00ff">"serif"</font><font color="#000000">, Font.PLAIN, </font><font color="#990000">36</font><font color="#000000">))</font><font color="#000000">;</font> <font color="#000000">setStyle </font><font color="#000000">(</font><font color="#000000">style</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">anchor_ = </font><font color="#7f0055"><b>new </b></font><font color="#000000">GSegment</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#000000">addSegment </font><font color="#000000">(</font><font color="#000000">anchor_</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">GText text = </font><font color="#7f0055"><b>new </b></font><font color="#000000">GText </font><font color="#000000">(</font><font color="#2a00ff">"Towers of Hanoi"</font><font color="#000000">, GPosition.SOUTHEAST</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">anchor_.setText </font><font color="#000000">(</font><font color="#000000">text</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">}</font> <font color="#7f0055"><b>public </b></font><font color="#7f0055"><b>void </b></font><font color="#000000">draw</font><font color="#000000">()</font> <font color="#000000">{</font> <font color="#000000">anchor_.setGeometry </font><font color="#000000">(</font><font color="#990000">20</font><font color="#000000">, </font><font color="#990000">20</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">}</font> <font color="#000000">}</font> <font color="#3f5fbf">/**</font> <font color="#3f5fbf">* Graphics representation of a peg.</font> <font color="#3f5fbf">*/</font> <font color="#7f0055"><b>class </b></font><font color="#000000">Peg </font><font color="#7f0055"><b>extends </b></font><font color="#000000">GObject</font> <font color="#000000">{</font> <font color="#7f0055"><b>private </b></font><font color="#7f0055"><b>double </b></font><font color="#000000">x_;</font> <font color="#7f0055"><b>private </b></font><font color="#000000">GSegment peg_;</font> <font color="#7f0055"><b>private </b></font><font color="#7f0055"><b>double</b></font><font color="#000000">[] </font><font color="#000000">xy_;</font> <font color="#7f0055"><b>public </b></font><font color="#000000">Peg </font><font color="#000000">(</font><font color="#7f0055"><b>double </b></font><font color="#000000">x</font><font color="#000000">)</font> <font color="#000000">{</font> <font color="#000000">x_ = x;</font> <font color="#000000">GStyle style = </font><font color="#7f0055"><b>new </b></font><font color="#000000">GStyle</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#000000">style.setBackgroundColor </font><font color="#000000">(</font><font color="#7f0055"><b>new </b></font><font color="#000000">Color </font><font color="#000000">(</font><font color="#990000">100</font><font color="#000000">, </font><font color="#990000">100</font><font color="#000000">, </font><font color="#990000">100</font><font color="#000000">))</font><font color="#000000">;</font> <font color="#000000">setStyle </font><font color="#000000">(</font><font color="#000000">style</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">peg_ = </font><font color="#7f0055"><b>new </b></font><font color="#000000">GSegment</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#000000">addSegment </font><font color="#000000">(</font><font color="#000000">peg_</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">xy_ = </font><font color="#7f0055"><b>new </b></font><font color="#7f0055"><b>double</b></font><font color="#000000">[] {</font><font color="#000000">x_ - </font><font color="#990000">0.05</font><font color="#000000">, </font><font color="#990000">0.0</font><font color="#000000">,</font> <font color="#000000">x_ - </font><font color="#990000">0.05</font><font color="#000000">, nDiscs_ + </font><font color="#990000">2</font><font color="#000000">,</font> <font color="#000000">x_ + </font><font color="#990000">0.05</font><font color="#000000">, nDiscs_ + </font><font color="#990000">2</font><font color="#000000">,</font> <font color="#000000">x_ + </font><font color="#990000">0.05</font><font color="#000000">, </font><font color="#990000">0.0</font><font color="#000000">,</font> <font color="#000000">x_ - </font><font color="#990000">0.05</font><font color="#000000">, </font><font color="#990000">0.0</font><font color="#000000">}</font><font color="#000000">;</font> <font color="#000000">}</font> <font color="#7f0055"><b>public </b></font><font color="#7f0055"><b>double </b></font><font color="#000000">getX</font><font color="#000000">()</font> <font color="#000000">{</font> <font color="#7f0055"><b>return </b></font><font color="#000000">x_;</font> <font color="#000000">}</font> <font color="#7f0055"><b>public </b></font><font color="#7f0055"><b>void </b></font><font color="#000000">draw</font><font color="#000000">()</font> <font color="#000000">{</font> <font color="#000000">peg_.setGeometryXy </font><font color="#000000">(</font><font color="#000000">xy_</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">}</font> <font color="#000000">}</font> <font color="#3f5fbf">/**</font> <font color="#3f5fbf">* Graphics representation of a disc.</font> <font color="#3f5fbf">*/</font> <font color="#7f0055"><b>class </b></font><font color="#000000">Disc </font><font color="#7f0055"><b>extends </b></font><font color="#000000">GObject</font> <font color="#000000">{</font> <font color="#7f0055"><b>private </b></font><font color="#7f0055"><b>double </b></font><font color="#000000">size_;</font> <font color="#7f0055"><b>private </b></font><font color="#000000">GSegment disc_;</font> <font color="#7f0055"><b>private </b></font><font color="#7f0055"><b>double </b></font><font color="#000000">x_, y_;</font> <font color="#7f0055"><b>public </b></font><font color="#000000">Disc </font><font color="#000000">(</font><font color="#7f0055"><b>double </b></font><font color="#000000">size</font><font color="#000000">)</font> <font color="#000000">{</font> <font color="#000000">size_ = size;</font> <font color="#000000">GStyle style = </font><font color="#7f0055"><b>new </b></font><font color="#000000">GStyle</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#000000">style.setForegroundColor </font><font color="#000000">(</font><font color="#7f0055"><b>new </b></font><font color="#000000">Color </font><font color="#000000">(</font><font color="#990000">255</font><font color="#000000">, </font><font color="#990000">0</font><font color="#000000">, </font><font color="#990000">0</font><font color="#000000">))</font><font color="#000000">;</font> <font color="#000000">style.setBackgroundColor </font><font color="#000000">(</font><font color="#7f0055"><b>new </b></font><font color="#000000">Color </font><font color="#000000">(</font><font color="#990000">255</font><font color="#000000">, </font><font color="#990000">150</font><font color="#000000">, </font><font color="#990000">150</font><font color="#000000">))</font><font color="#000000">;</font> <font color="#000000">setStyle </font><font color="#000000">(</font><font color="#000000">style</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">disc_ = </font><font color="#7f0055"><b>new </b></font><font color="#000000">GSegment</font><font color="#000000">()</font><font color="#000000">;</font> <font color="#000000">addSegment </font><font color="#000000">(</font><font color="#000000">disc_</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">}</font> <font color="#7f0055"><b>public </b></font><font color="#7f0055"><b>void </b></font><font color="#000000">setPosition </font><font color="#000000">(</font><font color="#7f0055"><b>double </b></font><font color="#000000">x, </font><font color="#7f0055"><b>double </b></font><font color="#000000">y</font><font color="#000000">)</font> <font color="#000000">{</font> <font color="#000000">x_ = x;</font> <font color="#000000">y_ = y;</font> <font color="#000000">}</font> <font color="#7f0055"><b>public </b></font><font color="#7f0055"><b>double </b></font><font color="#000000">getY</font><font color="#000000">()</font> <font color="#000000">{</font> <font color="#7f0055"><b>return </b></font><font color="#000000">y_;</font> <font color="#000000">}</font> <font color="#7f0055"><b>public </b></font><font color="#7f0055"><b>void </b></font><font color="#000000">draw</font><font color="#000000">()</font> <font color="#000000">{</font> <font color="#7f0055"><b>double</b></font><font color="#000000">[] </font><font color="#000000">xy = </font><font color="#7f0055"><b>new </b></font><font color="#7f0055"><b>double</b></font><font color="#000000">[] {</font><font color="#000000">x_ - size_ / </font><font color="#990000">2.0</font><font color="#000000">, y_,</font> <font color="#000000">x_ - size_ / </font><font color="#990000">2.0</font><font color="#000000">, y_ + </font><font color="#990000">1.0</font><font color="#000000">,</font> <font color="#000000">x_ + size_ / </font><font color="#990000">2.0</font><font color="#000000">, y_ + </font><font color="#990000">1.0</font><font color="#000000">,</font> <font color="#000000">x_ + size_ / </font><font color="#990000">2.0</font><font color="#000000">, y_,</font> <font color="#000000">x_ - size_ / </font><font color="#990000">2.0</font><font color="#000000">, y_</font><font color="#000000">}</font><font color="#000000">;</font> <font color="#000000">disc_.setGeometryXy </font><font color="#000000">(</font><font color="#000000">xy</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">}</font> <font color="#000000">}</font> <font color="#3f5fbf">/**</font> <font color="#3f5fbf">* Class for solving the "Towers of Hanoi" puzzle.</font> <font color="#3f5fbf">*/ </font> <font color="#7f0055"><b>class </b></font><font color="#000000">TowersOfHanoi</font> <font color="#000000">{</font> <font color="#7f0055"><b>public </b></font><font color="#7f0055"><b>void </b></font><font color="#000000">solve</font><font color="#000000">()</font> <font color="#000000">{</font> <font color="#000000">solve </font><font color="#000000">(</font><font color="#000000">nDiscs_, </font><font color="#990000">0</font><font color="#000000">, </font><font color="#990000">2</font><font color="#000000">, </font><font color="#990000">1</font><font color="#000000">)</font><font color="#000000">; </font> <font color="#000000">}</font> <font color="#7f0055"><b>private </b></font><font color="#7f0055"><b>void </b></font><font color="#000000">solve </font><font color="#000000">(</font><font color="#7f0055"><b>int </b></font><font color="#000000">nDiscs, </font><font color="#7f0055"><b>int </b></font><font color="#000000">source, </font><font color="#7f0055"><b>int </b></font><font color="#000000">destination, </font><font color="#7f0055"><b>int </b></font><font color="#000000">auxiliary</font><font color="#000000">)</font> <font color="#000000">{</font> <font color="#7f0055"><b>if </b></font><font color="#000000">(</font><font color="#000000">nDiscs == </font><font color="#990000">1</font><font color="#000000">)</font> <font color="#000000">discMoved </font><font color="#000000">(</font><font color="#000000">source, destination</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#7f0055"><b>else if </b></font><font color="#000000">(</font><font color="#000000">nDiscs > </font><font color="#990000">1</font><font color="#000000">) {</font> <font color="#000000">solve </font><font color="#000000">(</font><font color="#000000">nDiscs - </font><font color="#990000">1</font><font color="#000000">, source, auxiliary, destination</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">discMoved </font><font color="#000000">(</font><font color="#000000">source, destination</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">solve </font><font color="#000000">(</font><font color="#000000">nDiscs - </font><font color="#990000">1</font><font color="#000000">, auxiliary, destination, source</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">}</font> <font color="#000000">}</font> <font color="#000000">}</font> <font color="#7f0055"><b>public static </b></font><font color="#7f0055"><b>void </b></font><font color="#000000">main </font><font color="#000000">(</font><font color="#000000">String</font><font color="#000000">[] </font><font color="#000000">args</font><font color="#000000">)</font> <font color="#000000">{</font> <font color="#7f0055"><b>int </b></font><font color="#000000">nDiscs = </font><font color="#990000">8</font><font color="#000000">;</font> <font color="#000000">Demo14 demo = </font><font color="#7f0055"><b>new </b></font><font color="#000000">Demo14 </font><font color="#000000">(</font><font color="#000000">nDiscs</font><font color="#000000">)</font><font color="#000000">;</font> <font color="#000000">}</font> <font color="#000000">}</font> </div> </div>
试试其它关键字
河内塔
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
javas2s.com
贡献的其它代码
(
3
)
.
php在线生成ico代码
.
河内塔
.
定时器的动画
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3