|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
[TASK 8.2.2] Pair Programming: Ufo13 + thebol
Benissimo partiamo subito!
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Prima la test list
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Test List:
- Le Gem appartenenti ad un GemGroup non vengono disegnate. - Dato un GemGroup testiamo che la texture caricata per disegnare il GemGroup sia la texture corretta. - Dato un GemGroup testiamo che vengano rilevate le tile di tipo "angolo_alto_sx, angolo_alto_dx etc...", i bordi (alto, sx, dx, basso) e i riempimenti. Il tutto nelle corrette posizioni. - Dato un gruppo 3x3 testiamo che ai corrispondenti angoli, bordi e riempimenti vengano disegnate le "tile" corrette. |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Quote:
|
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
ecco il primo test
Codice:
public class TestGemGroupsDrawing extends TestCase
{
private Grid grid;
private MockTimer timer;
public void setUp()
{
grid = Grid.createForTesting();
timer = new MockTimer();
}
public void testGroupedGemIsNotDrawn()
{
MockEngine engine = new MockEngine();
Gem gem1 = Gem.diamond(3500);
Gem gem2 = Gem.diamond(3500);
Gem gem3 = Gem.diamond(3500);
Gem gem4 = Gem.diamond(3500);
insertAndUpdate(gem1, 13, 3);
insertAndUpdate(gem2, 13, 4);
insertAndUpdate(gem3, 12, 3);
insertAndUpdate(gem4, 12, 4);
gem1.draw(engine);
gem2.draw(engine);
gem3.draw(engine);
gem4.draw(engine);
assertEquals("grouped Gems must be not drawn", 0, engine.getNumberOfQuadsDrawn());
}
private void insertAndUpdate(Gem gem, int x, int y)
{
grid.insertGem(x, y, gem);
grid.update(timer, gem);
}
}
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Codice:
public void draw(EngineInterface engine)
{
if (!isInAGroup())
{
sprite.draw(engine);
}
}
ps.si sarebbe potuto inserire il controllo in grid.draw(), anziche in gem.draw(); dove è piu sensato metterlo?(per passare questo test è pero obbligatorio metterlo in gem) |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
Che bello...ho la ppossibilità di guardarmi un task in pair in diretta!!!
![]() Meglio di SKY...mi prendo 2 pop-corn e me lo godo tutto !!!
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Quote:
|
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Codice:
public void testGetTexture(){
Config config = Config.createForTesting();
GemGroups gemGroups = new GemGroups(config.getInteger("rows"), config.getInteger("columns"));
gemGroups.addGem(gem1);
assertNotNull("Not texture loaded in gemGroups",gemGroups.getTexture());
}
Ultima modifica di thebol : 20-01-2006 alle 14:31. |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Hmmm il test da NullPointerException...
La Gem va prima inserita nella griglia Il test cambia così: Codice:
public void testGetTexture()
{
Config config = Config.createForTesting();
GemGroups gemGroups = new GemGroups(config.getInteger("rows"), config.getInteger("columns"));
insertAndUpdate(gem1, 11, 4);
gemGroups.addGem(gem1);
assertNotNull("No texture loaded in gemGroups", gemGroups.getTexture());
}
Questo è il codice (Quick Fix) che fa passare il test Codice:
public Texture getTexture()
{
return new Texture("diamond");
}
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
preparo il nuovo test....
Devo testare che il GemGroup restituisca la Texture giusta in base al "GemType del gruppo"... Il GemType del GemGroup non è definito... Tralasciamo questo test un secondo Propongo questo test Codice:
public void testGemType()
{
insertAndUpdate(gem3, 13, 3);
insertAndUpdate(gem4, 13, 4);
insertAndUpdate(gem5, 12, 3);
insertAndUpdate(gem6, 12, 4);
assertEquals("Wrong GemType of this GemGroup", GemType.EMERALD, gem3.getGroup().getType());
}
Ultima modifica di Ufo13 : 20-01-2006 alle 15:09. |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Non capisco perchè da build rotta sulla build machine... I test sono in ignore!
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Codice:
public GemType getType()
{
return gemType;
}
Codice:
public GemGroups(int rows, int columns, GemType gemType)
{
defaultRows = rows;
defaultColumns = columns;
this.gemType = gemType;
}
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
thebol ha committato un nuovo test ma è dovuto scappare così non ha potuto postare
Codice:
public void testDifferenteTextureLoaded(){
insertAndUpdate(gem3, 13, 1);
insertAndUpdate(gem4, 13, 2);
insertAndUpdate(gem5, 12, 1);
insertAndUpdate(gem6, 12, 2);
insertAndUpdate(gem9, 13, 3);
insertAndUpdate(gem10, 13, 4);
insertAndUpdate(gem11, 12, 3);
insertAndUpdate(gem12, 12, 4);
assertEquals("gemGroup Texture is not correct", "gfx/gems/tiles/emerald", gem3.getGroup().getTexture().getName());
assertEquals("gemGroup Texture is not correct", "gfx/gems/tiles/diamond", gem9.getGroup().getTexture().getName());
}
Ultima modifica di Ufo13 : 20-01-2006 alle 16:36. |
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Aggiunti i seguenti field in GemGroup (ho pure cambiato il nome da GemGroups a GemGroup per coerenza con Gem)
Codice:
private static final String GEMGROUP_PATH = "gfx/gems/tiles/"; private Texture texture; Nel costruttore viene inizializzato l'oggetto Texture Codice:
this.texture = new Texture(GEMGROUP_PATH.concat(gemType.name())); Di conseguenza Codice:
public Texture getTexture()
{
return texture;
}
Preparo il nuovo test |
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Il nuovo test è:
Codice:
public void testCorrectGemsPositions()
{
Gem gem9 = Gem.create(gem3.getType(), 3500);
Gem gem10 = Gem.create(gem3.getType(), 3500);
Gem gem11 = Gem.create(gem3.getType(), 3500);
insertAndUpdate(gem3, 13, 1);
insertAndUpdate(gem4, 13, 2);
insertAndUpdate(gem5, 13, 3);
insertAndUpdate(gem6, 12, 1);
insertAndUpdate(gem7, 12, 2);
insertAndUpdate(gem8, 12, 3);
insertAndUpdate(gem9, 11, 1);
insertAndUpdate(gem10, 11, 2);
insertAndUpdate(gem11, 11, 3);
GemGroup gemGroup = gem3.getGroup();
assertEquals("gem3's groupPosition is not correct", GemGroup.PositionType.BottomLeftCorner, gemGroup.getPositionType(gem3));
assertEquals("gem4's groupPosition is not correct", GemGroup.PositionType.BottomEdge, gemGroup.getPositionType(gem4));
assertEquals("gem5's groupPosition is not correct", GemGroup.PositionType.BottomRightCorner, gemGroup.getPositionType(gem5));
assertEquals("gem6's groupPosition is not correct", GemGroup.PositionType.LeftEdge, gemGroup.getPositionType(gem6));
assertEquals("gem7's groupPosition is not correct", GemGroup.PositionType.Inner, gemGroup.getPositionType(gem7));
assertEquals("gem8's groupPosition is not correct", GemGroup.PositionType.RightEdge, gemGroup.getPositionType(gem8));
assertEquals("gem9's groupPosition is not correct", GemGroup.PositionType.TopLeftCorner, gemGroup.getPositionType(gem9));
assertEquals("gem10's groupPosition is not correct", GemGroup.PositionType.TopEdge, gemGroup.getPositionType(gem10));
assertEquals("gem11's groupPosition is not correct", GemGroup.PositionType.TopRightCorner, gemGroup.getPositionType(gem11));
}
|
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Codice:
private void updateGroup()
{
if (checkRectFullOfGems())
{
setGemPositionType();
lightUpGems();
}
}
Codice:
private void setGemPositionType()
{
candidateGems.put(lefTopCorner, PositionType.TopLeftCorner);
candidateGems.put(leftBottomCorner, PositionType.BottomLeftCorner);
candidateGems.put(rightTopCorner, PositionType.TopRightCorner);
candidateGems.put(rightBottomcorner, PositionType.BottomRightCorner);
for(Gem currentGem : candidateGems.keySet())
{
if (isSettablePositionType(currentGem))
{
if (isInnerGem(currentGem))
{
candidateGems.put(currentGem, PositionType.Inner);
}
else if (currentGem.getCellRow() == topRow)
{
candidateGems.put(currentGem, PositionType.TopEdge);
}
else if (currentGem.getCellRow() == bottomRow)
{
candidateGems.put(currentGem, PositionType.BottomEdge);
}
else if (currentGem.getCellColumn() == leftColumn)
{
candidateGems.put(currentGem, PositionType.LeftEdge);
}
else if (currentGem.getCellColumn() == rightColumn)
{
candidateGems.put(currentGem, PositionType.RightEdge);
}
}
}
}
poi per le restanti settabili guardo che spigoli sono. qua gli altri metodi che facevano arrivare la complessita a 12 ![]() Codice:
private boolean isSettablePositionType(Gem currentGem)
{
return gemIsInRect(currentGem) && !gemIsACorner(currentGem);
}
private boolean isInnerGem(Gem currentGem)
{
return currentGem.getCellRow() > topRow
&& currentGem.getCellColumn() > leftColumn
&& currentGem.getCellRow() < bottomRow
&& currentGem.getCellColumn() < rightColumn;
}
|
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Posto io il test che ha fatto thebol
L'ho completato ed ora è così Codice:
public void testCorrectTileDraw()
{
MockEngine engine = MockEngine.createForTesting(800, 600);
Gem gem9 = Gem.create(gem3.getType(), 3500);
Gem gem10 = Gem.create(gem3.getType(), 3500);
Gem gem11 = Gem.create(gem3.getType(), 3500);
insertAndUpdate(gem3, 13, 1);
insertAndUpdate(gem4, 13, 2);
insertAndUpdate(gem5, 13, 3);
insertAndUpdate(gem6, 12, 1);
insertAndUpdate(gem7, 12, 2);
insertAndUpdate(gem8, 12, 3);
insertAndUpdate(gem9, 11, 1);
insertAndUpdate(gem10, 11, 2);
insertAndUpdate(gem11, 11, 3);
GemGroup gemGroup = gem3.getGroup();
gemGroup.draw(PositionType.BottomLeftCorner, engine);
assertEquals("bad texture drawn", 0, engine.getTextureRect().left());
assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().top());
gemGroup.draw(PositionType.BottomEdge, engine);
assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().left());
assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().top());
gemGroup.draw(PositionType.BottomRightCorner, engine);
assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().left());
assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().top());
gemGroup.draw(PositionType.LeftEdge, engine);
assertEquals("bad texture drawn", 0, engine.getTextureRect().left());
assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().top());
gemGroup.draw(PositionType.Inner, engine);
assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().left());
assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().top());
gemGroup.draw(PositionType.RightEdge, engine);
assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().left());
assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().top());
gemGroup.draw(PositionType.TopLeftCorner, engine);
assertEquals("bad texture drawn", 0, engine.getTextureRect().left());
assertEquals("bad texture drawn", 0, engine.getTextureRect().top());
gemGroup.draw(PositionType.TopEdge, engine);
assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().left());
assertEquals("bad texture drawn", 0, engine.getTextureRect().top());
gemGroup.draw(PositionType.TopRightCorner, engine);
assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().left());
assertEquals("bad texture drawn", 0, engine.getTextureRect().top());
}
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:45.




















