From 3bd7d5a3af39738539d14b12c630b968a3bfa4b1 Mon Sep 17 00:00:00 2001 From: "U-LB\\chanwit" Date: Thu, 18 Sep 2008 14:14:36 +0700 Subject: [PATCH] added demo --- .../org/tspec/hangman/ExceedGuessException.java | 7 ++ demo/java/org/tspec/hangman/Hangman.java | 72 ++++++++++++++ demo/java/org/tspec/hangman/HangmanStory.groovy | 108 +++++++++++++++++++++ demo/java/org/tspec/stack/Stack.java | 31 ++++++ demo/java/org/tspec/stack/StackStory.groovy | 78 +++++++++++++++ 5 files changed, 296 insertions(+) create mode 100755 demo/java/org/tspec/hangman/ExceedGuessException.java create mode 100755 demo/java/org/tspec/hangman/Hangman.java create mode 100755 demo/java/org/tspec/hangman/HangmanStory.groovy create mode 100755 demo/java/org/tspec/stack/Stack.java create mode 100755 demo/java/org/tspec/stack/StackStory.groovy diff --git a/demo/java/org/tspec/hangman/ExceedGuessException.java b/demo/java/org/tspec/hangman/ExceedGuessException.java new file mode 100755 index 0000000..5645fe4 --- /dev/null +++ b/demo/java/org/tspec/hangman/ExceedGuessException.java @@ -0,0 +1,7 @@ +package org.tspec.hangman; + +public class ExceedGuessException extends Exception { + + private static final long serialVersionUID = 5383888046745415926L; + +} diff --git a/demo/java/org/tspec/hangman/Hangman.java b/demo/java/org/tspec/hangman/Hangman.java new file mode 100755 index 0000000..0b7df00 --- /dev/null +++ b/demo/java/org/tspec/hangman/Hangman.java @@ -0,0 +1,72 @@ +package org.tspec.hangman; + +import java.util.ArrayList; +import java.util.List; + +public class Hangman { + + private String word; + private int wrongs; + private int maxGuess; + private List unrevealedWord; + private boolean finished; + + public boolean isFinished() { + return finished; + } + + public List getUnrevealedWord() { + return unrevealedWord; + } + + public int getMaxGuess() { + return maxGuess; + } + + public String getWord() { + return word; + } + + public void setWord(String word) { + this.word = word; + unrevealedWord = new ArrayList(); + for(int i=0;i data = new ArrayList(); + + public void push(Object element) { + if(element == null) throw new RuntimeException(); + data.add(element); + } + + public Object pop() { + if(isEmpty()) throw new RuntimeException(); + return data.remove(data.size()-1); + } + + public Object peek() { + return data.get(data.size()-1); + } + + public int size() { + return data.size(); + } + + public boolean isEmpty() { + return data.size()==0; + } + +} diff --git a/demo/java/org/tspec/stack/StackStory.groovy b/demo/java/org/tspec/stack/StackStory.groovy new file mode 100755 index 0000000..72cc58e --- /dev/null +++ b/demo/java/org/tspec/stack/StackStory.groovy @@ -0,0 +1,78 @@ +package org.tspec.stack + +เรื่อง 'แสต็ก' + +อธิบาย 'เมื่อค่าว่างถูกวางเข้าไปยังแสต็กว่าง', { + กำหนดให้ 'แสต็กว่าง', { + stack = new Stack() + } + + เมื่อ 'ค่าว่างถูกใส่', { + pushnull = { + stack.push(null) + } + } + + แล้วควร 'มีการขว้างข้อผิดพลาด', { + รับรองว่าขว้าง RuntimeException, { + pushnull() + } + } + + และควร 'ที่แสต็กจะยังว่างอยู่', { + stack.empty.should == true + } +} + +อธิบาย 'เมื่อเมธอด pop ถูกเรียกตอนแสต็กว่าง', { + กำหนดให้ 'แสต็กว่าง',{ + stack = new Stack() + } + + เมื่อ 'เมธอด pop ถูกเรียก', { + popnull = { + stack.pop() + } + } + + แล้วควร 'มีการขว้างข้อผิดพลาด', { + รับรองว่าขว้าง RuntimeException, { + popnull() + } + } + + และควร 'ที่แสต็กจะยังว่างอยู่', { + stack.empty.should == true + } +} + +อธิบาย 'เมื่อมีการใส่ค่า 1 ลงในแสต็กว่าง', { + + กำหนดให้ 'แสต็กว่าง',{ + stack = new Stack() + } + + เมื่อ 'ค่า 1 ถูกใส่ลงในแสต็ก', { + push_value_1 = { + stack.push(1) + } + } + + แล้ว 'ค่าบนสุดของแสต็กควรจะมีค่า 1', { + push_value_1() + stack.peek().should == 1 + } + + และ 'แสต็กควรจะมีขนาดเป็น 1', { + stack.size().should == 1 + } + + และ 'เมื่อเรียก pop แล้วค่าที่ได้ควรเท่ากับ 1', { + stack.pop().should == 1 + } + + แล้ว 'หลังจากนั้นแสต็กควรว่าง', { + stack.empty.should == true + } +} + -- 2.11.4.GIT