Skip to content

Commit

Permalink
Updated array management, renamed images.
Browse files Browse the repository at this point in the history
  • Loading branch information
tordek_ar committed Jul 21, 2007
1 parent 625518b commit 6f471b9
Show file tree
Hide file tree
Showing 8 changed files with 39 additions and 37 deletions.
35 changes: 18 additions & 17 deletions draw.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ int Init(){
char name[20];
SDL_Surface *temp;

for(i = 1; i < 8; ++i) {
for(i = 0; i < 7; ++i) {
sprintf(name, "images/bloque%d.bmp", i);
temp = SDL_LoadBMP(name);
if (temp == NULL) {
Expand All @@ -84,7 +84,7 @@ int Init(){
blockpicture[i+10] = SDL_DisplayFormat(temp);
}

temp = SDL_LoadBMP("images/bloque8.bmp");
temp = SDL_LoadBMP("images/bloque7.bmp");
if (temp == NULL) {
printf("Unable to load bitmap: %s\n", SDL_GetError());
return 0;
Expand Down Expand Up @@ -131,36 +131,37 @@ void draw(FIELD *field, BLOCK *block, BLOCK *next, BLOCK *hold, int score) {

SDL_BlitSurface(fondo, &src, screen, &dest);


int offset = (FIELDHEIGHT - VISIBLEHEIGHT);

for (j = offset; j < FIELDHEIGHT; ++j)
for (i = 0; i < FIELDWIDTH; ++i)
if((*field)[j][i])
paintpiece(i,j - offset,8);
for (i = OFFSET; i < FIELDHEIGHT; ++i)
for (j = 0; j < FIELDWIDTH; ++j)
if((*field)[i][j])
paintpiece(j,i - OFFSET,7);

BLOCK tempblock = getghostpiece(field,block);

//Draw Ghost Piece
for (i = 0; i < 4; ++i)
for (j = 0; j < 4; ++j)
if(blocks[tempblock.blocktype][tempblock.orient][j][i])
paintpiece(i + tempblock.posx, j + tempblock.posy - offset, blocks[tempblock.blocktype][tempblock.orient][j][i]+10);
if(blocks[tempblock.blocktype][tempblock.orient][i][j])
paintpiece(j + tempblock.posx, i + tempblock.posy - OFFSET, tempblock.blocktype + 10 );

//Draw Main Piece
for (i = 0; i < 4; ++i)
for (j = 0; j < 4; ++j)
if(blocks[block->blocktype][block->orient][j][i])
paintpiece(i + block->posx,j + block->posy - offset,blocks[block->blocktype][block->orient][j][i]);
if(blocks[block->blocktype][block->orient][i][j])
paintpiece(j + block->posx, i + block->posy - OFFSET, block->blocktype );

//Draw Next Piece
for (i = 0; i < 4; ++i)
for (j = 0; j < 4; ++j)
if(blocks[next->blocktype][next->orient][j][i])
paintpiece(i + next->posx + 10, j + next->posy + 2, blocks[next->blocktype][next->orient][j][i]);
if(blocks[next->blocktype][next->orient][i][j])
paintpiece(j + next->posx + 10, i + next->posy + 2, next->blocktype );

//Draw Held Piece
if (hold->blocktype != -1) {
for (i = 0; i < 4; ++i)
for (j = 0; j < 4; ++j)
if(blocks[hold->blocktype][hold->orient][j][i])
paintpiece(i + hold->posx + 10,j + hold->posy + 7, blocks[hold->blocktype][hold->orient][j][i]);
if(blocks[hold->blocktype][hold->orient][i][j])
paintpiece(j + hold->posx + 10, i + hold->posy + 7, hold->blocktype );
}

sprintf(texto,"Score: %d",score);
Expand Down
Binary file added images/bloque0.bmp
Binary file not shown.
Binary file modified images/bloque2.bmp
Binary file not shown.
Binary file modified images/bloque3.bmp
Binary file not shown.
Binary file modified images/bloque6.bmp
Binary file not shown.
Binary file modified images/bloque7.bmp
Binary file not shown.
Binary file removed images/bloque8.bmp
Binary file not shown.
41 changes: 21 additions & 20 deletions main.c
Original file line number Diff line number Diff line change
Expand Up @@ -202,42 +202,43 @@ void putpiece(FIELD *field, BLOCK *block) {
int i, j;
for (i = 0; i < 4; ++i)
for (j = 0; j < 4; ++j)
(*field)[j + block->posy][i + block->posx] |=
blocks[block->blocktype][block->orient][j][i];
(*field)[i + block->posy][j + block->posx] |=
blocks[block->blocktype][block->orient][i][j];
}

//Cleans completed lines and returns how many it removed, and -1.
//Might be doing too much.
int checkfield(FIELD *field) {
int i, j, k, lineas = 0;
int campo = 1;
for (j = 0; j < FIELDHEIGHT; ++j) {
for (i = 0; i < FIELDWIDTH; ++i)
if(!(*field)[j][i]){
campo = 0;
int i, j, k, lines = 0;
int fullline = 1;
for (i = 0; i < FIELDHEIGHT; ++i) {
for (j = 0; j < FIELDWIDTH; ++j)
if(!(*field)[i][j]){
fullline = 0;
break;
}
if(campo){
lineas++;
for (k = j; k > 0 ; k--)
for (i = 0; i < FIELDWIDTH; ++i)
(*field)[k][i] = (*field)[k-1][i];
if(fullline) {
lines++;
for (k = i; k > 0; --k)
for (j = 0; j < FIELDWIDTH; ++j)
(*field)[k][j] = (*field)[k-1][j];
} else
campo = 1;
fullline = 1;
}
for (i = 0; i < FIELDWIDTH; ++i)
if ((*field)[OFFSET][i])
return -1;
return lineas;
return lines;
}

int obstructed(FIELD *field, BLOCK *block) {
int i, j;
for (i = 0; i < 4; ++i)
for (j = 0; j < 4; ++j)
if ((blocks[block->blocktype][block->orient][j][i])
&& (j + block->posy > (FIELDHEIGHT - 1)
|| i + block->posx < 0
|| i + block->posx > (FIELDWIDTH - 1)
|| (*field)[block->posy + j][block->posx + i]))
if ((blocks[block->blocktype][block->orient][i][j])
&& (i + block->posy > (FIELDHEIGHT - 1)
|| j + block->posx < 0 || j + block->posx > (FIELDWIDTH - 1)
|| (*field)[block->posy + i][block->posx + j]))
return 1;
return 0;
}
Expand Down

0 comments on commit 6f471b9

Please sign in to comment.