diff --git a/game/README.TXT b/game/README.TXT new file mode 100644 index 0000000..6ce527f --- /dev/null +++ b/game/README.TXT @@ -0,0 +1,12 @@ +------------------------------------------------------------------------ +这是这个工程的README文件,你可以在这里描述你的工程。告诉读者(某些对这个 +工程一无所知的人)所有他所需要知道的东西。你的说明通常至少应该包含以下几 +个部分: +------------------------------------------------------------------------ + +工程名: +工程的目标: +版本或者日期: +如何启动这个工程: +作者 +使用指南: diff --git a/game/card.class b/game/card.class new file mode 100644 index 0000000..f7cca9f Binary files /dev/null and b/game/card.class differ diff --git a/game/card.ctxt b/game/card.ctxt new file mode 100644 index 0000000..c13c717 --- /dev/null +++ b/game/card.ctxt @@ -0,0 +1,15 @@ +#BlueJ class context +comment0.target=card +comment0.text=\r\n\ Write\ a\ description\ of\ class\ card\ here.\r\n\ \r\n\ @author\ (your\ name)\ \r\n\ @version\ (a\ version\ number\ or\ a\ date)\r\n +comment1.params= +comment1.target=void\ act() +comment1.text=\r\n\ Act\ -\ do\ whatever\ the\ card\ wants\ to\ do.\ This\ method\ is\ called\ whenever\r\n\ the\ 'Act'\ or\ 'Run'\ button\ gets\ pressed\ in\ the\ environment.\r\n +comment2.params= +comment2.target=int\ getValue() +comment3.params= +comment3.target=boolean\ getFaceup() +comment4.params= +comment4.target=void\ turnFaceDown() +comment5.params=cardValue +comment5.target=card(int) +numComments=6 diff --git a/game/card.java b/game/card.java new file mode 100644 index 0000000..7a6063d --- /dev/null +++ b/game/card.java @@ -0,0 +1,59 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) +import java.util.*; +/** + * Write a description of class card here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class card extends Actor +{ + /** + * Act - do whatever the card wants to do. This method is called whenever + * the 'Act' or 'Run' button gets pressed in the environment. + */ + public void act() + { + // Add your action code here. + if(Greenfoot.mouseClicked(this)){ + if(!isFaceUp){ + setImage(faceUpImage); + isFaceUp = true; + } + } + + } + // 获取这张牌的点数 + public int getValue(){ + return value; + } + + // 获取这张牌是否已翻面 + public boolean getFaceup(){ + return isFaceUp; + } + + // 将牌翻成背面朝上 + public void turnFaceDown(){ + isFaceUp=false; + setImage(faceDownImage); + + } + + private int value = -1; //初始点数为-1,表示还没有生成确定的扑克牌。一旦生成了一张牌,其点数就不为-1 + private boolean isFaceUp = false; //isFaceUp=true,则牌正面朝上,否则背面朝上 + private GreenfootImage faceUpImage = null;//faceUpImage表示牌的正面图案文件 + private GreenfootImage faceDownImage = null;//faceDownImage表示牌的背面面图案文件 + + //Card类的构造方法 + public card(int cardValue) {//cardValue是构造一张Card对象时传入的牌的点数 + value = cardValue; + isFaceUp = false; //所有被构造的牌都是背面朝上的 + String fileName = "hearts" + value + ".png"; //根据牌点数匹配的正面图案文件名 + //生成牌的正面图像对象 + faceUpImage = new GreenfootImage(fileName.toLowerCase()); + faceDownImage = new GreenfootImage("blueflip.png"); + //生成牌的背面图案对象 + setImage(faceDownImage);//让牌背面朝上放在牌桌上 + } +} diff --git a/game/images/blueflip.png b/game/images/blueflip.png new file mode 100644 index 0000000..c116591 Binary files /dev/null and b/game/images/blueflip.png differ diff --git a/game/images/bluejoker.png b/game/images/bluejoker.png new file mode 100644 index 0000000..7b5fc69 Binary files /dev/null and b/game/images/bluejoker.png differ diff --git a/game/images/clubs1.png b/game/images/clubs1.png new file mode 100644 index 0000000..3ff8aa6 Binary files /dev/null and b/game/images/clubs1.png differ diff --git a/game/images/clubs10.png b/game/images/clubs10.png new file mode 100644 index 0000000..888cdd6 Binary files /dev/null and b/game/images/clubs10.png differ diff --git a/game/images/clubs11.png b/game/images/clubs11.png new file mode 100644 index 0000000..70c085b Binary files /dev/null and b/game/images/clubs11.png differ diff --git a/game/images/clubs12.png b/game/images/clubs12.png new file mode 100644 index 0000000..fd9d3b5 Binary files /dev/null and b/game/images/clubs12.png differ diff --git a/game/images/clubs13.png b/game/images/clubs13.png new file mode 100644 index 0000000..cf1f723 Binary files /dev/null and b/game/images/clubs13.png differ diff --git a/game/images/clubs2.png b/game/images/clubs2.png new file mode 100644 index 0000000..c46843a Binary files /dev/null and b/game/images/clubs2.png differ diff --git a/game/images/clubs3.png b/game/images/clubs3.png new file mode 100644 index 0000000..d9435b4 Binary files /dev/null and b/game/images/clubs3.png differ diff --git a/game/images/clubs4.png b/game/images/clubs4.png new file mode 100644 index 0000000..cc72540 Binary files /dev/null and b/game/images/clubs4.png differ diff --git a/game/images/clubs5.png b/game/images/clubs5.png new file mode 100644 index 0000000..451ac6a Binary files /dev/null and b/game/images/clubs5.png differ diff --git a/game/images/clubs6.png b/game/images/clubs6.png new file mode 100644 index 0000000..9293ed3 Binary files /dev/null and b/game/images/clubs6.png differ diff --git a/game/images/clubs7.png b/game/images/clubs7.png new file mode 100644 index 0000000..aca12f2 Binary files /dev/null and b/game/images/clubs7.png differ diff --git a/game/images/clubs8.png b/game/images/clubs8.png new file mode 100644 index 0000000..539f327 Binary files /dev/null and b/game/images/clubs8.png differ diff --git a/game/images/clubs9.png b/game/images/clubs9.png new file mode 100644 index 0000000..2228cec Binary files /dev/null and b/game/images/clubs9.png differ diff --git a/game/images/diamonds1.png b/game/images/diamonds1.png new file mode 100644 index 0000000..d98a7c4 Binary files /dev/null and b/game/images/diamonds1.png differ diff --git a/game/images/diamonds10.png b/game/images/diamonds10.png new file mode 100644 index 0000000..2dcf08e Binary files /dev/null and b/game/images/diamonds10.png differ diff --git a/game/images/diamonds11.png b/game/images/diamonds11.png new file mode 100644 index 0000000..2b98730 Binary files /dev/null and b/game/images/diamonds11.png differ diff --git a/game/images/diamonds12.png b/game/images/diamonds12.png new file mode 100644 index 0000000..465d962 Binary files /dev/null and b/game/images/diamonds12.png differ diff --git a/game/images/diamonds13.png b/game/images/diamonds13.png new file mode 100644 index 0000000..17ba2c2 Binary files /dev/null and b/game/images/diamonds13.png differ diff --git a/game/images/diamonds2.png b/game/images/diamonds2.png new file mode 100644 index 0000000..8278642 Binary files /dev/null and b/game/images/diamonds2.png differ diff --git a/game/images/diamonds3.png b/game/images/diamonds3.png new file mode 100644 index 0000000..5132549 Binary files /dev/null and b/game/images/diamonds3.png differ diff --git a/game/images/diamonds4.png b/game/images/diamonds4.png new file mode 100644 index 0000000..dd2418b Binary files /dev/null and b/game/images/diamonds4.png differ diff --git a/game/images/diamonds5.png b/game/images/diamonds5.png new file mode 100644 index 0000000..4bf1de9 Binary files /dev/null and b/game/images/diamonds5.png differ diff --git a/game/images/diamonds6.png b/game/images/diamonds6.png new file mode 100644 index 0000000..b21a3ee Binary files /dev/null and b/game/images/diamonds6.png differ diff --git a/game/images/diamonds7.png b/game/images/diamonds7.png new file mode 100644 index 0000000..8d97797 Binary files /dev/null and b/game/images/diamonds7.png differ diff --git a/game/images/diamonds8.png b/game/images/diamonds8.png new file mode 100644 index 0000000..48dbe15 Binary files /dev/null and b/game/images/diamonds8.png differ diff --git a/game/images/diamonds9.png b/game/images/diamonds9.png new file mode 100644 index 0000000..d5833b2 Binary files /dev/null and b/game/images/diamonds9.png differ diff --git a/game/images/hearts1.png b/game/images/hearts1.png new file mode 100644 index 0000000..534cf09 Binary files /dev/null and b/game/images/hearts1.png differ diff --git a/game/images/hearts10.png b/game/images/hearts10.png new file mode 100644 index 0000000..30f93d2 Binary files /dev/null and b/game/images/hearts10.png differ diff --git a/game/images/hearts11.png b/game/images/hearts11.png new file mode 100644 index 0000000..99d1ef3 Binary files /dev/null and b/game/images/hearts11.png differ diff --git a/game/images/hearts12.png b/game/images/hearts12.png new file mode 100644 index 0000000..f0f7d79 Binary files /dev/null and b/game/images/hearts12.png differ diff --git a/game/images/hearts13.png b/game/images/hearts13.png new file mode 100644 index 0000000..7274ece Binary files /dev/null and b/game/images/hearts13.png differ diff --git a/game/images/hearts2.png b/game/images/hearts2.png new file mode 100644 index 0000000..ed95e56 Binary files /dev/null and b/game/images/hearts2.png differ diff --git a/game/images/hearts3.png b/game/images/hearts3.png new file mode 100644 index 0000000..72a3bda Binary files /dev/null and b/game/images/hearts3.png differ diff --git a/game/images/hearts4.png b/game/images/hearts4.png new file mode 100644 index 0000000..30d06de Binary files /dev/null and b/game/images/hearts4.png differ diff --git a/game/images/hearts5.png b/game/images/hearts5.png new file mode 100644 index 0000000..a8a4236 Binary files /dev/null and b/game/images/hearts5.png differ diff --git a/game/images/hearts6.png b/game/images/hearts6.png new file mode 100644 index 0000000..5a26cbb Binary files /dev/null and b/game/images/hearts6.png differ diff --git a/game/images/hearts7.png b/game/images/hearts7.png new file mode 100644 index 0000000..1a99572 Binary files /dev/null and b/game/images/hearts7.png differ diff --git a/game/images/hearts8.png b/game/images/hearts8.png new file mode 100644 index 0000000..6e274b2 Binary files /dev/null and b/game/images/hearts8.png differ diff --git a/game/images/hearts9.png b/game/images/hearts9.png new file mode 100644 index 0000000..f649c8d Binary files /dev/null and b/game/images/hearts9.png differ diff --git a/game/images/porkboard.jpg b/game/images/porkboard.jpg new file mode 100644 index 0000000..3cc8e39 Binary files /dev/null and b/game/images/porkboard.jpg differ diff --git a/game/images/redflip.png b/game/images/redflip.png new file mode 100644 index 0000000..f4ef2b9 Binary files /dev/null and b/game/images/redflip.png differ diff --git a/game/images/redjoker.png b/game/images/redjoker.png new file mode 100644 index 0000000..51d4631 Binary files /dev/null and b/game/images/redjoker.png differ diff --git a/game/images/spades1.png b/game/images/spades1.png new file mode 100644 index 0000000..536a3be Binary files /dev/null and b/game/images/spades1.png differ diff --git a/game/images/spades10.png b/game/images/spades10.png new file mode 100644 index 0000000..66ea2f1 Binary files /dev/null and b/game/images/spades10.png differ diff --git a/game/images/spades11.png b/game/images/spades11.png new file mode 100644 index 0000000..ca08035 Binary files /dev/null and b/game/images/spades11.png differ diff --git a/game/images/spades12.png b/game/images/spades12.png new file mode 100644 index 0000000..f8d5deb Binary files /dev/null and b/game/images/spades12.png differ diff --git a/game/images/spades13.png b/game/images/spades13.png new file mode 100644 index 0000000..3072ea3 Binary files /dev/null and b/game/images/spades13.png differ diff --git a/game/images/spades2.png b/game/images/spades2.png new file mode 100644 index 0000000..ae7ba22 Binary files /dev/null and b/game/images/spades2.png differ diff --git a/game/images/spades3.png b/game/images/spades3.png new file mode 100644 index 0000000..c8d38f0 Binary files /dev/null and b/game/images/spades3.png differ diff --git a/game/images/spades4.png b/game/images/spades4.png new file mode 100644 index 0000000..2c93a21 Binary files /dev/null and b/game/images/spades4.png differ diff --git a/game/images/spades5.png b/game/images/spades5.png new file mode 100644 index 0000000..5cf3bcf Binary files /dev/null and b/game/images/spades5.png differ diff --git a/game/images/spades6.png b/game/images/spades6.png new file mode 100644 index 0000000..edc65b5 Binary files /dev/null and b/game/images/spades6.png differ diff --git a/game/images/spades7.png b/game/images/spades7.png new file mode 100644 index 0000000..ee77ee9 Binary files /dev/null and b/game/images/spades7.png differ diff --git a/game/images/spades8.png b/game/images/spades8.png new file mode 100644 index 0000000..b7446cb Binary files /dev/null and b/game/images/spades8.png differ diff --git a/game/images/spades9.png b/game/images/spades9.png new file mode 100644 index 0000000..273a1fe Binary files /dev/null and b/game/images/spades9.png differ diff --git a/game/project.greenfoot b/game/project.greenfoot new file mode 100644 index 0000000..daaf137 --- /dev/null +++ b/game/project.greenfoot @@ -0,0 +1,46 @@ +#Greenfoot project file +class.card.image=blueflip.png +class.table.image=porkboard.jpg +dependency1.from=table +dependency1.to=card +dependency1.type=UsesDependency +editor.fx.0.height=0 +editor.fx.0.width=0 +editor.fx.0.x=0 +editor.fx.0.y=0 +height=584 +package.numDependencies=1 +package.numTargets=2 +project.charset=UTF-8 +publish.hasSource=false +publish.locked=true +publish.longDesc= +publish.shortDesc= +publish.tags= +publish.title= +publish.url= +readme.height=60 +readme.name=@README +readme.width=49 +readme.x=10 +readme.y=10 +simulation.speed=50 +target1.height=70 +target1.name=card +target1.showInterface=false +target1.type=ClassTarget +target1.width=120 +target1.x=0 +target1.y=0 +target2.height=70 +target2.name=table +target2.showInterface=false +target2.type=ClassTarget +target2.width=120 +target2.x=0 +target2.y=0 +version=3.0.0 +width=828 +world.lastInstantiated=table +xPosition=271 +yPosition=119 diff --git a/game/table.class b/game/table.class new file mode 100644 index 0000000..25a40e0 Binary files /dev/null and b/game/table.class differ diff --git a/game/table.ctxt b/game/table.ctxt new file mode 100644 index 0000000..505a71a --- /dev/null +++ b/game/table.ctxt @@ -0,0 +1,9 @@ +#BlueJ class context +comment0.target=table +comment0.text=\r\n\ Write\ a\ description\ of\ class\ table\ here.\r\n\ \r\n\ @author\ (your\ name)\ \r\n\ @version\ (a\ version\ number\ or\ a\ date)\r\n +comment1.params= +comment1.target=table() +comment1.text=\r\n\ Constructor\ for\ objects\ of\ class\ table.\r\n\ \r\n +comment2.params= +comment2.target=void\ act() +numComments=3 diff --git a/game/table.java b/game/table.java new file mode 100644 index 0000000..76b4b82 --- /dev/null +++ b/game/table.java @@ -0,0 +1,68 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) +import java.util.*; +/** + * Write a description of class table here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class table extends World +{ + ArrayList cards=new ArrayList(); + /** + * Constructor for objects of class table. + * + */ + public table() + { + // Create a new world with 600x400 cells with a cell size of 1x1 pixels. + super(600, 400, 1); + for (int i=1; i<=5; i++) { //向集合cards中添加两组共10张5点以下的牌 + cards.add(new card(i)); + cards.add(new card(i)); + } + Collections.shuffle(cards); //集合类Collections的混排算法,用于打乱集合cards中牌的顺序 + int x=100, y=100; //牌桌上摆放牌的起点坐标 + for (int i=0; i<5; i++) { //用for循环依次在牌桌上摆放每排5张,共两排的扑克牌 + addObject(cards.get(i) , x, y); + addObject(cards.get(i+5) , x, y + cards.get(i).getImage().getHeight() + 20); + x += cards.get(i).getImage().getWidth()+20; + } + + } + public void act(){ + card card1 = null, card2 = null; + int count = 0; + int card1Value = 0, card2Value = 0; + for(int i = 0; i < cards.size(); i++){ + if(cards.get(i).getFaceup() == true){ + count++; + if(count == 1){ + card1 = cards.get(i); + card1Value = card1.getValue(); + } + if(count == 2){ + card2 = cards.get(i); + card2Value = card2.getValue(); + + if(card1Value == card2Value) + { + Greenfoot.delay(30); + + removeObject(card1); + removeObject(card2); + cards.remove(card1); + cards.remove(card2); + } + else{ + Greenfoot.delay(30); + card1.turnFaceDown(); + card2.turnFaceDown(); + } + } + } + + } + + } +}