Joshs Tug Of Word
<< Kevin's Tower Defense Game | OldProjectsTrailIndex | Video Poker by Mark >>
Click Here to see a working version
Cool and Creative! here is a two line version of Letter.getCode() I think you will enjoy:
public int getCode()
{
String map="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
return 65+map.indexOf(letter.toUpperCase());
}
Final Project (rough)
Rope.java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Polygon;
public class Rope
{
private int x;
public Rope()
{
x = 250;
}
public void draw(Graphics g)
{
g.setColor(new Color(139,69,19));
g.drawRect(0, 250, 1000, 20);
g.fillRect(0, 250, 1000, 20);
g.setColor(Color.RED);
int [] x1points = {x-25,x+25,x};
int [] ypoints = {250,250,300};
Polygon tri1 = new Polygon(x1points, ypoints,3);
g.fillPolygon(tri1);
g.drawPolygon(tri1);
g.setColor(Color.BLUE);
int [] x2points = {x+475,x+525,x+500};
Polygon tri2 = new Polygon(x2points, ypoints, 3);
g.fillPolygon(tri2);
g.drawPolygon(tri2);
}
public int getX()
{
return x;
}
public void setX(int y)
{
x = y;
}
}
Letter.java
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
public class Letter
{
private String [] one = {"Q","W","E","R","T","A","S","D","F","Z","X","C","V"};
private String [] two = {"Y","U","I","O","P","G","H","J","K","L","B","N","M"};
private boolean side;
private String letter;
private int x,y;
public Letter(boolean face)
{
side = face;
y = 200;
if(side)
{
letter = one[(int) (Math.random()*13)];
x = 230;
}
else
{
letter = two[(int) (Math.random()*13)];
x = 730;
}
}
public void draw(Graphics g)
{
g.setColor(Color.BLACK);
g.setFont(new Font("Helvtica", Font.BOLD, 60));
g.drawString(letter, x, y);
}
public void newLetter()
{
if(side) letter = one[(int) (Math.random()*13)];
else letter = two[(int) (Math.random()*13)];
}
public String getLetter()
{
return letter;
}
public int getCode()
{
if(letter.equalsIgnoreCase("A")) return 65;
if(letter.equalsIgnoreCase("B")) return 66;
if(letter.equalsIgnoreCase("C")) return 67;
if(letter.equalsIgnoreCase("D")) return 68;
if(letter.equalsIgnoreCase("E")) return 69;
if(letter.equalsIgnoreCase("F")) return 70;
if(letter.equalsIgnoreCase("G")) return 71;
if(letter.equalsIgnoreCase("H")) return 72;
if(letter.equalsIgnoreCase("I")) return 73;
if(letter.equalsIgnoreCase("J")) return 74;
if(letter.equalsIgnoreCase("K")) return 75;
if(letter.equalsIgnoreCase("L")) return 76;
if(letter.equalsIgnoreCase("M")) return 77;
if(letter.equalsIgnoreCase("N")) return 78;
if(letter.equalsIgnoreCase("O")) return 79;
if(letter.equalsIgnoreCase("P")) return 80;
if(letter.equalsIgnoreCase("Q")) return 81;
if(letter.equalsIgnoreCase("R")) return 82;
if(letter.equalsIgnoreCase("S")) return 83;
if(letter.equalsIgnoreCase("T")) return 84;
if(letter.equalsIgnoreCase("U")) return 85;
if(letter.equalsIgnoreCase("V")) return 86;
if(letter.equalsIgnoreCase("W")) return 87;
if(letter.equalsIgnoreCase("X")) return 88;
if(letter.equalsIgnoreCase("Y")) return 89;
if(letter.equalsIgnoreCase("Z")) return 90;
return 0;
}
}
TugOfWar.java
import java.applet.Applet;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Polygon;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class TugOfWar extends Applet implements KeyListener
{
/**
* version 1.0
*/
private static final long serialVersionUID = 1L;
private Letter leftLetter;
private Letter rightLetter;
private Rope rope;
private int count;
private boolean start = true;
private boolean done = false;
private Image imageBuffer;
private Graphics gBuffer;
public void init()
{
imageBuffer = createImage(1000,400);
gBuffer = imageBuffer.getGraphics();
resize(1000,400);
this.addKeyListener(this);
leftLetter = new Letter(true);
rightLetter = new Letter(false);
rope = new Rope();
count = 0;
}
public void paint(Graphics g)
{
if(start)
{
gBuffer.setColor(Color.BLACK);
gBuffer.drawRect(0, 0, 1000, 400);
gBuffer.fillRect(0, 0, 1000, 400);
gBuffer.setColor(Color.WHITE);
gBuffer.setFont(new Font("Helvtica", Font.BOLD, 30));
gBuffer.drawString("Press Space to Start", 350, 200);
gBuffer.drawString("Try To Type More Letters Than Your Opponent", 180, 250);
g.drawImage(imageBuffer,0,0,this);
}
if(count > 4 && !start && !done)
{
gBuffer.setColor(Color.BLUE);
gBuffer.drawRect(0, 0, 1000, 400);
gBuffer.fillRect(0, 0, 1000, 400);
gBuffer.setColor(Color.WHITE);
gBuffer.setFont(new Font("Helvtica", Font.BOLD, 30));
gBuffer.drawString("Player 2 Wins!", 400, 200);
gBuffer.drawString("Press Space to Play Again", 320, 250);
g.drawImage(imageBuffer,0,0,this);
done = true;
}
if(count < -4 && !start && !done)
{
gBuffer.setColor(Color.RED);
gBuffer.drawRect(0, 0, 1000, 400);
gBuffer.fillRect(0, 0, 1000, 400);
gBuffer.setColor(Color.WHITE);
gBuffer.setFont(new Font("Helvtica", Font.BOLD, 30));
gBuffer.drawString("Player 1 Wins!", 400, 200);
gBuffer.drawString("Press Space to Play Again", 320, 250);
g.drawImage(imageBuffer,0,0,this);
done = true;
}
if(count < 5 && count > -5 && !start & !done)
{
gBuffer.setColor(Color.GREEN);
gBuffer.drawRect(0, 0, 1000, 400);
gBuffer.fillRect(0, 0, 1000, 400);
leftLetter.draw(gBuffer);
rightLetter.draw(gBuffer);
gBuffer.setColor(Color.BLACK);
gBuffer.setFont(new Font("Times ", Font.ITALIC, 70));
gBuffer.drawString("TUG OF WORD", 235, 80);
gBuffer.setColor(Color.BLACK);
gBuffer.fillOval(20, 105, 100, 100);
gBuffer.drawRect(65, 200, 10, 200);
gBuffer.fillRect(65, 200, 10, 200);
gBuffer.fillOval(880, 105, 100, 100);
gBuffer.drawRect(925, 200, 10, 200);
gBuffer.fillRect(925, 200, 10, 200);
int [] ax1points = {75,75,200,200};
int [] ay1points = {210,220,260,250};
int [] ax2points = {65,25,25,65};
int [] ay2points = {210,250,260,220};
int [] bx1points = {925,925,800,800};
int [] by1points = {210,220,260,250};
int [] bx2points = {935,935,975,975};
int [] by2points = {210,220,260,250};
int [] cx1points = {25,25,95,95};
int [] cy1points = {250,260,280,270};
int [] cx2points = {975,975,905,905};
int [] cy2points = {250,260,280,270};
Polygon arm1 = new Polygon(ax1points,ay1points,4);
Polygon arm2a = new Polygon(ax2points,ay2points,4);
Polygon arm3 = new Polygon(bx1points, by1points,4);
Polygon arm4a = new Polygon(bx2points,by2points,4);
Polygon arm2b = new Polygon(cx1points,cy1points,4);
Polygon arm4b = new Polygon(cx2points,cy2points,4);
gBuffer.drawPolygon(arm1);
gBuffer.fillPolygon(arm1);
gBuffer.drawPolygon(arm3);
gBuffer.fillPolygon(arm3);
rope.draw(gBuffer);
gBuffer.setColor(Color.BLACK);
gBuffer.drawPolygon(arm2a);
gBuffer.fillPolygon(arm2a);
gBuffer.drawPolygon(arm2b);
gBuffer.fillPolygon(arm2b);
gBuffer.drawPolygon(arm4a);
gBuffer.fillPolygon(arm4a);
gBuffer.drawPolygon(arm4b);
gBuffer.fillPolygon(arm4b);
g.drawImage(imageBuffer,0,0,this);
}
}
public void update(Graphics g)
{
paint(g);
}
public void keyPressed(KeyEvent e)
{
int key = e.getKeyCode();
if(start && key == 32)
{
start = false;
repaint();
}
if(done && key == 32)
{
done = false;
count = 0;
rope.setX(250);
repaint();
}
if(!done && !start && key == leftLetter.getCode())
{
rope.setX(rope.getX()-50);
count--;
leftLetter.newLetter();
rightLetter.newLetter();
repaint();
}
if(!done && !start && key == rightLetter.getCode())
{
rope.setX(rope.getX()+50);
count++;
leftLetter.newLetter();
rightLetter.newLetter();
repaint();
}
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
}
