My deadline is for next Thursday.
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot, and MouseInfo)
import java.util.Random;
/**
* Write a description of class MemoryGame here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class MemoryGame extends World
{
private Card [][] board;
private String[] words = {"g0","g0","g1","g1", "g2", "g2", "g3", "g3", "g4", "g4", "g5", "g5", "g6", "g6", "g7", "g7", "g8", "g8", "g9", "g9",};
private Random r;
MemoryGame()
{
r = new Random();
board = new Card [4][4];
shuffle();
setCells();
printCells();
playGame();
}
public void playGame()
{
choosePairOfCards();
}
public void choosePairOfCards()
{
int cardChoice, row1, col1, row2, col2;
System.out.println();
System.out.println("Enter the number on the card.");
System.out.print("First Card Choice? >");
cardChoice = getInputAsInt();
row1 = cardChoice / 4;
col1 = cardChoice % 4;
board[row1][col1].SetShowingStatus();
System.out.print('\u000C');
printCells();
}
public void setCells()
{
int a=0;
for (int row=0; row<board.length; row++)
{
for(int col=0; col<board[0].length; col++)
{
{
board[row][col] = new Card(words[a], a);
}
}
}
}
public void printCells()
{
Card aCard;
for (int row=0; row<board.length; row++)
{
for (int col=0; col<board[0].length; col++)
{
aCard = board [row][col];
aCard.showCard();
}
System.out.println();
}
}
public void shuffle()
{
for (int a=0; a<words.length; a++)
{
int pos = r.nextInt(words.length);
String temp = words[a];
words[a] = words[pos];
words [pos] = temp;
}
}
public int getInputAsInt()
{
String temp = reader.nextLine();
return Integer.parseInt(temp);
}
public String getInputAsString()
{
return reader.nextLine();
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Card here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Card extends Actor
{
private static GreenfootImage back = new GreenfootImage("cover.gif");
private static Card firstPicked;
public static int matchTries;
public static int matchCount;
private GreenfootImage front;
private boolean showing;
private int value;
public Card(String fname, int val)
{
value = val;
front = new GreenfootImage(fname+".gif");
setImage(back);
}
public void showCard()
{
if (showing)
System.out.print(String.format("%10s",back));
else
System.out.print(String.format("%10s","["+front+"]"));
}
public void SetShowingStatus()
{
if(showing)
showing = false;
else
showing = true;
}
private void flipCard()
{
showing = ! showing;
setImage(showing ? front : back);
}
public void firstClicked()
{
this.flip();
Greenfoot.delay(40);
if (firstClicked == null)
{
firstClicked = this;
}
else
{
String image1 = firstClicked.getImage().toString().substring(17);;
image1 = image1.substring(0, image1.indexOf(" "));
String image2 = this.getImage().toString().substring(17);;
image2 = image2.substring(0, image2.indexOf(" "));
if (image1.equals(image2))
{
Greenfoot.playSound("fanfare.wav"); // example code
addObject(new Correct(), getX(), getY()+100); // or wherever
}
else
{
Greenfoot.playSound("wrong.wav"); // example code
firstClicked.flip();
this.flip();
}
firstClicked = null;
}
}
private void flip()
{
imageIndex = (imageIndex+1)%2;
setImage(images[imageIndex]);
}
public void ifCorrect()
{
if((card1Flipped == true) && (card2Flipped == true))
{
Greenfoot.delay(30);
displayCorrect();
getWorld().removeObjects(getWorld().getObjects(Card2.class));
getImage().setTransparency(0);
}
else if((card3Flipped == true) && (card4Flipped == true))
{
Greenfoot.delay(30);
displayCorrect();
getWorld().removeObjects(getWorld().getObjects(Card3.class));
getWorld().removeObjects(getWorld().getObjects(Card4.class));
}
else
{
flipBack();
}
if (secondCard == null)
{
Cards card = pickedCard();
if (firstCard == null)
{
firstCard = card;
}
else
{
secondCard = card;
if (firstCardImage().equals(secondCardImage()))
{
correctSequence = true;
initializeCorrectSequence();
}
else
{
wrongSequence = true;
initializeWrongSequence();
}
}
}
else
{
if (wrongSequence)
{
performWrongSequenceStep();
if (lastWrongsequenceStep())
{
wrongSequence = false;
firstCard = null;
secondCard = null;
}
}
else if (correctSequence)
{
performCorrectSequenceStep();
if (lastCorrectSequenceStep())
{
correctSequence = false;
firstCard = null;
secondCard = null;
}
}
}
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Card here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Card extends Actor
{
private static GreenfootImage back = new GreenfootImage("cover.gif");
private static Card firstPicked;
public static int matchTries;
public static int matchCount;
private GreenfootImage front;
private boolean showing;
private int value;
public Card(String fname, int val)
{
value = val;
front = new GreenfootImage(fname+".gif");
setImage(back);
}
private void flipCard()
{
showing = ! showing;
setImage(showing ? front : back);
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot, and MouseInfo)
import java.util.Random;
/**
* Write a description of class MemoryGame here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class MemoryGame extends World
{
private Card [][] board;
private String[] words = {"g0","g0","g1","g1", "g2", "g2", "g3", "g3", "g4", "g4", "g5", "g5", "g6", "g6", "g7", "g7", "g8", "g8", "g9", "g9",};
private Random r;
MemoryGame()
{
r = new Random();
board = new Card [5][4];
shuffle();
setCells();
printCells();
playGame();
}
public void playGame()
{
choosePairOfCards();
}
public void choosePairOfCards()
{
int cardChoice, row1, col1, row2, col2;
System.out.println();
System.out.println("Enter the number on the card.");
System.out.print("First Card Choice? >");
cardChoice = getInputAsInt();
row1 = cardChoice / 4;
col1 = cardChoice % 4;
board[row1][col1].SetShowingStatus();
System.out.print('\u000C');
printCells();
}
public void setCells()
{
int a=0;
for (int row=0; row<board.length; row++)
{
for(int col=0; col<board[0].length; col++)
{
{
board[row][col] = new Card(words[a], a);
}
}
}
}
public void printCells()
{
Card aCard;
for (int row=0; row<board.length; row++)
{
for (int col=0; col<board[0].length; col++)
{
aCard = board [row][col];
aCard.showCard();
}
System.out.println();
}
}
public void shuffle()
{
for (int a=0; a<words.length; a++)
{
int pos = r.nextInt(words.length);
String temp = words[a];
words[a] = words[pos];
words [pos] = temp;
}
}
public int getInputAsInt()
{
String temp = reader.nextLine();
return Integer.parseInt(temp);
}
public String getInputAsString()
{
return reader.nextLine();
}
}
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot, and MouseInfo)
import java.util.Random;
/**
* Write a description of class MemoryGame here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class MemoryGame extends World
{
private Card [][] board;
MemoryGame()
{
board = new Card [5][4];
shuffle();
}
public void playGame()
{
choosePairOfCards();
}
public void setCells()
{
int a=0;
for (int row=0; row<board.length; row++)
{
for(int col=0; col<board[0].length; col++)
{
{
board[row][col] = new Card(words[a], a);
}
}
}
}
public void printCells()
{
Card aCard;
for (int row=0; row<board.length; row++)
{
for (int col=0; col<board[0].length; col++)
{
aCard = board [row][col];
aCard.showCard();
}
System.out.println();
}
}
public void shuffle()
{
for (int a=0; a<words.length; a++)
{
int pos = r.nextInt(words.length);
String temp = words[a];
words[a] = words[pos];
words [pos] = temp;
}
}
}