GIMP import javafx.application.application; import javafx.scene.scene; import javafx.scene.canvas.canvas; import javafx.scene.canvas.graphicscontext;

Similar documents
(Java/FX ) Java CD Java version Java VC++ Python Ruby Java Java Eclipse Java Java 3 Java for Everyone 2 10 Java Midi Java JavaFX Shape Canvas C

cards.gif from Tkinter import * root = Tk() c0 = Canvas(root, width = 400, height = 300) c0.pack() image_data = PhotoImage(file = c1.gif ) c0.create_i

from Tkinter import * root = Tk() c0 = Canvas(root, width = 400, height = 300) c0.pack() image_data = PhotoImage(file = c1.gif ) c0.create_image(200,

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

新・明解Java入門

Java演習(4) -- 変数と型 --

K227 Java 2

2.2 Java C main Java main 2 C 6 C Java 3 C Java ( ) G101Hello.java G101Hello main G101Hello.java /* G101Hello */ class G101Hello { /* main */ public s

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

オブジェクト指向言語 Java 博士 ( 情報理工学 ) 小林貴訓博士 ( 工学 ) Htoo Htoo 共著工学博士大澤裕 コロナ社 コロナ社

: : : TSTank 2

I java A

2 static final int DO NOTHING ON CLOSE static final int HIDE ON CLOSE static final int DISPOSE ON CLOSE static final int EXIT ON CLOSE void setvisible

アルゴリズムとデータ構造1

// ステージを設定します stage.setscene(scene); stage.settitle(" キャンバス "); // ステージを表示します stage.show(); public static void main(string[] args) launch(args); キャンバス

3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World");

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

8 if switch for while do while 2

5 p Point int Java p Point Point p; p = new Point(); Point instance, p Point int 2 Point Point p = new Point(); p.x = 1; p.y = 2;

アルゴリズムとデータ構造1

解きながら学ぶJava入門編

HCI プログラミング 8 回目ボタン チェックボックス ラジオボタン 今日の講義で学ぶ内容 ボタンとアクションイベント ボタンのカスタマイズ チェックボックスとラジオボタン ボタンとアクションイベント 1 ボタンを配置してみましょう ボタンは ラベルと同じようにフォントやその色 画像の貼り付けなど

Java学習教材

ALG ppt

2 1 Web Java Android Java 1.2 6) Java Java 7) 6) Java Java (Swing, JavaFX) (JDBC) 7) OS 1.3 Java Java

A, K, Q, J, 10, 9, 8, 7, 6, 5, 4, 3,

IE6 2 BMI chapter1 Java 6 chapter2 Java 7 chapter3 for if 8 chapter4 : BMI 9 chapter5 Java GUI 10 chapter6 11 chapter7 BMI 12 chap

r02.dvi


Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

Java updated

グラフの探索 JAVA での実装

ユニット・テストの概要

10K pdf

r1.dvi

1: Preference Display 1 package sample. pref ; 2 3 import android. app. Activity ; 4 import android. content. Intent ; 5 import android. content. Shar


Assignment9_1.java

目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測

Microsoft Word - keisankigairon.ch doc

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

19 3!! (+) (>) (++) (+=) for while 3.1!! (20, 20) (1)(Blocks1.java) import javax.swing.japplet; import java.awt.graphics;

r3.dvi

アプレットの作成

226

text_08.dvi

「Android Studioではじめる 簡単Androidアプリ開発」正誤表

(Eclipse\202\305\212w\202\324Java2\215\374.pdf)

< F2D825282CC947B909482CC A815B83682E6A>

< F2D82518CC282CC D2E6A7464>

< F2D F B834E2E6A7464>

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

JavaプログラミングⅠ


I. (i) Foo public (A). javac Foo.java java Foo.class (C). javac Foo java Foo (ii)? (B). javac Foo.java java Foo (D). javac Foo java Foo.class (A). Jav

ALG2012-F.ppt

< F2D A839382CC906A2E6A7464>

明解Javaによるアルゴリズムとデータ構造

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr

Java講座

r3.dvi

Transcription:

(JavaFX ) JavaFX 2 1. 2 2. 52 3. A, K, Q, J, 10, 9, 8, 7, 6, 5, 4, 3, 2 4. 13 5. 6. 7. 8. 9. 13 10. 11. 12. Java.gif 1

GIMP import javafx.application.application; import javafx.scene.scene; import javafx.scene.canvas.canvas; import javafx.scene.canvas.graphicscontext; import javafx.scene.image.image; import javafx.scene.layout.vbox; import javafx.scene.paint.color; import javafx.stage.stage; public class Game extends Application { public static void main(final String... args) { launch(args); GraphicsContext g; @Override public void start(final Stage stage) { 2

VBox root = new VBox(); // Canvas cvs = new Canvas(400, 300); root.getchildren().add(cvs); this.g = cvs.getgraphicscontext2d(); Scene scene = new Scene(root, 400, 300, Color.WHITE); stage.setscene(scene); stage.show();// draw(); private void draw() { Image img = new Image("c1.gif"); g.drawimage(img, 50, 50); Eclipse 3

c1.gif Eclipse *.gif *.png Atom javac -encoding UTF-8 Game.java Game.java TeraPad Python Ruby Ruby/Tk Java Ruby Java VC++ Python JavaScript Ruby Java Lesson 6 Java 4

500 Java Java Python Java VC++, Python, JavaScript, Ruby Java C++ Java Card,,, A,2,3,4,5,6,7,8,9,10, J,Q,K import javafx.scene.image.image; public class Card { public String suit; public int rank; public Image image; public Image bkimage; Card(String suit, int rank, Image image, Image bkimage) { this.suit = suit; this.rank = rank; this.image = image; this.bkimage = bkimage; Card.java CardDeck import java.util.arraylist; import java.util.list; import javafx.scene.image.image; public class CardDeck { private List<Card> deck = new ArrayList<Card>(); public CardDeck() { Image backimage = new Image("b1fv.gif"); String[] suitstr = {"c", "d", "h", "s"; 5

for (String s: suitstr) { for (int r=1; r<=13; r++) { StringBuffer string = new StringBuffer(); string.append(s); if (r<=10) { string.append(string.valueof(r)); else if (r ==11) { string.append("j"); else if (r ==12) { string.append("q"); else if (r ==13) { string.append("k"); string.append(".gif"); Image image = new Image(string.toString()); Card card = new Card(s, r, image, backimage); deck.add(card); public Card getcard(int index) { return deck.get(index); public void shuffle() { int num = deck.size(); int pos; for (int count=0; count<num*5; count++) { pos = (int)(math.random()*num); Card pickedcard = (Card)deck.remove(pos); deck.add(pickedcard); public Card draw() { Card card = (Card)deck.remove(0); return card; CardDeck.java 52 Card shuffle() getcard(int index) draw() getcard(int index) draw() CardDeck Game 6

import javafx.application.application; import javafx.scene.scene; import javafx.scene.canvas.canvas; import javafx.scene.canvas.graphicscontext; import javafx.scene.image.image; import javafx.scene.layout.vbox; import javafx.scene.paint.color; import javafx.stage.stage; public class Game extends Application { public static void main(final String... args) { launch(args); GraphicsContext g; @Override public void start(final Stage stage) { VBox root = new VBox(); Canvas cvs = new Canvas(400, 300); root.getchildren().add(cvs); this.g = cvs.getgraphicscontext2d(); Scene scene = new Scene(root, 400, 300, Color.WHITE); stage.setscene(scene); stage.show(); draw(); private void draw() { CardDeck carddeck = new CardDeck(); Card card = carddeck.getcard(0); Image img = card.image; g.drawimage(img, 50, 50); Image bkimg = card.bkimage; g.drawimage(bkimg, 150, 50); carddeck.shuffle(); card = carddeck.draw(); img = card.image; g.drawimage(img, 50, 150); bkimg = card.bkimage; g.drawimage(bkimg, 150, 150); 7

Game Java Java Java 3 Java private List<Card> deck = new ArrayList<Card>(); Java Python Ruby Player Dealer User Player import java.util.arraylist; import java.util.list; public class Player { private List<Card> hand = null; public Player() { hand = new ArrayList<Card>(); 8

public void getcard(card card) { hand.add(card); public Card draw() { Card card = (Card)hand.remove(0); return card; Player.java Player Player Game public class Dealer extends Player { public Dealer() { super(); public class User extends Player{ public User() { super(); Game run() Dealer User 13 1000 600 import javafx.application.application; import javafx.scene.scene; import javafx.scene.canvas.canvas; import javafx.scene.canvas.graphicscontext; import javafx.scene.image.image; import javafx.scene.layout.vbox; import javafx.stage.stage; public class Game extends Application { public static void main(final String... args) { launch(args); 9

GraphicsContext g; Dealer dealer; User user; @Override public void start(final Stage stage) { VBox root = new VBox(); Canvas cvs = new Canvas(1000, 600); root.getchildren().add(cvs); this.g = cvs.getgraphicscontext2d(); Scene scene = new Scene(root); stage.setscene(scene); stage.show(); run(); private void run() { dealer = new Dealer(); user = new User(); CardDeck carddeck = new CardDeck(); carddeck.shuffle(); for (int i=0; i<13; i++) { dealer.getcard(carddeck.getcard(2*i)); user.getcard(carddeck.getcard(2*i+1)); for (int i=0; i<3; i++) { Card card = dealer.draw(); Image bkimg = card.bkimage; g.drawimage(bkimg, 100+200*i, 150); card = user.draw(); Image img = card.image; g.drawimage(img, 200+200*i, 150); 10

Dealer User display() Player import java.util.arraylist; import java.util.list; import javafx.scene.canvas.graphicscontext; public class Player { protected List<Card> hand = null; GraphicsContext gc; public Player(GraphicsContext g) { hand = new ArrayList<Card>(); this.gc = g; public void getcard(card card) { hand.add(card); public Card draw() { Card card = (Card)hand.remove(0); return card; 11

GraphicsContext gc Dealer import javafx.scene.canvas.graphicscontext; import javafx.scene.image.image; public class Dealer extends Player { public Dealer(GraphicsContext g) { super(g); public void display() { int len = hand.size(); for (int i=0; i<len; i++) { Card card = hand.get(i); Image bkimg = card.bkimage; gc.drawimage(bkimg, 45+72*i, 65); User import javafx.scene.canvas.graphicscontext; import javafx.scene.image.image; public class Dealer extends Player { public Dealer(GraphicsContext g) super(g); public void display() { int len = hand.size(); for (int i=0; i<len; i++) { Card card = hand.get(i); Image img = card.image; gc.drawimage(img, 45+72*i, 65); Game Game import javafx.application.application; import javafx.scene.scene; import javafx.scene.canvas.canvas; import javafx.scene.canvas.graphicscontext; 12

import javafx.scene.layout.vbox; import javafx.stage.stage; public class Game extends Application { public static void main(final String... args) { launch(args); GraphicsContext g; Dealer dealer; User user; @Override public void start(final Stage stage) { VBox root = new VBox(); Canvas cvs = new Canvas(1000, 600); root.getchildren().add(cvs); this.g = cvs.getgraphicscontext2d(); Scene scene = new Scene(root); stage.setscene(scene); stage.show(); run(); private void run() { dealer = new Dealer(g); user = new User(g); CardDeck carddeck = new CardDeck(); carddeck.shuffle(); for (int i=0; i<13; i++) { dealer.getcard(carddeck.getcard(2*i)); user.getcard(carddeck.getcard(2*i+1)); dealer.display(); user.display(); draw() run() 13

Stock import java.util.arraylist; import java.util.list; import javafx.scene.canvas.graphicscontext; import javafx.scene.image.image; public class Stock { protected List<Card> cards = null; GraphicsContext gc; public Stock(GraphicsContext g) { cards = new ArrayList<Card>(); this.gc = g; public void getcard(card card) { cards.add(card); public Card draw() { Card card = (Card)cards.remove(0); return card; public void display() { 14

int len = cards.size(); if (len > 0) { Card card = cards.get(0); Image img = card.image; gc.drawimage(img, 45, 265); Stock Game Game import javafx.application.application; import javafx.scene.scene; import javafx.scene.canvas.canvas; import javafx.scene.canvas.graphicscontext; import javafx.scene.layout.vbox; import javafx.stage.stage; public class Game extends Application { public static void main(final String... args) { launch(args); GraphicsContext g; Dealer dealer; User user; Stock stock; @Override public void start(final Stage stage) { VBox root = new VBox(); Canvas cvs = new Canvas(1000, 600); root.getchildren().add(cvs); this.g = cvs.getgraphicscontext2d(); Scene scene = new Scene(root); stage.setscene(scene); stage.show(); run(); private void run() { dealer = new Dealer(g); user = new User(g); stock = new Stock(g); 15

CardDeck carddeck = new CardDeck(); carddeck.shuffle(); for (int i=0; i<13; i++) { dealer.getcard(carddeck.getcard(2*i)); user.getcard(carddeck.getcard(2*i+1)); for (int i=26; i<52; i++) { stock.getcard(carddeck.getcard(i)); dealer.display(); user.display(); stock.display(); run() stock = new Stock(g); 16

java.lang.reflect.invocationtargetexception java NullPointerException stock Java import java.util.arraylist; import java.util.list; import javafx.scene.canvas.graphicscontext; public class GetCard { protected List<Card> cards = null; GraphicsContext gc; public GetCard(GraphicsContext g) { cards = new ArrayList<Card>(); 17

this.gc = g; public void getcard(card card) { cards.add(card); import javafx.scene.canvas.graphicscontext; import javafx.scene.image.image; public class DealerGetCard extends GetCard { public DealerGetCard(GraphicsContext g) { super(g); public void display() { int len = cards.size(); for (int i=0; i<len; i++) { Card card = cards.get(i); Image img = card.image; gc.drawimage(img, 45+18*i, 165); import javafx.scene.canvas.graphicscontext; import javafx.scene.image.image; public class UserGetCard extends GetCard { public UserGetCard(GraphicsContext g) { super(g); public void display() { int len = cards.size(); for (int i=0; i<len; i++) { Card card = cards.get(i); Image img = card.image; gc.drawimage(img, 45+18*i, 365); Game 18

public class Game extends Application { public static void main(final String... args) { launch(args); GraphicsContext g; Dealer dealer; User user; Stock stock; DealerGetCard dealergetcard; UserGetCard usergetcard; @Override public void start(final Stage stage) { VBox root = new VBox(); Canvas cvs = new Canvas(1000, 600); root.getchildren().add(cvs); this.g = cvs.getgraphicscontext2d(); Scene scene = new Scene(root); stage.setscene(scene); stage.show(); run(); private void run() { dealer = new Dealer(g); user = new User(g); stock = new Stock(g); dealergetcard = new DealerGetCard(g); usergetcard = new UserGetCard(g); CardDeck carddeck = new CardDeck(); carddeck.shuffle(); for (int i=0; i<13; i++) { dealer.getcard(carddeck.getcard(2*i)); user.getcard(carddeck.getcard(2*i+1)); for (int i=26; i<52; i++) { stock.getcard(carddeck.getcard(i)); for (int i=0; i<5; i++) { dealergetcard.getcard(dealer.draw()); usergetcard.getcard(user.draw()); 19

dealer.display(); user.display(); stock.display(); dealergetcard.display(); usergetcard.display(); import java.util.arraylist; import java.util.list; import javafx.scene.canvas.graphicscontext; import javafx.scene.image.image; public class LeadCard { protected List<Card> cards = null; GraphicsContext gc; public LeadCard(GraphicsContext g) { 20

cards = new ArrayList<Card>(); this.gc = g; public void getcard(card card) { cards.add(card); public void display() { int len = cards.size(); for (int i=0; i<len; i++) { Card card = cards.get(i); Image img = card.image; gc.drawimage(img, 145, 265); Game import javafx.application.application; import javafx.scene.scene; import javafx.scene.canvas.canvas; import javafx.scene.canvas.graphicscontext; import javafx.scene.layout.vbox; import javafx.stage.stage; public class Game extends Application { public static void main(final String... args) { launch(args); GraphicsContext g; Dealer dealer; User user; Stock stock; DealerGetCard dealergetcard; UserGetCard usergetcard; LeadCard leadcard; @Override public void start(final Stage stage) { VBox root = new VBox(); Canvas cvs = new Canvas(1000, 600); root.getchildren().add(cvs); 21

this.g = cvs.getgraphicscontext2d(); Scene scene = new Scene(root); stage.setscene(scene); stage.show(); run(); private void run() { dealer = new Dealer(g); user = new User(g); stock = new Stock(g); dealergetcard = new DealerGetCard(g); usergetcard = new UserGetCard(g); leadcard = new LeadCard(g); CardDeck carddeck = new CardDeck(); carddeck.shuffle(); for (int i=0; i<13; i++) { dealer.getcard(carddeck.getcard(2*i)); user.getcard(carddeck.getcard(2*i+1)); for (int i=26; i<52; i++) { stock.getcard(carddeck.getcard(i)); for (int i=0; i<5; i++) { dealergetcard.getcard(dealer.draw()); usergetcard.getcard(user.draw()); leadcard.getcard(dealer.draw()); dealer.display(); user.display(); stock.display(); dealergetcard.display(); usergetcard.display(); leadcard.display(); 22

Game import javafx.application.application; import javafx.scene.scene; import javafx.scene.canvas.canvas; import javafx.scene.canvas.graphicscontext; import javafx.scene.layout.vbox; import javafx.stage.stage; public class Game extends Application { public static void main(final String... args) { launch(args); GraphicsContext g; Dealer dealer; User user; Stock stock; DealerGetCard dealergetcard; UserGetCard usergetcard; 23

LeadCard leadcard; @Override public void start(final Stage stage) { VBox root = new VBox(); Canvas cvs = new Canvas(1000, 600); root.getchildren().add(cvs); this.g = cvs.getgraphicscontext2d(); Scene scene = new Scene(root); stage.setscene(scene); stage.show(); run(); private void run() { dealer = new Dealer(g); user = new User(g); stock = new Stock(g); dealergetcard = new DealerGetCard(g); usergetcard = new UserGetCard(g); leadcard = new LeadCard(g); CardDeck carddeck = new CardDeck(); carddeck.shuffle(); for (int i=0; i<13; i++) { dealer.getcard(carddeck.getcard(2*i)); user.getcard(carddeck.getcard(2*i+1)); for (int i=26; i<52; i++) { stock.getcard(carddeck.getcard(i)); dealer.display(); user.display(); stock.display(); dealergetcard.display(); usergetcard.display(); leadcard.display(); run() 24

Game run() g.setfont(new Font("courier", 40)); g.setfill(color.blue); g.settextalign(textalignment.center); g.filltext(" ", 400, 315); 25

Game start(stage pstage) this.g = cvs.getgraphicscontext2d(); cvs.setonmouseclicked((event)->{ buttonpressed(event.getx(), event.gety()); ); public void start(final Stage stage) { VBox root = new VBox(); Canvas cvs = new Canvas(1000, 600); root.getchildren().add(cvs); this.g = cvs.getgraphicscontext2d(); cvs.setonmouseclicked((event)->{ buttonpressed(event.getx(), event.gety()); ); Scene scene = new Scene(root); stage.setscene(scene); stage.show(); run(); 26

Game buttonpressed(double x, double y) void buttonpressed(double x, double y) { int index = -1; int pos = 45; for (int i=0; i<user.hand.size(); i++) { if (x>pos && x<pos+72 && y>465 && y<565) { index = i; break; pos += 72; if (index == -1) return; Card card = user.hand.remove(index); g.clearrect(0, 0, 1000, 600); Image img = card.image; g.drawimage(img, 345, 265); dealer.display(); user.display(); stock.display(); dealergetcard.display(); usergetcard.display(); leadcard.display(); 27

28

Dealer Player public Card draw() { Card card = (Card)hand.remove(0); return card; dealerplayp true false Card trump Dealer import javafx.scene.canvas.graphicscontext; import javafx.scene.image.image; public class Dealer extends Player { boolean dealerplayp; Card userlead; Card trump; public Dealer(GraphicsContext g) { super(g); public void display() { int len = hand.size(); for (int i=0; i<len; i++) { Card card = hand.get(i); Image bkimg = card.bkimage; gc.drawimage(bkimg, 45+72*i, 65); public void getwholead(boolean dealerplayp) { this.dealerplayp = dealerplayp; public void getuserlead(card card) { this.userlead = card; public void gettrump(card card) { this.trump = card; public Card draw() { 29

if (dealerplayp) { Card card = (Card)hand.remove(0); return card; else { String suit = userlead.suit; int len = hand.size(); for (int i=0; i<len; i++) { if (hand.get(i).suit == suit) { Card card = (Card)hand.remove(i); return card; Card card = (Card)hand.remove(0); return card; Game import javafx.application.application; import javafx.scene.scene; import javafx.scene.canvas.canvas; import javafx.scene.canvas.graphicscontext; import javafx.scene.image.image; import javafx.scene.layout.vbox; import javafx.scene.paint.color; import javafx.scene.text.font; import javafx.scene.text.textalignment; import javafx.stage.stage; public class Game extends Application { public static void main(final String... args) { launch(args); GraphicsContext g; Dealer dealer; User user; Stock stock; DealerGetCard dealergetcard; UserGetCard usergetcard; 30

LeadCard leadcard; boolean dealerplayp = false; Card trump; @Override public void start(final Stage stage) { VBox root = new VBox(); Canvas cvs = new Canvas(1000, 600); root.getchildren().add(cvs); this.g = cvs.getgraphicscontext2d(); cvs.setonmouseclicked((event)->{ buttonpressed(event.getx(), event.gety()); ); Scene scene = new Scene(root); stage.setscene(scene); stage.show(); run(); void buttonpressed(double x, double y) { int index = -1; int pos = 45; for (int i=0; i<user.hand.size(); i++) { if (x>pos && x<pos+72 && y>465 && y<565) { index = i; break; pos += 72; if (index == -1) return; Card card = user.hand.remove(index); dealer.getwholead(dealerplayp); dealer.getuserlead(card); g.clearrect(0, 0, 1000, 600); Image img = card.image; g.drawimage(img, 345, 265); Card drawcard = dealer.draw(); Image dealimg = drawcard.image; g.drawimage(dealimg, 445, 265); dealer.display(); user.display(); stock.display(); 31

dealergetcard.display(); usergetcard.display(); leadcard.display(); private void run() { dealerplayp = false; dealer = new Dealer(g); user = new User(g); stock = new Stock(g); dealergetcard = new DealerGetCard(g); usergetcard = new UserGetCard(g); leadcard = new LeadCard(g); CardDeck carddeck = new CardDeck(); carddeck.shuffle(); for (int i=0; i<13; i++) { dealer.getcard(carddeck.getcard(2*i)); user.getcard(carddeck.getcard(2*i+1)); for (int i=26; i<52; i++) { stock.getcard(carddeck.getcard(i)); trump = stock.cards.get(0); dealer.gettrump(trump); dealer.display(); user.display(); stock.display(); dealergetcard.display(); usergetcard.display(); leadcard.display(); g.setfont(new Font("courier", 40)); g.setfill(color.blue); g.settextalign(textalignment.center); g.filltext(" ", 400, 315); boolean dealerplayp = false; Card trump; buttonpressed(double x, double y) Card card = user.hand.remove(index); dealer.getwholead(dealerplayp); dealer.getuserlead(card); 32

g.clearrect(0, 0, 1000, 600); Image img = card.image; g.drawimage(img, 345, 265); Card drawcard = dealer.draw(); Image dealimg = drawcard.image; g.drawimage(dealimg, 445, 265); dealer.display(); user.display(); stock.display(); dealergetcard.display(); usergetcard.display(); leadcard.display(); run() dealerplayp = false; dealer.gettrump(trump); 33

Referee Game dealerwinp() public boolean dealerwinp(card usercard, Card dealercard) { if (usercard.suit == dealercard.suit) { if (dealercard.rank == 1) { return true; else if (usercard.rank == 1) { return false; else if (dealercard.rank > usercard.rank) { return true; else { return false; else if (dealercard.suit == trump.suit) { return true; else if (usercard.suit == trump.suit) { return false; else if (dealerplayp) { return true; else { return false; 34

dealergetcard dealer user usergetcard user dealer buttonpressed(double x, double y) void buttonpressed(double x, double y) { int index = -1; int pos = 45; for (int i=0; i<user.hand.size(); i++) { if (x>pos && x<pos+72 && y>465 && y<565) { index = i; break; pos += 72; if (index == -1) return; Card card = user.hand.remove(index); dealer.getwholead(dealerplayp); dealer.getuserlead(card); Card drawcard = dealer.draw(); if (dealerwinp(card, drawcard)) { dealergetcard.getcard(drawcard); dealergetcard.getcard(card); if (stock.cards.size() > 0) { dealer.getcard(stock.draw()); user.getcard(stock.draw()); else { usergetcard.getcard(drawcard); usergetcard.getcard(card); if (stock.cards.size() > 0) { user.getcard(stock.draw()); dealer.getcard(stock.draw()); g.clearrect(0, 0, 1000, 600); dealer.display(); user.display(); stock.display(); 35

dealergetcard.display(); usergetcard.display(); leadcard.display(); 36

g.setfont(new Font("courier", 40)); g.setfill(color.blue); g.settextalign(textalignment.center); g.filltext(" ", 400, 315); buttonpressed(double x, double y) dealerplayp buttonpressed(double x, double y) void buttonpressed(double x, double y) { int index = -1; int pos = 45; for (int i=0; i<user.hand.size(); i++) { if (x>pos && x<pos+72 && y>465 && y<565) { index = i; break; pos += 72; if (index == -1) return; if (dealerplayp == false) { Card card = user.hand.remove(index); dealer.getwholead(dealerplayp); dealer.getuserlead(card); Card drawcard = dealer.draw(); dealerwinp = dealerwinp(card, drawcard); if (dealerwinp) { dealergetcard.getcard(drawcard); dealergetcard.getcard(card); if (stock.cards.size() > 0) { dealer.getcard(stock.draw()); user.getcard(stock.draw()); dealerplayp = true; else { usergetcard.getcard(drawcard); usergetcard.getcard(card); 37

if (stock.cards.size() > 0) { user.getcard(stock.draw()); dealer.getcard(stock.draw()); dealerplayp = false; if (dealer.hand.size() == 0) { g.clearrect(0, 0, 1000, 600); dealer.display(); user.display(); stock.display(); dealergetcard.display(); usergetcard.display(); leadcard.display(); g.setfont(new Font("courier", 40)); g.setfill(color.blue); g.settextalign(textalignment.center); if (dealergetcard.cards.size() > usergetcard.cards.size()) { StringBuffer s = new StringBuffer(); s.append(string.valueof(usergetcard.cards.size()/2)); s.append(" vs. "); s.append(string.valueof(dealergetcard.cards.size()/2)); s.append(" "); g.filltext(s.tostring(), 400, 315); else if (dealergetcard.cards.size() < usergetcard.cards.size()) { StringBuffer s = new StringBuffer(); s.append(string.valueof(usergetcard.cards.size()/2)); s.append(" vs. "); s.append(string.valueof(dealergetcard.cards.size()/2)); s.append(" "); g.filltext(s.tostring(), 400, 315); else { StringBuffer s = new StringBuffer(); s.append(string.valueof(usergetcard.cards.size()/2)); s.append(" vs. "); s.append(string.valueof(dealergetcard.cards.size()/2)); s.append(" "); g.filltext(s.tostring(), 400, 315); return; 38

if (dealerwinp) { dealer.getwholead(dealerplayp); Card card = dealer.draw(); leadcard.getcard(card); g.clearrect(0, 0, 1000, 600); dealer.display(); user.display(); stock.display(); dealergetcard.display(); usergetcard.display(); leadcard.display(); g.setfont(new Font("courier", 40)); g.setfill(color.blue); g.settextalign(textalignment.center); g.filltext(" ", 400, 315); else { g.clearrect(0, 0, 1000, 600); dealer.display(); user.display(); stock.display(); dealergetcard.display(); usergetcard.display(); leadcard.display(); g.setfont(new Font("courier", 40)); g.setfill(color.blue); g.settextalign(textalignment.center); g.filltext(" ", 400, 315); 39

LeadCard import java.util.arraylist; import java.util.list; import javafx.scene.canvas.graphicscontext; import javafx.scene.image.image; public class LeadCard { protected List<Card> cards = null; GraphicsContext gc; public LeadCard(GraphicsContext g) { cards = new ArrayList<Card>(); this.gc = g; public void getcard(card card) { cards.add(card); public Card draw() { Card card = cards.remove(0); return card; public void display() { 40

int len = cards.size(); for (int i=0; i<len; i++) { Card card = cards.get(i); Image img = card.image; gc.drawimage(img, 145, 265); draw() legalp(card card) public boolean legalp(card card) { String suit = leadcard.cards.get(0).suit; if (card.suit == suit) { return true; int len = user.hand.size(); for (int i=0; i<len; i++) { if (user.hand.get(i).suit == suit) { return false; return true; buttonpressed(double x, double y) else { Card card = user.hand.get(index); if (legalp(card)) { Card card1 = user.hand.remove(index); Card card2 = leadcard.draw(); dealerwinp = dealerwinp(card1, card2); if (dealerwinp) { dealergetcard.getcard(card2); dealergetcard.getcard(card1); if (stock.cards.size() > 0) { dealer.getcard(stock.draw()); user.getcard(stock.draw()); dealerplayp = true; else { usergetcard.getcard(card2); usergetcard.getcard(card1); 41

if (stock.cards.size() > 0) { user.getcard(stock.draw()); dealer.getcard(stock.draw()); dealerplayp = false; else { Alert alert = new Alert(AlertType.INFORMATION); alert.settitle(" "); alert.setheadertext(null); StringBuffer string = new StringBuffer(); string.append(" "); Card card3 = leadcard.cards.get(0); switch(card3.suit) { case "c": string.append(" "); break; case "d": string.append(" "); break; case "h": string.append(" "); break; case "s": string.append(" "); break; string.append(" "); alert.setcontenttext(string.tostring()); alert.showandwait(); g.clearrect(0, 0, 1000, 600); dealer.display(); user.display(); stock.display(); dealergetcard.display(); usergetcard.display(); leadcard.display(); g.setfont(new Font("courier", 40)); g.setfill(color.blue); g.settextalign(textalignment.center); g.filltext(" ", 400, 315); return; void buttonpressed(double x, double y) { 42

int index = -1; int pos = 45; for (int i=0; i<user.hand.size(); i++) { if (x>pos && x<pos+72 && y>465 && y<565) { index = i; break; pos += 72; if (index == -1) return; if (dealerplayp == false) { Card card = user.hand.remove(index); dealer.getwholead(dealerplayp); dealer.getuserlead(card); Card drawcard = dealer.draw(); dealerwinp = dealerwinp(card, drawcard); if (dealerwinp) { dealergetcard.getcard(drawcard); dealergetcard.getcard(card); if (stock.cards.size() > 0) { dealer.getcard(stock.draw()); user.getcard(stock.draw()); dealerplayp = true; else { usergetcard.getcard(drawcard); usergetcard.getcard(card); if (stock.cards.size() > 0) { user.getcard(stock.draw()); dealer.getcard(stock.draw()); dealerplayp = false; else { Card card = user.hand.get(index); if (legalp(card)) { Card card1 = user.hand.remove(index); Card card2 = leadcard.draw(); dealerwinp = dealerwinp(card1, card2); if (dealerwinp) { dealergetcard.getcard(card2); 43

dealergetcard.getcard(card1); if (stock.cards.size() > 0) { dealer.getcard(stock.draw()); user.getcard(stock.draw()); dealerplayp = true; else { usergetcard.getcard(card2); usergetcard.getcard(card1); if (stock.cards.size() > 0) { user.getcard(stock.draw()); dealer.getcard(stock.draw()); dealerplayp = false; else { Alert alert = new Alert(AlertType.INFORMATION); alert.settitle(" "); alert.setheadertext(null); StringBuffer string = new StringBuffer(); string.append(" "); Card card3 = leadcard.cards.get(0); switch(card3.suit) { case "c": string.append(" "); break; case "d": string.append(" "); break; case "h": string.append(" "); break; case "s": string.append(" "); break; string.append(" "); alert.setcontenttext(string.tostring()); alert.showandwait(); g.clearrect(0, 0, 1000, 600); dealer.display(); user.display(); stock.display(); dealergetcard.display(); usergetcard.display(); leadcard.display(); g.setfont(new Font("courier", 40)); 44

g.setfill(color.blue); g.settextalign(textalignment.center); g.filltext(" ", 400, 315); return; if (dealer.hand.size() == 0) { g.clearrect(0, 0, 1000, 600); dealer.display(); user.display(); stock.display(); dealergetcard.display(); usergetcard.display(); leadcard.display(); g.setfont(new Font("courier", 40)); g.setfill(color.blue); g.settextalign(textalignment.center); if (dealergetcard.cards.size() > usergetcard.cards.size()) { StringBuffer s = new StringBuffer(); s.append(string.valueof(usergetcard.cards.size()/2)); s.append(" vs. "); s.append(string.valueof(dealergetcard.cards.size()/2)); s.append(" "); g.filltext(s.tostring(), 400, 315); else if (dealergetcard.cards.size() < usergetcard.cards.size()) { StringBuffer s = new StringBuffer(); s.append(string.valueof(usergetcard.cards.size()/2)); s.append(" vs. "); s.append(string.valueof(dealergetcard.cards.size()/2)); s.append(" "); g.filltext(s.tostring(), 400, 315); else { StringBuffer s = new StringBuffer(); s.append(string.valueof(usergetcard.cards.size()/2)); s.append(" vs. "); s.append(string.valueof(dealergetcard.cards.size()/2)); s.append(" "); g.filltext(s.tostring(), 400, 315); return; 45

if (dealerwinp) { dealer.getwholead(dealerplayp); Card card = dealer.draw(); leadcard.getcard(card); g.clearrect(0, 0, 1000, 600); dealer.display(); user.display(); stock.display(); dealergetcard.display(); usergetcard.display(); leadcard.display(); g.setfont(new Font("courier", 40)); g.setfill(color.blue); g.settextalign(textalignment.center); g.filltext(" ", 400, 315); else { g.clearrect(0, 0, 1000, 600); dealer.display(); user.display(); stock.display(); dealergetcard.display(); usergetcard.display(); leadcard.display(); g.setfont(new Font("courier", 40)); g.setfill(color.blue); g.settextalign(textalignment.center); g.filltext(" ", 400, 315); start(final Stage stage) public void start(final Stage stage) { VBox root = new VBox(); Canvas cvs = new Canvas(1000, 600); Button b1 = new Button(" "); b1.setonaction((event) -> { run(); ); root.getchildren().addall(cvs, b1); this.g = cvs.getgraphicscontext2d(); cvs.setonmouseclicked((event)->{ buttonpressed(event.getx(), event.gety()); 46

); Scene scene = new Scene(root); stage.setscene(scene); stage.show(); run(); run() private void run() { dealerplayp = false; dealer = new Dealer(g); user = new User(g); stock = new Stock(g); dealergetcard = new DealerGetCard(g); usergetcard = new UserGetCard(g); leadcard = new LeadCard(g); CardDeck carddeck = new CardDeck(); carddeck.shuffle(); for (int i=0; i<13; i++) { dealer.getcard(carddeck.getcard(2*i)); user.getcard(carddeck.getcard(2*i+1)); for (int i=26; i<52; i++) { stock.getcard(carddeck.getcard(i)); trump = stock.cards.get(0); dealer.gettrump(trump); g.clearrect(0, 0, 1000, 600); dealer.display(); user.display(); stock.display(); dealergetcard.display(); usergetcard.display(); leadcard.display(); g.setfont(new Font("courier", 40)); g.setfill(color.blue); g.settextalign(textalignment.center); g.filltext(" ", 400, 315); Ruby 47

48