Help for simple JAVA game

I am having trouble with a JAVA blackjack game I have been making for a school project and it completely stupifies me.

When I run it and it comes to the point were it should calculate your winning or loses it comes up with completely redicules numbers.

I want to appolagies for the messy programming but I'm new to this.

so if someone could please tel me what is happening.

source code:import java.awt.*;

import java.applet.*;

import java.awt.event.*;

publicclass BlackJack_1extends Applet

{

int cardtype = 0;

int cardnum = 0;

int i = 0;

int dealscr = 0;

int playscr = 0;

int geld = 250;

int inzet = 0;

int money = 0;

String card, cardtype1;

Button deal, kaartK, dubbel, staan ;

Image[] kaart =new Image[14];

boolean dealbj, playbj, dubbelb, dubwin, dubver, win, ver;

TextField InzetVak;

publicvoid init()

{

deal =new Button(" Deal ");

deal.addActionListener(new KnopHandler());

add( deal );

kaartK =new Button(" Kaart ");

kaartK.addActionListener(new KaartHandler());

add( kaartK );

dubbel =new Button(" Dubbel ");

dubbel.addActionListener(new dubbelHandler());

add( dubbel );

staan =new Button(" Staan ");

staan.addActionListener(new staanHandler());

add( staan );

InzetVak =new TextField( 10 );

add( InzetVak );

setBackground(new Color(0,128,0) );

}

publicvoid paint( Graphics g )

{

g.drawString(" geld: " + geld, 50, 50);

g.drawString(" inzet: " + inzet, 50, 60);

g.drawString(" " + i, 50, 70);

g.drawString(" " + dealscr, 50, 80);

g.drawString(" " + playscr, 50, 90);

if(dealbj ==true)

{

g.drawString("Dealer Black Jack", 150, 80);

geld = geld - inzet;

DisableKnop();

// WinVerlies(inzet, geld);

}

elseif(playbj ==true)

{

g.drawString("Player Black Jack", 150, 90);

inzet = inzet * 2;

geld = geld + inzet;

DisableKnop();

//WinVerlies(inzet, geld);

}

elseif(dubwin ==true)

{

g.drawString("Player Dubbel Win", 150, 90);

inzet = inzet * 2;

geld = geld + inzet;

DisableKnop();

}

elseif(dubver ==true)

{

g.drawString("Player Dubbel Verlies", 150, 90);

inzet = inzet * 2;

geld = geld - inzet;

DisableKnop();

}

elseif(win ==true)

{

g.drawString("Player Win", 150, 90);

geld =+ inzet;

DisableKnop();

}

elseif(ver ==true)

{

g.drawString("Player Verlies", 150, 90);

geld = geld- inzet;

DisableKnop();

}

g.drawImage( kaart[0], 100, 100, 71, 96,this);

g.drawImage( kaart[1], 172, 100, 71, 96,this);

g.drawImage( kaart[2], 100, 200, 71, 96,this);

g.drawImage( kaart[3], 172, 200, 71, 96,this);

g.drawImage( kaart[4], 244, 200, 71, 96,this);

g.drawImage( kaart[5], 316, 200, 71, 96,this);

g.drawImage( kaart[6], 388, 200, 71, 96,this);

g.drawImage( kaart[7], 460, 200, 71, 96,this);

g.drawImage( kaart[8], 532, 200, 71, 96,this);

g.drawImage( kaart[9], 244, 100, 71, 96,this);

g.drawImage( kaart[10], 316, 100, 71, 96,this);

g.drawImage( kaart[11], 388, 100, 71, 96,this);

g.drawImage( kaart[12], 460, 100, 71, 96,this);

g.drawImage( kaart[13], 532, 100, 71, 96,this);

g.drawString("dealbj " + dealbj, 50, 350);

g.drawString("playbj " + playbj, 50, 360);

g.drawString("dubwin " + dubwin, 50, 370);

g.drawString("dubver " + dubver, 50, 380);

g.drawString("win" + win, 50, 390);

g.drawString("ver" + ver, 50, 400);

g.drawString("dubbelb" + dubbelb, 50, 410);

}

class KnopHandlerimplements ActionListener

{

publicvoid actionPerformed( ActionEvent e )

{

String inzetString = InzetVak.getText();

inzet = Integer.parseInt( inzetString );

LeegRij();

i = 0;

dealscr = 0;

playscr = 0;

WinCond();

for(int p=0; p<=3; p++)

{

cardtype = (int) ( 4 * Math.random() + 1);

cardnum = (int) ( 13 * Math.random() + 1);

cardtype1 ="";

switch(cardtype)

{

case 1: cardtype1 ="s";

break;

case 2: cardtype1 ="h";

break;

case 3: cardtype1 ="d";

break;

case 4: cardtype1 ="c";

break;

}

card = cardtype1 +"" + cardnum;

kaart[p] = getImage( getDocumentBase(),"cards_gif/"+ card +".gif" );

i=4;

if(dealscr <= 10 && cardnum == 1 && p <= 1)

{

cardnum = 11;

}

elseif(cardnum > 10)

{

cardnum = 10;

}

elseif(playscr <= 10 && cardnum == 1 && p>=2)

{

cardnum = 11;

}

elseif(cardnum > 10)

{

cardnum = 10;

}

if(p<=1)

{

dealscr = dealscr + cardnum;

}

else

{

playscr = playscr + cardnum;

}

if(dealscr == 21)

{

dealbj =true;

}

elseif(playscr == 21)

{

playbj =true;

}

kaartK.setEnabled(true );

dubbel.setEnabled(true );

staan.setEnabled(true );

repaint();

}

}

}

class KaartHandlerimplements ActionListener

{

publicvoid actionPerformed( ActionEvent e )

{

dubbel.setEnabled(false );

if( playscr <= 21 )

{

PlayTurn(i);

i++;

}

}

}

class dubbelHandlerimplements ActionListener

{

publicvoid actionPerformed( ActionEvent e )

{

if( playscr <= 21 )

{

PlayTurn(i);

i++;

DisableKnop();

DealTurn(i);

dubbelb =true;

}

}

}

class staanHandlerimplements ActionListener

{

publicvoid actionPerformed( ActionEvent e )

{

DisableKnop();

DealTurn(i);

}

}

publicvoid DisableKnop()

{

kaartK.setEnabled(false );

dubbel.setEnabled(false );

staan.setEnabled(false );

}

publicvoid DealTurn(int i )

{

while( i < 9 )

{

kaart[i] = getImage( getDocumentBase(),"cards_gif/blank.gif" );

i++;

}

while( dealscr < playscr && dealscr < 21 && playscr <= 21)

{

cardtype = (int) ( 4 * Math.random() + 1);

cardnum = (int) ( 13 * Math.random() + 1);

cardtype1 ="";

switch(cardtype)

{

case 1: cardtype1 ="s";

break;

case 2: cardtype1 ="h";

break;

case 3: cardtype1 ="d";

break;

case 4: cardtype1 ="c";

break;

}

card = cardtype1 +"" + cardnum;

if(dealscr <= 10 && cardnum == 1 && i >= 9)

{

cardnum = 11;

}

elseif(cardnum > 10)

{

cardnum = 10;

}

dealscr = dealscr + cardnum;

kaart[i] = getImage( getDocumentBase(),"cards_gif/"+ card +".gif" );

i++;

repaint();

}

if( dubbelb ==true )

{

if(dealscr < playscr && playscr <= 21)

{

dubwin =true;

}

elseif(dealscr > 21 && playscr <= 21)

{

dubwin =true;

}

else

{

dubver =true;

}

}

elseif( dubbelb ==false )

{

if(dealscr < playscr && playscr <= 21)

{

win =true;

}

elseif(dealscr > 21 && playscr <= 21)

{

win =true;

}

else

{

ver =true;

}

}

repaint();

}

publicvoid PlayTurn(int i )

{

cardtype = (int) ( 4 * Math.random() + 1);

cardnum = (int) ( 13 * Math.random() + 1);

cardtype1 ="";

switch(cardtype)

{

case 1: cardtype1 ="s";

break;

case 2: cardtype1 ="h";

break;

case 3: cardtype1 ="d";

break;

case 4: cardtype1 ="c";

break;

}

card = cardtype1 +"" + cardnum;

if(playscr <= 10 && cardnum == 1 && i <=8)

{

cardnum = 11;

}

elseif(cardnum > 10)

{

cardnum = 10;

}

playscr = playscr + cardnum;

kaart[i] = getImage( getDocumentBase(),"cards_gif/"+ card +".gif" );

if( playscr >= 21 )

{

ver =true;

DisableKnop();

}

repaint();

}

publicvoid LeegRij()

{

for(int q=0; q<=13; q++ )

{

kaart[q] = getImage( getDocumentBase(),"cards_gif/blank.gif" );

}

}

publicvoid WinCond()

{

dealbj =false;

playbj =false;

dubwin =false;

dubver =false;

win =false;

ver =false;

dubbelb =false;

}

}

[19131 byte] By [Les1984a] at [2007-10-2 14:21:05]
# 1
You have your geld calculation and inzet manipulation in your paint() method--get it out of there and only use paint() as a way of refreshing the image on the screen.
morgalra at 2007-7-13 12:39:07 > top of Java-index,Other Topics,Java Game Development...
# 2
If you want to know why, put a System.out.println("running paint");in your project.
morgalra at 2007-7-13 12:39:07 > top of Java-index,Other Topics,Java Game Development...
# 3
Who's your teacher, someone I know does that project?The key to biulding a video game is good oop. It will make this much quicker and eaiser to code and debug. I don't have enough time right now to search through your code right now.
Seltesa at 2007-7-13 12:39:07 > top of Java-index,Other Topics,Java Game Development...
# 4

> Who's your teacher, someone I know does that

> project?

>

> The key to biulding a video game is good oop. It will

> make this much quicker and eaiser to code and debug.

> I don't have enough time right now to search through

> your code right now.

doubt you know him name is Kir Teo and unless you live in the Netherlands you wont know him

Les1984a at 2007-7-13 12:39:07 > top of Java-index,Other Topics,Java Game Development...
# 5

thanks for the help but now I have a new problem.....

I am trying to implement a mouseListener so I can use images as buttons but I cant seem to get it to work.

it gets the first part the

xpos = me.getX();

ypos = me.getY();

but the rest it just does not want to do and I can't figure out why

Please help

import java.awt.*;

import java.applet.*;

import java.awt.event.*;

public class BlackJack_Mouse extends Applet implements MouseListener

{

int cardtype = 0;

int cardnum = 0;

int i = 0;

int dealscr = 0;

int playscr = 0;

int geld = 250;

int inzet = 0;

int money = 0;

int xpos;

int ypos;

String card, cardtype1;

Image winnaarimg, verliezerimg, blackjack, dealer, speler, deck, box;

Image[] kaart = new Image[14];

boolean dealbj, playbj, dubbelb, dubwin, dubver, win, ver, mouseEntered;

TextField InzetVak;

Font Fonttypo;

public void init()

{

setLayout(null);

addMouseListener(this);

InzetVak = new TextField( 10 );

InzetVak.setBounds(150, 340, 100, 20);

add( InzetVak );

setBackground( new Color(0,128,0) );

Fonttypo = new Font( "Serif", Font.ITALIC, 18);

deck = getImage( getDocumentBase(), "cards_gif/Deck.gif" );

box = getImage( getDocumentBase(), "cards_gif/cardbox.gif" );

}

public void paint( Graphics g )

{

g.setFont( Fonttypo );

g.drawString( " geld: " + geld, 200, 40);

g.drawString( " inzet: " + inzet, 200, 60);

g.drawString( " " + i, 50, 70);

g.drawString( "Dealer Score :" + xpos, 300, 40);

g.drawString( "Speler Score :" + ypos, 300, 60);

g.setColor( Color.blue );

g.fillRect( 20, 370, 80, 20 );

g.fillRect( 110, 370, 80, 20 );

g.fillRect( 200, 370, 80, 20 );

g.fillRect( 290, 370, 80, 20 );

g.drawImage( deck, 0, 0, 115, 125, this );

//g.drawImage( test, 0, 120, 100, 120, this );

g.drawImage( box, 90, 100, 100, 120, this );

g.drawImage( box, 90, 210, 100, 120, this );

g.drawImage( kaart[0], 100, 110, 71, 96, this);

g.drawImage( kaart[1], 120, 110, 71, 96, this);

g.drawImage( kaart[2], 100, 220, 71, 96, this);

g.drawImage( kaart[3], 120, 220, 71, 96, this);

g.drawImage( kaart[4], 140, 220, 71, 96, this);

g.drawImage( kaart[5], 160, 220, 71, 96, this);

g.drawImage( kaart[6], 180, 220, 71, 96, this);

g.drawImage( kaart[7], 200, 220, 71, 96, this);

g.drawImage( kaart[8], 220, 220, 71, 96, this);

g.drawImage( kaart[9], 140, 110, 71, 96, this);

g.drawImage( kaart[10], 160, 110, 71, 96, this);

g.drawImage( kaart[11], 180, 110, 71, 96, this);

g.drawImage( kaart[12], 200, 110, 71, 96, this);

g.drawImage( kaart[13], 220, 110, 71, 96, this);

if(dealbj == true)

{

g.drawImage( blackjack, 100, 100, 294, 64, this);

g.drawImage( dealer, 100, 200, 174, 51, this);

}

else if(playbj == true)

{

g.drawImage( blackjack, 100, 100, 294, 64, this);

g.drawImage( speler, 100, 200, 161, 68, this);

}

else if(dubwin == true)

{

g.drawImage( winnaarimg, 100, 100, 232, 53, this);

}

else if(dubver == true)

{

g.drawImage( verliezerimg, 100, 100, 232, 53, this);

}

else if(win == true)

{

g.drawImage( winnaarimg, 100, 100, 232, 53, this);

}

else if(ver == true)

{

g.drawImage( verliezerimg, 100, 100, 232, 53, this);

}

}

public void mouseClicked (MouseEvent me)

{

xpos = me.getX();

ypos = me.getY();

if(xpos <= 20 && xpos >= 80 && ypos >= 370 && ypos <= 390)

{

String inzetString = InzetVak.getText();

inzet = Integer.parseInt( inzetString );

LeegRij();

i = 0;

dealscr = 0;

playscr = 0;

WinCond();

//test = getImage( getDocumentBase(), "cards_gif/h5.gif" );

winnaarimg = getImage( getDocumentBase(), "cards_gif/Winnaar.gif" );

verliezerimg = getImage( getDocumentBase(), "cards_gif/Verliezer.gif" );

blackjack = getImage( getDocumentBase(), "cards_gif/Black-jack.gif" );

dealer = getImage( getDocumentBase(), "cards_gif/Dealer.gif" );

speler = getImage( getDocumentBase(), "cards_gif/Speler.gif" );

for(int p=0; p<=3; p++)

{

cardtype = (int) ( 4 * Math.random() + 1);

cardnum = (int) ( 13 * Math.random() + 1);

cardtype1 = "";

switch(cardtype)

{

case 1: cardtype1 = "s";

break;

case 2: cardtype1 = "h";

break;

case 3: cardtype1 = "d";

break;

case 4: cardtype1 = "c";

break;

}

card = cardtype1 + "" + cardnum;

kaart[p] = getImage( getDocumentBase(), "cards_gif/"+ card + ".gif" );

i=4;

if(dealscr <= 10 && cardnum == 1 && p <= 1)

{

cardnum = 11;

}

else if(cardnum > 10)

{

cardnum = 10;

}

else if(playscr <= 10 && cardnum == 1 && p>=2)

{

cardnum = 11;

}

else if(cardnum > 10)

{

cardnum = 10;

}

if(p<=1)

{

dealscr = dealscr + cardnum;

}

else

{

playscr = playscr + cardnum;

}

if(dealscr == 21)

{

dealbj = true;

geld = geld - inzet;

}

else if(playscr == 21)

{

playbj = true;

geld = geld - inzet;

}

repaint();

}

}

else if(xpos < 290 && xpos > 350 && ypos > 370 && ypos < 390 )

{

if( playscr <= 21 )

{

PlayTurn(i);

i++;

}

}

else if(xpos < 200 && xpos > 260 && ypos > 370 && ypos < 390 )

{

if( playscr <= 21 )

{

dubbelb = true;

PlayTurn(i);

i++;

DealTurn(i);

}

else if( playscr > 21)

{

geld = geld - inzet;

dubver = true;

}

}

else if(xpos < 200 && xpos > 260 && ypos > 370 && ypos < 390 )

{

DealTurn(i);

}

}

public void DealTurn( int i )

{

while( i < 9 )

{

kaart[i] = getImage( getDocumentBase(), "cards_gif/blank.gif" );

i++;

}

while( dealscr < playscr && dealscr < 21 && playscr <= 21)

{

cardtype = (int) ( 4 * Math.random() + 1);

cardnum = (int) ( 13 * Math.random() + 1);

cardtype1 = "";

switch(cardtype)

{

case 1: cardtype1 = "s";

break;

case 2: cardtype1 = "h";

break;

case 3: cardtype1 = "d";

break;

case 4: cardtype1 = "c";

break;

}

card = cardtype1 + "" + cardnum;

if(dealscr <= 10 && cardnum == 1 && i >= 9)

{

cardnum = 11;

}

else if(cardnum > 10)

{

cardnum = 10;

}

dealscr = dealscr + cardnum;

kaart[i] = getImage( getDocumentBase(), "cards_gif/"+ card + ".gif" );

i++;

repaint();

}

if( dubbelb == true )

{

if(dealscr < playscr && playscr <= 21)

{

dubwin = true;

inzet = inzet * 2;

geld = geld + inzet;

}

else if(dealscr > 21 && playscr <= 21)

{

dubwin = true;

inzet = inzet * 2;

geld = geld + inzet;

}

else

{

dubver = true;

inzet = inzet * 2;

geld = geld - inzet;

}

}

else if( dubbelb == false )

{

if(dealscr < playscr && playscr <= 21)

{

win = true;

geld = geld + inzet;

}

else if(dealscr > 21 && playscr <= 21)

{

win = true;

geld = geld + inzet;

}

else

{

ver = true;

geld = geld - inzet;

}

}

repaint();

}

public void PlayTurn( int i )

{

cardtype = (int) ( 4 * Math.random() + 1);

cardnum = (int) ( 13 * Math.random() + 1);

cardtype1 = "";

switch(cardtype)

{

case 1: cardtype1 = "s";

break;

case 2: cardtype1 = "h";

break;

case 3: cardtype1 = "d";

break;

case 4: cardtype1 = "c";

break;

}

card = cardtype1 + "" + cardnum;

if(playscr <= 10 && cardnum == 1 && i <=8)

{

cardnum = 11;

}

else if(cardnum > 10)

{

cardnum = 10;

}

playscr = playscr + cardnum;

kaart[i] = getImage( getDocumentBase(), "cards_gif/"+ card + ".gif" );

if( playscr > 21 )

{

ver = true;

geld = geld - inzet;

}

repaint();

}

public void LeegRij()

{

for(int q=0; q<=13; q++ )

{

kaart[q] = getImage( getDocumentBase(), "cards_gif/blank.gif" );

}

}

public void WinCond()

{

dealbj = false;

playbj = false;

dubwin = false;

dubver = false;

win = false;

ver = false;

dubbelb = false;

}

public void mouseEntered (MouseEvent me) {}

public void mousePressed (MouseEvent me) {}

public void mouseReleased (MouseEvent me)

{

repaint();

}

public void mouseExited (MouseEvent me)

{

repaint();

}

}

Les1984a at 2007-7-13 12:39:07 > top of Java-index,Other Topics,Java Game Development...
# 6
if(xpos <= 20 && xpos >= 80 && ypos >= 370 && ypos <= 390)If xpos is less than or equal to 20 it cannot also be greater than or equal to 80.
morgalra at 2007-7-13 12:39:07 > top of Java-index,Other Topics,Java Game Development...
# 7
#$%^&*( figuresI spend 3 hours looking for solutions on the web and fiddeling with my code and its someting like that..*&^%$#
Les1984a at 2007-7-13 12:39:07 > top of Java-index,Other Topics,Java Game Development...
# 8
When I was in college we called that a "3 o'clock in the morning problem." Inevitably we had those after being up all night, and usually, nobody was awake enough to see them. Fresh eyes help alot--one of the many reasons for code reviews.
morgalra at 2007-7-13 12:39:07 > top of Java-index,Other Topics,Java Game Development...
# 9
well with this and some really ugly buttons.I have completed my project and will hopefully make the grade...So Thanks to everyone I mean it thanks
Les1984a at 2007-7-13 12:39:07 > top of Java-index,Other Topics,Java Game Development...
# 10
You are welcome, and thank you for using the formums the right way.
morgalra at 2007-7-13 12:39:07 > top of Java-index,Other Topics,Java Game Development...