SlideShare a Scribd company logo
1 of 48
Greenfoot 接龍(三)
  遊戲的邏輯與規則


      依瑪貓/楊士青
imacat@mail.imacat.idv.tw
       2012/6/29
「接龍遊戲—由上而下的物件導向程式設計」簡報由 依瑪貓╱楊士青 製作,
 以 創用CC Attribution-ShareAlike 3.0 Unported 授權條款 釋出。
自我介紹
依瑪貓╱楊士青
臺灣師範大學資訊教育研究所碩一研究生
Solitaire 接龍遊戲
Solitaire 接龍遊戲
請先回憶一下接龍怎
 麼玩。上網搜尋
 Solitaire Flash遊
 戲試玩,回憶一下
 。



rbell rbell@21cn.com. Solitaire. Retrieved from
http://www.thepcmanwebsite.com/media/flash_solitaire/
請開啟 solitaire-3 專案。
Solitaire 接龍遊戲
用滑鼠右鍵點各牌疊
 上方的頁角,看有
 哪些方法可以執行
 。
執行看看!
Solitaire 接龍遊戲
看看各個類別的說明
 文件,已經有哪些
 方法或工具?它們
 的用途是什麼?
想一想
移牌的方法都有了嗎
 ?
若沒有,還缺哪些移
 牌方法?
若都有了,有沒有什
 麼問題?
(本頁留白)
(請勿往後偷看)
移牌還有什麼問題?
移牌應該要有規則,不是隨便移都可以。
 現在隨便移都可以。移牌的行為定義好了,但是
  沒有定義規則。
暫存區應該要可以一次移多張牌。
 現在一次只能移一張牌。
想一想




移牌的規則是什麼呢?
(本頁留白)
(請勿往後偷看)
移牌的規則
若要移到暫存區…
 最上面的牌要已經翻開了。
 要和最上面的牌不同顏色,點數要小一點。
 若是空牌疊,則只限 K (點數 13 )。
若要移到歸整區…
 要和最上面的牌同花色,點數要多一點。
 若是空牌疊,則只限 A (點數 1 )。
撲克牌若要移到暫存區…
最上面的牌要已經翻開了。
要和最上面的牌不同顏色,點數要小一點。
若是空牌疊,則只限 K (點數 13 )。
WorkingPile 的
     isAcceptCard() 方法
在 WorkingPile 類別新增一個
 isAcceptCard() 方法(內容先為空),傳
 入值是要移過來的牌,回傳 boolean 是否
 接受移牌。
在所有牌疊
 ( FlippedPile 、 WorkingPile 、
 ResultPile )的 moveToWorking() 方法
 最前面,使用 WorkingPile 的
 isAcceptCard() 方法來判斷是否移牌。
WorkingPile 的
    isAcceptCard() 方法
試著自己實作看看 WorkingPile 的
 isAcceptCard() 方法!
(本頁留白)
(請勿往後偷看)
WorkingPile 的
                          isAcceptCard() 方法
public class WorkingPile extends Pile

{

    /**

     * 是否接受移入撲克牌?

     *

     * @param card 要移入的撲克牌

     * @return 是否接受移入撲克牌

     */

    public boolean isAcceptCard(Card card)

    {

          if (getSize() > 0) {

              if (getTopCard().isFaceUp() && card.isDifferentColorFrom(getTopCard()) && card.getValue() == getTopCard().getValue() - 1) {

                  return true;

              }

              return false;

          } else {

              if (card.getValue() == 13) {

                  return true;

              }

              return false;

          }

    }

}
在 moveToWorking() 中
加上用 isAcceptCard() 判斷
/**
* 把牌移到暫存區的撲克牌疊。
*
* @param index 暫存區的第幾疊牌 (0-6)
*/
public void moveToWorking(int index)
{
      Table table = (Table) getWorld();
      WorkingPile target = table.getWorkingPiles().get(index);
      if (target.isAcceptCard(getTopCard()))
      {
          Card card = takeTopCard();
          target.addCard(card);
      }
}
試著跑跑看,結果正不正確。
撲克牌若要移到歸整區…
要和最上面的牌同花色,點數要多一點。
若是空牌疊,則只限 A (點數 1 )。
ResultPile 的
   isAcceptCard() 方法
試著自己實作看看!
(本頁留白)
(請勿往後偷看)
ResultPile 的
                     isAcceptCard() 方法
public class ResultPile extends Pile

{

    /**

    * 是否接受移入撲克牌?

    *

    * @param card 要移入的撲克牌

    * @return 是否接受移入撲克牌

    */

    public boolean isAcceptCard(Card card) {

          if (getSize() > 0) {

              if (card.getSuit() == getTopCard().getSuit() && card.getValue() == getTopCard().getValue() + 1) {

                  return true;

              }

              return false;

          } else {

              if (card.getValue() == 1) {

                  return true;

              }

              return false;

          }

    }

}
在 moveToResult() 中
加上用 isAcceptCard() 判斷
/**
* 把牌移到歸整區的撲克牌疊。
*
* @param index 歸整區的第幾疊牌 (0-3)
*/
public void moveToResult(int index)
{
      Table table = (Table) getWorld();
      ResultPile target = table.getResultPiles().get(index);
      if (target.isAcceptCard(getTopCard()))
      {
          Card card = takeTopCard();
          target.addCard(card);
      }
}
試著跑跑看,結果正不正確。
想一想
我們的 FlippedPile 、 WorkingPile 、
 ResultPile 都有一模一樣的
 moveToWorking() 和 moveToResult()
 方法。每次要改就要改三次,不小心就很
 容易敲錯。有沒有什麼方法,可以更容易
 維護?
想一想
如果 WorkingPile 移動到同一疊
 WorkingPile ,或是 ResultPile 移動到同
 一疊 ResultPile ,會發生什麼事?實際實
 驗看看。
暫存區多牌移動
暫存區應該可以一次移動好幾張牌。一次移
 動好幾張牌時,有什麼規則?
(本頁留白)
(請勿往後偷看)
多牌移動的規則
只能由暫存區移動到暫存區。
從某一張牌起,之後的牌一起移動。
只能移動已翻開的牌。
移動起算的牌,和要移動過去的牌疊,要遵
 守前面的規則。
 移動起算的牌,和要移動過去的牌疊第一張牌,
  顏色要不同,點數要比它小一眼。
 要移過去的牌疊是空的時候,移動起算的牌只能
  是 K ( 13 點)。
多牌移動的規則
只能由暫存區移動到暫存區。
 所以我們只要動 WorkingPile 的
  moveToWorking() 方法即可。
多牌移動的規則
從某一張牌起,之後的牌一起移動。
 一點點陣列與迴圈的小考驗!
多牌移動的規則
只能移動已翻開的牌。
 我們只要檢查起算的牌即可,只要起算的牌已翻
  開,後面的牌是後來疊上去的,一定是已翻開
  的牌。
多牌移動的規則
移動起算的牌,和要移動過去的牌疊,要遵
 守前面的規則。
 可以套用前面寫的 isAcceptCard() 。
暫存區多牌移動
在 WorkingPile 加一個方法
 moveToWorking(int start, int
 index) 。
  和原來的 moveToWorking(int index) 不同,
   這次多一個參數 start 。
方法多載 (Overload)
上次我們提到方法重載 (override) ,也就是
 蓋掉父類別的方法,改用我們子類別自己
 的方法。
方法多載 (overload) :為簡化函式的命名問
 題,物件導向程式語言允許在不同的方法
 上,使用同一個名稱,只要參數不同即可
 。
 可以簡化同樣功能的方法的命名困擾。
方法多載 (Overload)
add:
 add(int, int)
 add(double, double)
 add(BigInteger, BigInteger)
moveToWorking:
 moveToWorking(int index)
 moveToWorking(int start, int index)
一點點陣列與迴圈的小考驗
如何按順序,抽掉從第 i 張到最後第 n-1 張
 的牌?
一點點陣列與迴圈的小考驗
 Source     Target

   …         …
              M
        i
  i+1
   …
   N

 Source     Target

   …         …

        i
            M+1
   …
  N-1
一點點陣列與迴圈的小考驗
每次抽掉第 i 張後,後面補上,所以下一次抽
 的還是第 i 張,只是總張數 N 減少了。
一直抽到沒得抽為止,所以是抽到 N<=i 停
 下來。
WorkingPile 的
moveToWorking(int,int) 方法
試著自己實作看看!
(本頁留白)
(請勿往後偷看)
暫存區多牌移動
public class WorkingPile extends Pile

{

    /**

     * 把多張牌移到暫存區的撲克牌疊。

     *
     * @param start 從第幾張牌開始

     * @param index 暫存區的第幾疊牌 (0-6)

     */

    public void moveToWorking(int start, int index)

    {

          Table table = (Table) getWorld();
          WorkingPile target = table.getWorkingPiles().get(index);

          if (getCard(start).isFaceUp() && target.isAcceptCard(getCard(start))) {

              while (start < getSize()) {

                  Card card = takeCard(start);

                  target.addCard(card);

              }

          }
    }

}
試著跑跑看,結果正不正確。
如果你上面的練習都做得正確,
程式應該會長得像 solitaire-4 一樣。
中場休息
歡迎提出問題

More Related Content

What's hot

Solitaire with Greenfoot #1
Solitaire with Greenfoot #1Solitaire with Greenfoot #1
Solitaire with Greenfoot #1imacat .
 
人机对弈编程概述
人机对弈编程概述人机对弈编程概述
人机对弈编程概述勇浩 赖
 
幾個 Rust std 內可能有用的小技巧
幾個 Rust std 內可能有用的小技巧幾個 Rust std 內可能有用的小技巧
幾個 Rust std 內可能有用的小技巧穎睿 梁
 
从问题开始,谈前端架构
从问题开始,谈前端架构从问题开始,谈前端架构
从问题开始,谈前端架构裕波 周
 
TensorFlow 深度學習講座
TensorFlow 深度學習講座TensorFlow 深度學習講座
TensorFlow 深度學習講座Mark Chang
 
Machine Learning Introduction
Machine Learning IntroductionMachine Learning Introduction
Machine Learning IntroductionMark Chang
 
TensorFlow 深度學習快速上手班--深度學習
 TensorFlow 深度學習快速上手班--深度學習 TensorFlow 深度學習快速上手班--深度學習
TensorFlow 深度學習快速上手班--深度學習Mark Chang
 
Num py basic(2) - v01
Num py   basic(2) - v01Num py   basic(2) - v01
Num py basic(2) - v01ssuser5e7722
 
EOS_2015_Fall Team1 - 拉亞計畫
EOS_2015_Fall  Team1 - 拉亞計畫EOS_2015_Fall  Team1 - 拉亞計畫
EOS_2015_Fall Team1 - 拉亞計畫nctusee
 
Arduino L2
Arduino L2Arduino L2
Arduino L2mmiwwcom
 

What's hot (20)

Solitaire with Greenfoot #1
Solitaire with Greenfoot #1Solitaire with Greenfoot #1
Solitaire with Greenfoot #1
 
Ch2 教學
Ch2 教學Ch2 教學
Ch2 教學
 
人机对弈编程概述
人机对弈编程概述人机对弈编程概述
人机对弈编程概述
 
幾個 Rust std 內可能有用的小技巧
幾個 Rust std 內可能有用的小技巧幾個 Rust std 內可能有用的小技巧
幾個 Rust std 內可能有用的小技巧
 
从问题开始,谈前端架构
从问题开始,谈前端架构从问题开始,谈前端架构
从问题开始,谈前端架构
 
Delta (rostock)
Delta (rostock)Delta (rostock)
Delta (rostock)
 
TENSORFLOW深度學習講座講義(很硬的課程)
TENSORFLOW深度學習講座講義(很硬的課程)TENSORFLOW深度學習講座講義(很硬的課程)
TENSORFLOW深度學習講座講義(很硬的課程)
 
Ch2
Ch2Ch2
Ch2
 
Ch10 習題
Ch10 習題Ch10 習題
Ch10 習題
 
Ch8 習題
Ch8 習題Ch8 習題
Ch8 習題
 
TensorFlow 深度學習講座
TensorFlow 深度學習講座TensorFlow 深度學習講座
TensorFlow 深度學習講座
 
Ch5 範例
Ch5 範例Ch5 範例
Ch5 範例
 
Machine Learning Introduction
Machine Learning IntroductionMachine Learning Introduction
Machine Learning Introduction
 
Pairing for beginneer
Pairing for beginneerPairing for beginneer
Pairing for beginneer
 
TensorFlow 深度學習快速上手班--深度學習
 TensorFlow 深度學習快速上手班--深度學習 TensorFlow 深度學習快速上手班--深度學習
TensorFlow 深度學習快速上手班--深度學習
 
Ch11 範例
Ch11 範例Ch11 範例
Ch11 範例
 
Num py basic(2) - v01
Num py   basic(2) - v01Num py   basic(2) - v01
Num py basic(2) - v01
 
Ch1 教學
Ch1 教學Ch1 教學
Ch1 教學
 
EOS_2015_Fall Team1 - 拉亞計畫
EOS_2015_Fall  Team1 - 拉亞計畫EOS_2015_Fall  Team1 - 拉亞計畫
EOS_2015_Fall Team1 - 拉亞計畫
 
Arduino L2
Arduino L2Arduino L2
Arduino L2
 

Viewers also liked

Crossing Office Applications
Crossing Office ApplicationsCrossing Office Applications
Crossing Office Applicationsimacat .
 
Applicant webinar ccpd final 05-29-12
Applicant webinar ccpd final 05-29-12Applicant webinar ccpd final 05-29-12
Applicant webinar ccpd final 05-29-12Brandon Williams
 
Trea1 joseluis garcía_azabarte
Trea1 joseluis garcía_azabarteTrea1 joseluis garcía_azabarte
Trea1 joseluis garcía_azabartejoseluisguitar
 
Samir rafla principles of cardiology pages 112 to end
Samir rafla principles of cardiology pages 112 to endSamir rafla principles of cardiology pages 112 to end
Samir rafla principles of cardiology pages 112 to endAlexandria University, Egypt
 
Lead Management in SugarCRM Series: Studio Configuration
Lead Management in SugarCRM Series: Studio ConfigurationLead Management in SugarCRM Series: Studio Configuration
Lead Management in SugarCRM Series: Studio ConfigurationAtcore Systems
 
Your Legacy: Impact or influence
Your Legacy: Impact or influenceYour Legacy: Impact or influence
Your Legacy: Impact or influencePaul Johnson
 
Video para ingles
Video para inglesVideo para ingles
Video para ingles7755
 
2011 Resolution - CRM overhaul
2011 Resolution - CRM overhaul2011 Resolution - CRM overhaul
2011 Resolution - CRM overhaulAtcore Systems
 

Viewers also liked (20)

Crossing Office Applications
Crossing Office ApplicationsCrossing Office Applications
Crossing Office Applications
 
Maria Løkke Rasmussen
Maria Løkke RasmussenMaria Løkke Rasmussen
Maria Løkke Rasmussen
 
25 sarah quistgaard_sjelborg
25 sarah quistgaard_sjelborg25 sarah quistgaard_sjelborg
25 sarah quistgaard_sjelborg
 
Ove Korsgaard - Medborgerskab og social poesi
Ove Korsgaard - Medborgerskab og social poesiOve Korsgaard - Medborgerskab og social poesi
Ove Korsgaard - Medborgerskab og social poesi
 
Applicant webinar ccpd final 05-29-12
Applicant webinar ccpd final 05-29-12Applicant webinar ccpd final 05-29-12
Applicant webinar ccpd final 05-29-12
 
Trea1 joseluis garcía_azabarte
Trea1 joseluis garcía_azabarteTrea1 joseluis garcía_azabarte
Trea1 joseluis garcía_azabarte
 
Future Markets
Future MarketsFuture Markets
Future Markets
 
Palle Eriksen hulbælter
Palle Eriksen hulbælterPalle Eriksen hulbælter
Palle Eriksen hulbælter
 
Samir rafla principles of cardiology pages 112 to end
Samir rafla principles of cardiology pages 112 to endSamir rafla principles of cardiology pages 112 to end
Samir rafla principles of cardiology pages 112 to end
 
Lead Management in SugarCRM Series: Studio Configuration
Lead Management in SugarCRM Series: Studio ConfigurationLead Management in SugarCRM Series: Studio Configuration
Lead Management in SugarCRM Series: Studio Configuration
 
Morten Theilmann Jørgensen - kongernes jelling og genstandene
Morten Theilmann Jørgensen - kongernes jelling og genstandeneMorten Theilmann Jørgensen - kongernes jelling og genstandene
Morten Theilmann Jørgensen - kongernes jelling og genstandene
 
النزيف المتدفق
النزيف المتدفقالنزيف المتدفق
النزيف المتدفق
 
28 Kirsten Christensen, Stubagerhus
28 Kirsten Christensen, Stubagerhus28 Kirsten Christensen, Stubagerhus
28 Kirsten Christensen, Stubagerhus
 
Your Legacy: Impact or influence
Your Legacy: Impact or influenceYour Legacy: Impact or influence
Your Legacy: Impact or influence
 
Video para ingles
Video para inglesVideo para ingles
Video para ingles
 
Karen Rysgaard, Danmarks længste jernalderhus i 2012?
Karen Rysgaard, Danmarks længste jernalderhus i 2012?Karen Rysgaard, Danmarks længste jernalderhus i 2012?
Karen Rysgaard, Danmarks længste jernalderhus i 2012?
 
2011 Resolution - CRM overhaul
2011 Resolution - CRM overhaul2011 Resolution - CRM overhaul
2011 Resolution - CRM overhaul
 
Mozilla Vakfı
Mozilla VakfıMozilla Vakfı
Mozilla Vakfı
 
Rikke Johansen - Tyve dage i viborg - en rejse, nystr 2012
Rikke Johansen - Tyve dage i viborg - en rejse, nystr 2012Rikke Johansen - Tyve dage i viborg - en rejse, nystr 2012
Rikke Johansen - Tyve dage i viborg - en rejse, nystr 2012
 
38 Trine Borake, Kalkbrænderovn
38 Trine Borake, Kalkbrænderovn38 Trine Borake, Kalkbrænderovn
38 Trine Borake, Kalkbrænderovn
 

Similar to Solitaire with Greenfoot #3

Solitaire with Greenfoot #2
Solitaire with Greenfoot #2Solitaire with Greenfoot #2
Solitaire with Greenfoot #2imacat .
 
Solitaire with Greenfoot #2/4
Solitaire with Greenfoot #2/4Solitaire with Greenfoot #2/4
Solitaire with Greenfoot #2/4imacat .
 
Object-Oriented Programming Design with Greenfoot 02
Object-Oriented Programming Design with Greenfoot 02Object-Oriented Programming Design with Greenfoot 02
Object-Oriented Programming Design with Greenfoot 02imacat .
 
第三章 栈和队列
第三章 栈和队列第三章 栈和队列
第三章 栈和队列Wang Yizhe
 
利用Javascript 與 html5開發線上遊戲_1骰子遊戲
利用Javascript 與 html5開發線上遊戲_1骰子遊戲利用Javascript 與 html5開發線上遊戲_1骰子遊戲
利用Javascript 與 html5開發線上遊戲_1骰子遊戲azole Lai
 

Similar to Solitaire with Greenfoot #3 (6)

Solitaire with Greenfoot #2
Solitaire with Greenfoot #2Solitaire with Greenfoot #2
Solitaire with Greenfoot #2
 
Solitaire with Greenfoot #2/4
Solitaire with Greenfoot #2/4Solitaire with Greenfoot #2/4
Solitaire with Greenfoot #2/4
 
Object-Oriented Programming Design with Greenfoot 02
Object-Oriented Programming Design with Greenfoot 02Object-Oriented Programming Design with Greenfoot 02
Object-Oriented Programming Design with Greenfoot 02
 
Maze Game
Maze GameMaze Game
Maze Game
 
第三章 栈和队列
第三章 栈和队列第三章 栈和队列
第三章 栈和队列
 
利用Javascript 與 html5開發線上遊戲_1骰子遊戲
利用Javascript 與 html5開發線上遊戲_1骰子遊戲利用Javascript 與 html5開發線上遊戲_1骰子遊戲
利用Javascript 與 html5開發線上遊戲_1骰子遊戲
 

More from imacat .

A Room of WikiWomen's Own
A Room of WikiWomen's OwnA Room of WikiWomen's Own
A Room of WikiWomen's Ownimacat .
 
Office寶可夢GO IV計算機
Office寶可夢GO IV計算機Office寶可夢GO IV計算機
Office寶可夢GO IV計算機imacat .
 
OpenOffice Application with Python
OpenOffice Application with PythonOpenOffice Application with Python
OpenOffice Application with Pythonimacat .
 
從doc、docx、odt到Google Docs
從doc、docx、odt到Google Docs從doc、docx、odt到Google Docs
從doc、docx、odt到Google Docsimacat .
 
More Girls – Creating a Community of Diversity
More Girls – Creating a Community of DiversityMore Girls – Creating a Community of Diversity
More Girls – Creating a Community of Diversityimacat .
 
Welcome to Apache OpenOffice 4
Welcome to Apache OpenOffice 4Welcome to Apache OpenOffice 4
Welcome to Apache OpenOffice 4imacat .
 
OpenOffice, Open Business
OpenOffice, Open BusinessOpenOffice, Open Business
OpenOffice, Open Businessimacat .
 
Multimedia Fun with OpenOffice Calc
Multimedia Fun with OpenOffice CalcMultimedia Fun with OpenOffice Calc
Multimedia Fun with OpenOffice Calcimacat .
 
Welcome to Apache OpenOffice 3.4 COSCUP 2012
Welcome to Apache OpenOffice 3.4 COSCUP 2012Welcome to Apache OpenOffice 3.4 COSCUP 2012
Welcome to Apache OpenOffice 3.4 COSCUP 2012imacat .
 
Mosaic Fun with OpenOffice Calc
Mosaic Fun with OpenOffice CalcMosaic Fun with OpenOffice Calc
Mosaic Fun with OpenOffice Calcimacat .
 
GNU Autoconf / Automake #4
GNU Autoconf / Automake #4GNU Autoconf / Automake #4
GNU Autoconf / Automake #4imacat .
 
GNU Autoconf / Automake #1
GNU Autoconf / Automake #1GNU Autoconf / Automake #1
GNU Autoconf / Automake #1imacat .
 
Welcome to Apache OpenOffice 3.4
Welcome to Apache OpenOffice 3.4Welcome to Apache OpenOffice 3.4
Welcome to Apache OpenOffice 3.4imacat .
 
OpenOffice UNO Application on Android
OpenOffice UNO Application on AndroidOpenOffice UNO Application on Android
OpenOffice UNO Application on Androidimacat .
 
OpenOffice.org Magic Sandbox
OpenOffice.org Magic SandboxOpenOffice.org Magic Sandbox
OpenOffice.org Magic Sandboximacat .
 
Mailing Lists and IRC
Mailing Lists and IRCMailing Lists and IRC
Mailing Lists and IRCimacat .
 
GNU Build System
GNU Build SystemGNU Build System
GNU Build Systemimacat .
 
patch和diff
patch和diffpatch和diff
patch和diffimacat .
 
OpenOffice.org UNO Magic
OpenOffice.org UNO MagicOpenOffice.org UNO Magic
OpenOffice.org UNO Magicimacat .
 

More from imacat . (20)

A Room of WikiWomen's Own
A Room of WikiWomen's OwnA Room of WikiWomen's Own
A Room of WikiWomen's Own
 
Office寶可夢GO IV計算機
Office寶可夢GO IV計算機Office寶可夢GO IV計算機
Office寶可夢GO IV計算機
 
OpenOffice Application with Python
OpenOffice Application with PythonOpenOffice Application with Python
OpenOffice Application with Python
 
從doc、docx、odt到Google Docs
從doc、docx、odt到Google Docs從doc、docx、odt到Google Docs
從doc、docx、odt到Google Docs
 
More Girls – Creating a Community of Diversity
More Girls – Creating a Community of DiversityMore Girls – Creating a Community of Diversity
More Girls – Creating a Community of Diversity
 
Welcome to Apache OpenOffice 4
Welcome to Apache OpenOffice 4Welcome to Apache OpenOffice 4
Welcome to Apache OpenOffice 4
 
OpenOffice, Open Business
OpenOffice, Open BusinessOpenOffice, Open Business
OpenOffice, Open Business
 
Multimedia Fun with OpenOffice Calc
Multimedia Fun with OpenOffice CalcMultimedia Fun with OpenOffice Calc
Multimedia Fun with OpenOffice Calc
 
Welcome to Apache OpenOffice 3.4 COSCUP 2012
Welcome to Apache OpenOffice 3.4 COSCUP 2012Welcome to Apache OpenOffice 3.4 COSCUP 2012
Welcome to Apache OpenOffice 3.4 COSCUP 2012
 
Mosaic Fun with OpenOffice Calc
Mosaic Fun with OpenOffice CalcMosaic Fun with OpenOffice Calc
Mosaic Fun with OpenOffice Calc
 
GNU Autoconf / Automake #4
GNU Autoconf / Automake #4GNU Autoconf / Automake #4
GNU Autoconf / Automake #4
 
GNU Autoconf / Automake #1
GNU Autoconf / Automake #1GNU Autoconf / Automake #1
GNU Autoconf / Automake #1
 
Welcome to Apache OpenOffice 3.4
Welcome to Apache OpenOffice 3.4Welcome to Apache OpenOffice 3.4
Welcome to Apache OpenOffice 3.4
 
OpenOffice UNO Application on Android
OpenOffice UNO Application on AndroidOpenOffice UNO Application on Android
OpenOffice UNO Application on Android
 
OpenOffice.org Magic Sandbox
OpenOffice.org Magic SandboxOpenOffice.org Magic Sandbox
OpenOffice.org Magic Sandbox
 
Mailing Lists and IRC
Mailing Lists and IRCMailing Lists and IRC
Mailing Lists and IRC
 
GNU Build System
GNU Build SystemGNU Build System
GNU Build System
 
patch和diff
patch和diffpatch和diff
patch和diff
 
OpenOffice.org UNO Magic
OpenOffice.org UNO MagicOpenOffice.org UNO Magic
OpenOffice.org UNO Magic
 
autoconf
autoconfautoconf
autoconf
 

Solitaire with Greenfoot #3