-
+#include <stdlib.h>
#include <curses.h>
#include "tet.h"
/*********************************************************************/
/* Switch on type of piece, find out if I can move down */
/* If so, then do it and return 1 else return 0 */
/*********************************************************************/
-AdvancePiece(type, col, row)
-int type, col, row;
+AdvancePiece(int type, int col, int row)
{
-switch (type) {
+ switch (type) {
/* WHITE PIECES */
- case W_TYPE :
- if (IS_FREE(col-1,row+1) &&
- IS_FREE(col,row+2) &&
- IS_FREE(col+1,row+1))
- {
- PUTCH(col-1,row,NO_CHAR);
- PUTCH(col,row,NO_CHAR);
- PUTCH(col+1,row,NO_CHAR);
- PUTCH(col-1,row+1,W_CHAR);
- PUTCH(col,row+2,W_CHAR);
- PUTCH(col+1,row+1,W_CHAR);
- goto out;
- }
- else goto badout;
+ case W_TYPE :
+ if (IS_FREE(col-1,row+1) &&
+ IS_FREE(col,row+2) &&
+ IS_FREE(col+1,row+1))
+ {
+ PUTCH(col-1,row,NO_CHAR);
+ PUTCH(col,row,NO_CHAR);
+ PUTCH(col+1,row,NO_CHAR);
+ PUTCH(col-1,row+1,W_CHAR);
+ PUTCH(col,row+2,W_CHAR);
+ PUTCH(col+1,row+1,W_CHAR);
+ goto out;
+ }
+ else goto badout;
- case W_TYPE-1 :
- if (IS_FREE(col,row+2) &&
- IS_FREE(col+1,row+1))
- {
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col+1,row,NO_CHAR);
- PUTCH(col,row+2,W_CHAR);
- PUTCH(col+1,row+1,W_CHAR);
- goto out;
- }
- else goto badout;
+ case W_TYPE-1 :
+ if (IS_FREE(col,row+2) &&
+ IS_FREE(col+1,row+1))
+ {
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col+1,row,NO_CHAR);
+ PUTCH(col,row+2,W_CHAR);
+ PUTCH(col+1,row+1,W_CHAR);
+ goto out;
+ }
+ else goto badout;
- case W_TYPE-2 :
- if (IS_FREE(col-1,row+1) &&
- IS_FREE(col,row+1) &&
- IS_FREE(col+1,row+1))
- {
- PUTCH(col-1,row,NO_CHAR);
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col+1,row,NO_CHAR);
- PUTCH(col-1,row+1,W_CHAR);
- PUTCH(col,row+1,W_CHAR);
- PUTCH(col+1,row+1,W_CHAR);
- goto out;
- }
- else goto badout;
+ case W_TYPE-2 :
+ if (IS_FREE(col-1,row+1) &&
+ IS_FREE(col,row+1) &&
+ IS_FREE(col+1,row+1))
+ {
+ PUTCH(col-1,row,NO_CHAR);
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col+1,row,NO_CHAR);
+ PUTCH(col-1,row+1,W_CHAR);
+ PUTCH(col,row+1,W_CHAR);
+ PUTCH(col+1,row+1,W_CHAR);
+ goto out;
+ }
+ else goto badout;
- case W_TYPE-3 :
- if (IS_FREE(col-1,row+1) &&
- IS_FREE(col,row+2))
- {
- PUTCH(col-1,row,NO_CHAR);
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col-1,row+1,W_CHAR);
- PUTCH(col,row+2,W_CHAR);
- goto out;
- }
- else goto badout;
+ case W_TYPE-3 :
+ if (IS_FREE(col-1,row+1) &&
+ IS_FREE(col,row+2))
+ {
+ PUTCH(col-1,row,NO_CHAR);
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col-1,row+1,W_CHAR);
+ PUTCH(col,row+2,W_CHAR);
+ goto out;
+ }
+ else goto badout;
/* RED PIECES */
- case R_TYPE :
- if (IS_FREE(col-1,row+2) &&
- IS_FREE(col,row+1) &&
- IS_FREE(col+1,row+1))
- {
- PUTCH(col-1,row,NO_CHAR);
- PUTCH(col,row,NO_CHAR);
- PUTCH(col+1,row,NO_CHAR);
- PUTCH(col-1,row+2,R_CHAR);
- PUTCH(col,row+1,R_CHAR);
- PUTCH(col+1,row+1,R_CHAR);
- goto out;
- }
- else goto badout;
+ case R_TYPE :
+ if (IS_FREE(col-1,row+2) &&
+ IS_FREE(col,row+1) &&
+ IS_FREE(col+1,row+1))
+ {
+ PUTCH(col-1,row,NO_CHAR);
+ PUTCH(col,row,NO_CHAR);
+ PUTCH(col+1,row,NO_CHAR);
+ PUTCH(col-1,row+2,R_CHAR);
+ PUTCH(col,row+1,R_CHAR);
+ PUTCH(col+1,row+1,R_CHAR);
+ goto out;
+ }
+ else goto badout;
- case R_TYPE-1 :
- if (IS_FREE(col,row+2) &&
- IS_FREE(col+1,row+2))
- {
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col+1,row+1,NO_CHAR);
- PUTCH(col,row+2,R_CHAR);
- PUTCH(col+1,row+2,R_CHAR);
- goto out;
- }
- else goto badout;
+ case R_TYPE-1 :
+ if (IS_FREE(col,row+2) &&
+ IS_FREE(col+1,row+2))
+ {
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col+1,row+1,NO_CHAR);
+ PUTCH(col,row+2,R_CHAR);
+ PUTCH(col+1,row+2,R_CHAR);
+ goto out;
+ }
+ else goto badout;
- case R_TYPE-2 :
- if (IS_FREE(col-1,row+1) &&
- IS_FREE(col,row+1) &&
- IS_FREE(col+1,row+1))
- {
- PUTCH(col-1,row,NO_CHAR);
- PUTCH(col,row,NO_CHAR);
- PUTCH(col+1,row-1,NO_CHAR);
- PUTCH(col-1,row+1,R_CHAR);
- PUTCH(col,row+1,R_CHAR);
- PUTCH(col+1,row+1,R_CHAR);
- goto out;
- }
- else goto badout;
+ case R_TYPE-2 :
+ if (IS_FREE(col-1,row+1) &&
+ IS_FREE(col,row+1) &&
+ IS_FREE(col+1,row+1))
+ {
+ PUTCH(col-1,row,NO_CHAR);
+ PUTCH(col,row,NO_CHAR);
+ PUTCH(col+1,row-1,NO_CHAR);
+ PUTCH(col-1,row+1,R_CHAR);
+ PUTCH(col,row+1,R_CHAR);
+ PUTCH(col+1,row+1,R_CHAR);
+ goto out;
+ }
+ else goto badout;
- case R_TYPE-3 :
- if (IS_FREE(col-1,row) &&
- IS_FREE(col,row+2))
- {
- PUTCH(col-1,row-1,NO_CHAR);
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col-1,row,R_CHAR);
- PUTCH(col,row+2,R_CHAR);
- goto out;
- }
- else goto badout;
+ case R_TYPE-3 :
+ if (IS_FREE(col-1,row) &&
+ IS_FREE(col,row+2))
+ {
+ PUTCH(col-1,row-1,NO_CHAR);
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col-1,row,R_CHAR);
+ PUTCH(col,row+2,R_CHAR);
+ goto out;
+ }
+ else goto badout;
/* TAN PIECES */
- case T_TYPE :
- case T_TYPE-1 :
- case T_TYPE-2 :
- case T_TYPE-3 :
- if (IS_FREE(col,row+2) &&
- IS_FREE(col+1,row+2))
- {
- PUTCH(col,row,NO_CHAR);
- PUTCH(col+1,row,NO_CHAR);
- PUTCH(col,row+2,T_CHAR);
- PUTCH(col+1,row+2,T_CHAR);
- goto out;
- }
- else goto badout;
+ case T_TYPE :
+ case T_TYPE-1 :
+ case T_TYPE-2 :
+ case T_TYPE-3 :
+ if (IS_FREE(col,row+2) &&
+ IS_FREE(col+1,row+2))
+ {
+ PUTCH(col,row,NO_CHAR);
+ PUTCH(col+1,row,NO_CHAR);
+ PUTCH(col,row+2,T_CHAR);
+ PUTCH(col+1,row+2,T_CHAR);
+ goto out;
+ }
+ else goto badout;
/* YELLOW PIECES */
- case Y_TYPE :
- case Y_TYPE-2 :
- if (IS_FREE(col-1,row+2) &&
- IS_FREE(col,row+2) &&
- IS_FREE(col+1,row+1))
- {
- PUTCH(col-1,row+1,NO_CHAR);
- PUTCH(col,row,NO_CHAR);
- PUTCH(col+1,row,NO_CHAR);
- PUTCH(col-1,row+2,Y_CHAR);
- PUTCH(col,row+2,Y_CHAR);
- PUTCH(col+1,row+1,Y_CHAR);
- goto out;
- }
- else goto badout;
+ case Y_TYPE :
+ case Y_TYPE-2 :
+ if (IS_FREE(col-1,row+2) &&
+ IS_FREE(col,row+2) &&
+ IS_FREE(col+1,row+1))
+ {
+ PUTCH(col-1,row+1,NO_CHAR);
+ PUTCH(col,row,NO_CHAR);
+ PUTCH(col+1,row,NO_CHAR);
+ PUTCH(col-1,row+2,Y_CHAR);
+ PUTCH(col,row+2,Y_CHAR);
+ PUTCH(col+1,row+1,Y_CHAR);
+ goto out;
+ }
+ else goto badout;
- case Y_TYPE-1 :
- case Y_TYPE-3 :
- if (IS_FREE(col,row+1) &&
- IS_FREE(col+1,row+2))
- {
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col+1,row,NO_CHAR);
- PUTCH(col,row+1,Y_CHAR);
- PUTCH(col+1,row+2,Y_CHAR);
- goto out;
- }
- else goto badout;
+ case Y_TYPE-1 :
+ case Y_TYPE-3 :
+ if (IS_FREE(col,row+1) &&
+ IS_FREE(col+1,row+2))
+ {
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col+1,row,NO_CHAR);
+ PUTCH(col,row+1,Y_CHAR);
+ PUTCH(col+1,row+2,Y_CHAR);
+ goto out;
+ }
+ else goto badout;
/* GREEN PIECES */
- case G_TYPE :
- case G_TYPE-2 :
- if (IS_FREE(col-1,row+1) &&
- IS_FREE(col,row+2) &&
- IS_FREE(col+1,row+2))
- {
- PUTCH(col-1,row,NO_CHAR);
- PUTCH(col,row,NO_CHAR);
- PUTCH(col+1,row+1,NO_CHAR);
- PUTCH(col-1,row+1,G_CHAR);
- PUTCH(col,row+2,G_CHAR);
- PUTCH(col+1,row+2,G_CHAR);
- goto out;
- }
- else goto badout;
+ case G_TYPE :
+ case G_TYPE-2 :
+ if (IS_FREE(col-1,row+1) &&
+ IS_FREE(col,row+2) &&
+ IS_FREE(col+1,row+2))
+ {
+ PUTCH(col-1,row,NO_CHAR);
+ PUTCH(col,row,NO_CHAR);
+ PUTCH(col+1,row+1,NO_CHAR);
+ PUTCH(col-1,row+1,G_CHAR);
+ PUTCH(col,row+2,G_CHAR);
+ PUTCH(col+1,row+2,G_CHAR);
+ goto out;
+ }
+ else goto badout;
- case G_TYPE-1 :
- case G_TYPE-3 :
- if (IS_FREE(col-1,row+2) &&
- IS_FREE(col,row+1))
- {
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col-1,row,NO_CHAR);
- PUTCH(col,row+1,G_CHAR);
- PUTCH(col-1,row+2,G_CHAR);
- goto out;
- }
- else goto badout;
+ case G_TYPE-1 :
+ case G_TYPE-3 :
+ if (IS_FREE(col-1,row+2) &&
+ IS_FREE(col,row+1))
+ {
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col-1,row,NO_CHAR);
+ PUTCH(col,row+1,G_CHAR);
+ PUTCH(col-1,row+2,G_CHAR);
+ goto out;
+ }
+ else goto badout;
/* BLUE PIECES */
- case B_TYPE :
- if (IS_FREE(col-1,row+1) &&
- IS_FREE(col,row+1) &&
- IS_FREE(col+1,row+2))
- {
- PUTCH(col-1,row,NO_CHAR);
- PUTCH(col,row,NO_CHAR);
- PUTCH(col+1,row,NO_CHAR);
- PUTCH(col-1,row+1,B_CHAR);
- PUTCH(col,row+1,B_CHAR);
- PUTCH(col+1,row+2,B_CHAR);
- goto out;
- }
- else goto badout;
+ case B_TYPE :
+ if (IS_FREE(col-1,row+1) &&
+ IS_FREE(col,row+1) &&
+ IS_FREE(col+1,row+2))
+ {
+ PUTCH(col-1,row,NO_CHAR);
+ PUTCH(col,row,NO_CHAR);
+ PUTCH(col+1,row,NO_CHAR);
+ PUTCH(col-1,row+1,B_CHAR);
+ PUTCH(col,row+1,B_CHAR);
+ PUTCH(col+1,row+2,B_CHAR);
+ goto out;
+ }
+ else goto badout;
- case B_TYPE-1 :
- if (IS_FREE(col,row+2) &&
- IS_FREE(col+1,row))
- {
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col+1,row-1,NO_CHAR);
- PUTCH(col,row+2,B_CHAR);
- PUTCH(col+1,row,B_CHAR);
- goto out;
- }
- else goto badout;
+ case B_TYPE-1 :
+ if (IS_FREE(col,row+2) &&
+ IS_FREE(col+1,row))
+ {
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col+1,row-1,NO_CHAR);
+ PUTCH(col,row+2,B_CHAR);
+ PUTCH(col+1,row,B_CHAR);
+ goto out;
+ }
+ else goto badout;
- case B_TYPE-2 :
- if (IS_FREE(col-1,row+1) &&
- IS_FREE(col,row+1) &&
- IS_FREE(col+1,row+1))
- {
- PUTCH(col-1,row-1,NO_CHAR);
- PUTCH(col,row,NO_CHAR);
- PUTCH(col+1,row,NO_CHAR);
- PUTCH(col-1,row+1,B_CHAR);
- PUTCH(col,row+1,B_CHAR);
- PUTCH(col+1,row+1,B_CHAR);
- goto out;
- }
- else goto badout;
+ case B_TYPE-2 :
+ if (IS_FREE(col-1,row+1) &&
+ IS_FREE(col,row+1) &&
+ IS_FREE(col+1,row+1))
+ {
+ PUTCH(col-1,row-1,NO_CHAR);
+ PUTCH(col,row,NO_CHAR);
+ PUTCH(col+1,row,NO_CHAR);
+ PUTCH(col-1,row+1,B_CHAR);
+ PUTCH(col,row+1,B_CHAR);
+ PUTCH(col+1,row+1,B_CHAR);
+ goto out;
+ }
+ else goto badout;
- case B_TYPE-3 :
- if (IS_FREE(col-1,row+2) &&
- IS_FREE(col,row+2))
- {
- PUTCH(col-1,row+1,NO_CHAR);
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col-1,row+2,B_CHAR);
- PUTCH(col,row+2,B_CHAR);
- goto out;
- }
- else goto badout;
+ case B_TYPE-3 :
+ if (IS_FREE(col-1,row+2) &&
+ IS_FREE(col,row+2))
+ {
+ PUTCH(col-1,row+1,NO_CHAR);
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col-1,row+2,B_CHAR);
+ PUTCH(col,row+2,B_CHAR);
+ goto out;
+ }
+ else goto badout;
/* VIOLET PIECES */
- case V_TYPE :
- case V_TYPE-2 :
- if (IS_FREE(col-1,row+1) &&
- IS_FREE(col,row+1) &&
- IS_FREE(col+1,row+1) &&
- IS_FREE(col+2,row+1))
- {
- PUTCH(col-1,row,NO_CHAR);
- PUTCH(col,row,NO_CHAR);
- PUTCH(col+1,row,NO_CHAR);
- PUTCH(col+2,row,NO_CHAR);
- PUTCH(col-1,row+1,V_CHAR);
- PUTCH(col,row+1,V_CHAR);
- PUTCH(col+1,row+1,V_CHAR);
- PUTCH(col+2,row+1,V_CHAR);
- goto out;
- }
- else goto badout;
-
- case V_TYPE-1 :
- case V_TYPE-3 :
- if (IS_FREE(col,row+3))
- {
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col,row+3,V_CHAR);
- goto out;
- }
- else goto badout;
+ case V_TYPE :
+ case V_TYPE-2 :
+ if (IS_FREE(col-1,row+1) &&
+ IS_FREE(col,row+1) &&
+ IS_FREE(col+1,row+1) &&
+ IS_FREE(col+2,row+1))
+ {
+ PUTCH(col-1,row,NO_CHAR);
+ PUTCH(col,row,NO_CHAR);
+ PUTCH(col+1,row,NO_CHAR);
+ PUTCH(col+2,row,NO_CHAR);
+ PUTCH(col-1,row+1,V_CHAR);
+ PUTCH(col,row+1,V_CHAR);
+ PUTCH(col+1,row+1,V_CHAR);
+ PUTCH(col+2,row+1,V_CHAR);
+ goto out;
+ }
+ else goto badout;
- default :
- printf("Advance Piece: illegal piece type=%d!!\n",type);
- exit();
+ case V_TYPE-1 :
+ case V_TYPE-3 :
+ if (IS_FREE(col,row+3))
+ {
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col,row+3,V_CHAR);
+ goto out;
}
+ else goto badout;
+
+ default :
+ printf("Advance Piece: illegal piece type=%d!!\n",type);
+ exit(0);
+ }
badout:
- return(FALSE);
+ return(FALSE);
out:
- refresh();
- return(TRUE);
+ refresh();
+ return(TRUE);
}
}
colorpair;
-void init_colors()
+void init_colors(void)
{
start_color();
#endif /* EGA */
}
-void PUTCH(x,y,z)
-int x, y, z;
+void PUTCH(int x,int y,int z)
{
switch(z)
{
-
+#include <stdlib.h>
#include <curses.h>
#include "tet.h"
/*********************************************************************/
/*********************************************************************/
/* returns a random number in the set 4 8 16 20 24 or 28 */
-RandomPiece()
+RandomPiece(void)
{
return ((int)(mrand48() % 4) + 4) * 4;
}
default:
printf("illegal piece type=%d!!\n",type);
- exit();
+ exit(0);
/*NOTREACHED*/
}
}
-DrawPiece(type, col, row)
-int type, col, row;
+DrawPiece(int type, int col, int row)
{
switch (type)
{
default:
printf("illegal piece type=%d!!\n",type);
- exit();
+ exit(0);
}
refresh();
}
-
+#include <stdlib.h>
#include <curses.h>
#include "tet.h"
/*********************************************************************/
/* Switch on type of piece, find out if I can move left */
/* If so, then do it */
/*********************************************************************/
-MoveLeft(type, col, row)
-int type, col, row;
+MoveLeft(int type, int col, int row)
{
switch (type) {
/* WHITE PIECES */
default:
printf("illegal piece type=%d!!\n",type);
- exit();
+ exit(0);
}
}
-
+#include <stdlib.h>
#include <curses.h>
#include "tet.h"
+
/*********************************************************************/
/* Switch on type of piece, find out if I can move right */
/* If so, then do it */
/*********************************************************************/
-MoveRight(type, col, row)
-int type, col, row;
+MoveRight(int type, int col, int row)
{
switch (type) {
/* WHITE PIECES */
default:
printf("illegal piece type=%d!!\n",type);
- exit();
+ exit(0);
}
}
-
+#include <stdlib.h>
#include <curses.h>
#include "tet.h"
/*********************************************************************/
/* Switch on type of piece, find out if I can rotate */
/* If so, then do it */
/*********************************************************************/
-Rotate(type, col, row)
-int type, col, row;
+Rotate(int type, int col, int row)
{
-switch (type) {
+ switch (type) {
/* WHITE PIECES */
- case W_TYPE : /* checked */
- if (IS_FREE(col,row-1)) {
- PUTCH(col-1,row,NO_CHAR);
- PUTCH(col,row-1,W_CHAR);
- type--;
- }
- break;
- case W_TYPE-1 : /* checked */
- if (IS_FREE(col-1,row)) {
- PUTCH(col,row+1,NO_CHAR);
- PUTCH(col-1,row,W_CHAR);
- type--;
- }
- break;
- case W_TYPE-2 : /* checked */
- if (IS_FREE(col,row+1)) {
- PUTCH(col+1,row,NO_CHAR);
- PUTCH(col,row+1,W_CHAR);
- type--;
- }
- break;
- case W_TYPE-3 : /* checked */
- if (IS_FREE(col+1,row)) {
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col+1,row,W_CHAR);
- type = W_TYPE;
- }
- break;
+ case W_TYPE : /* checked */
+ if (IS_FREE(col,row-1)) {
+ PUTCH(col-1,row,NO_CHAR);
+ PUTCH(col,row-1,W_CHAR);
+ type--;
+ }
+ break;
+ case W_TYPE-1 : /* checked */
+ if (IS_FREE(col-1,row)) {
+ PUTCH(col,row+1,NO_CHAR);
+ PUTCH(col-1,row,W_CHAR);
+ type--;
+ }
+ break;
+ case W_TYPE-2 : /* checked */
+ if (IS_FREE(col,row+1)) {
+ PUTCH(col+1,row,NO_CHAR);
+ PUTCH(col,row+1,W_CHAR);
+ type--;
+ }
+ break;
+ case W_TYPE-3 : /* checked */
+ if (IS_FREE(col+1,row)) {
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col+1,row,W_CHAR);
+ type = W_TYPE;
+ }
+ break;
/* RED PIECES */
- case R_TYPE : /* checked */
- if (IS_FREE(col,row-1) && IS_FREE(col,row+1) &&
- IS_FREE(col+1,row+1)) {
- PUTCH(col-1,row,NO_CHAR);
- PUTCH(col-1,row+1,NO_CHAR);
- PUTCH(col+1,row,NO_CHAR);
- PUTCH(col,row-1,R_CHAR);
- PUTCH(col,row+1,R_CHAR);
- PUTCH(col+1,row+1,R_CHAR);
- type--;
- }
- break;
- case R_TYPE-1 : /* checked */
- if (IS_FREE(col-1,row) && IS_FREE(col+1,row-1) &&
- IS_FREE(col+1,row)) {
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col,row+1,NO_CHAR);
- PUTCH(col+1,row+1,NO_CHAR);
- PUTCH(col-1,row,R_CHAR);
- PUTCH(col+1,row-1,R_CHAR);
- PUTCH(col+1,row,R_CHAR);
- type--;
- }
- break;
- case R_TYPE-2 : /* checked */
- if (IS_FREE(col-1,row-1) && IS_FREE(col,row-1) &&
- IS_FREE(col,row+1)) {
- PUTCH(col-1,row,NO_CHAR);
- PUTCH(col+1,row-1,NO_CHAR);
- PUTCH(col+1,row,NO_CHAR);
- PUTCH(col-1,row-1,R_CHAR);
- PUTCH(col,row-1,R_CHAR);
- PUTCH(col,row+1,R_CHAR);
- type--;
- }
- break;
- case R_TYPE-3 : /* checked */
- if (IS_FREE(col-1,row) && IS_FREE(col-1,row+1) &&
- IS_FREE(col+1,row)) {
- PUTCH(col-1,row-1,NO_CHAR);
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col,row+1,NO_CHAR);
- PUTCH(col-1,row,R_CHAR);
- PUTCH(col-1,row+1,R_CHAR);
- PUTCH(col+1,row,R_CHAR);
- type = R_TYPE;
- }
- break;
+ case R_TYPE : /* checked */
+ if (IS_FREE(col,row-1) && IS_FREE(col,row+1) &&
+ IS_FREE(col+1,row+1)) {
+ PUTCH(col-1,row,NO_CHAR);
+ PUTCH(col-1,row+1,NO_CHAR);
+ PUTCH(col+1,row,NO_CHAR);
+ PUTCH(col,row-1,R_CHAR);
+ PUTCH(col,row+1,R_CHAR);
+ PUTCH(col+1,row+1,R_CHAR);
+ type--;
+ }
+ break;
+ case R_TYPE-1 : /* checked */
+ if (IS_FREE(col-1,row) && IS_FREE(col+1,row-1) &&
+ IS_FREE(col+1,row)) {
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col,row+1,NO_CHAR);
+ PUTCH(col+1,row+1,NO_CHAR);
+ PUTCH(col-1,row,R_CHAR);
+ PUTCH(col+1,row-1,R_CHAR);
+ PUTCH(col+1,row,R_CHAR);
+ type--;
+ }
+ break;
+ case R_TYPE-2 : /* checked */
+ if (IS_FREE(col-1,row-1) && IS_FREE(col,row-1) &&
+ IS_FREE(col,row+1)) {
+ PUTCH(col-1,row,NO_CHAR);
+ PUTCH(col+1,row-1,NO_CHAR);
+ PUTCH(col+1,row,NO_CHAR);
+ PUTCH(col-1,row-1,R_CHAR);
+ PUTCH(col,row-1,R_CHAR);
+ PUTCH(col,row+1,R_CHAR);
+ type--;
+ }
+ break;
+ case R_TYPE-3 : /* checked */
+ if (IS_FREE(col-1,row) && IS_FREE(col-1,row+1) &&
+ IS_FREE(col+1,row)) {
+ PUTCH(col-1,row-1,NO_CHAR);
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col,row+1,NO_CHAR);
+ PUTCH(col-1,row,R_CHAR);
+ PUTCH(col-1,row+1,R_CHAR);
+ PUTCH(col+1,row,R_CHAR);
+ type = R_TYPE;
+ }
+ break;
/* TAN PIECES */
- case T_TYPE :
- case T_TYPE-1 :
- case T_TYPE-2 :
- case T_TYPE-3 : break;
+ case T_TYPE :
+ case T_TYPE-1 :
+ case T_TYPE-2 :
+ case T_TYPE-3 : break;
/* YELLOW PIECES */
- case Y_TYPE :
- case Y_TYPE-2 : /* checked */
- if (IS_FREE(col,row-1) && IS_FREE(col+1,row+1)) {
- PUTCH(col-1,row+1,NO_CHAR);
- PUTCH(col,row+1,NO_CHAR);
- PUTCH(col,row-1,Y_CHAR);
- PUTCH(col+1,row+1,Y_CHAR);
- type--;
- }
- break;
- case Y_TYPE-1 :
- case Y_TYPE-3 : /* checked */
- if (IS_FREE(col-1,row+1) && IS_FREE(col,row+1)) {
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col+1,row+1,NO_CHAR);
- PUTCH(col-1,row+1,Y_CHAR);
- PUTCH(col,row+1,Y_CHAR);
- type = Y_TYPE;
- }
- break;
+ case Y_TYPE :
+ case Y_TYPE-2 : /* checked */
+ if (IS_FREE(col,row-1) && IS_FREE(col+1,row+1)) {
+ PUTCH(col-1,row+1,NO_CHAR);
+ PUTCH(col,row+1,NO_CHAR);
+ PUTCH(col,row-1,Y_CHAR);
+ PUTCH(col+1,row+1,Y_CHAR);
+ type--;
+ }
+ break;
+ case Y_TYPE-1 :
+ case Y_TYPE-3 : /* checked */
+ if (IS_FREE(col-1,row+1) && IS_FREE(col,row+1)) {
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col+1,row+1,NO_CHAR);
+ PUTCH(col-1,row+1,Y_CHAR);
+ PUTCH(col,row+1,Y_CHAR);
+ type = Y_TYPE;
+ }
+ break;
/* GREEN PIECES */
- case G_TYPE :
- case G_TYPE-2 : /* checked */
- if (IS_FREE(col-1,row+1) && IS_FREE(col,row-1)) {
- PUTCH(col,row+1,NO_CHAR);
- PUTCH(col+1,row+1,NO_CHAR);
- PUTCH(col-1,row+1,G_CHAR);
- PUTCH(col,row-1,G_CHAR);
- type--;
- }
- break;
- case G_TYPE-1 :
- case G_TYPE-3 : /* checked */
- if (IS_FREE(col,row+1) && IS_FREE(col+1,row+1)) {
- PUTCH(col-1,row+1,NO_CHAR);
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col,row+1,G_CHAR);
- PUTCH(col+1,row+1,G_CHAR);
- type = G_TYPE;
- }
- break;
+ case G_TYPE :
+ case G_TYPE-2 : /* checked */
+ if (IS_FREE(col-1,row+1) && IS_FREE(col,row-1)) {
+ PUTCH(col,row+1,NO_CHAR);
+ PUTCH(col+1,row+1,NO_CHAR);
+ PUTCH(col-1,row+1,G_CHAR);
+ PUTCH(col,row-1,G_CHAR);
+ type--;
+ }
+ break;
+ case G_TYPE-1 :
+ case G_TYPE-3 : /* checked */
+ if (IS_FREE(col,row+1) && IS_FREE(col+1,row+1)) {
+ PUTCH(col-1,row+1,NO_CHAR);
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col,row+1,G_CHAR);
+ PUTCH(col+1,row+1,G_CHAR);
+ type = G_TYPE;
+ }
+ break;
/* BLUE PIECES */
- case B_TYPE : /* checked */
- if (IS_FREE(col,row-1) && IS_FREE(col,row+1) &&
- IS_FREE(col+1,row-1)) {
- PUTCH(col-1,row,NO_CHAR);
- PUTCH(col+1,row,NO_CHAR);
- PUTCH(col+1,row+1,NO_CHAR);
- PUTCH(col,row-1,B_CHAR);
- PUTCH(col,row+1,B_CHAR);
- PUTCH(col+1,row-1,B_CHAR);
- type--;
- }
- break;
- case B_TYPE-1 : /* checked */
- if (IS_FREE(col-1,row-1) && IS_FREE(col-1,row) &&
- IS_FREE(col+1,row)) {
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col,row+1,NO_CHAR);
- PUTCH(col+1,row-1,NO_CHAR);
- PUTCH(col-1,row-1,B_CHAR);
- PUTCH(col-1,row,B_CHAR);
- PUTCH(col+1,row,B_CHAR);
- type--;
- }
- break;
- case B_TYPE-2 : /* checked */
- if (IS_FREE(col-1,row+1) && IS_FREE(col,row-1) &&
- IS_FREE(col,row+1)) {
- PUTCH(col-1,row-1,NO_CHAR);
- PUTCH(col-1,row,NO_CHAR);
- PUTCH(col+1,row,NO_CHAR);
- PUTCH(col-1,row+1,B_CHAR);
- PUTCH(col,row-1,B_CHAR);
- PUTCH(col,row+1,B_CHAR);
- type--;
- }
- break;
- case B_TYPE-3 : /* checked */
- if (IS_FREE(col-1,row) && IS_FREE(col+1,row) &&
- IS_FREE(col+1,row+1)) {
- PUTCH(col-1,row+1,NO_CHAR);
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col,row+1,NO_CHAR);
- PUTCH(col-1,row,B_CHAR);
- PUTCH(col+1,row,B_CHAR);
- PUTCH(col+1,row+1,B_CHAR);
- type = B_TYPE;
- }
- break;
+ case B_TYPE : /* checked */
+ if (IS_FREE(col,row-1) && IS_FREE(col,row+1) &&
+ IS_FREE(col+1,row-1)) {
+ PUTCH(col-1,row,NO_CHAR);
+ PUTCH(col+1,row,NO_CHAR);
+ PUTCH(col+1,row+1,NO_CHAR);
+ PUTCH(col,row-1,B_CHAR);
+ PUTCH(col,row+1,B_CHAR);
+ PUTCH(col+1,row-1,B_CHAR);
+ type--;
+ }
+ break;
+ case B_TYPE-1 : /* checked */
+ if (IS_FREE(col-1,row-1) && IS_FREE(col-1,row) &&
+ IS_FREE(col+1,row)) {
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col,row+1,NO_CHAR);
+ PUTCH(col+1,row-1,NO_CHAR);
+ PUTCH(col-1,row-1,B_CHAR);
+ PUTCH(col-1,row,B_CHAR);
+ PUTCH(col+1,row,B_CHAR);
+ type--;
+ }
+ break;
+ case B_TYPE-2 : /* checked */
+ if (IS_FREE(col-1,row+1) && IS_FREE(col,row-1) &&
+ IS_FREE(col,row+1)) {
+ PUTCH(col-1,row-1,NO_CHAR);
+ PUTCH(col-1,row,NO_CHAR);
+ PUTCH(col+1,row,NO_CHAR);
+ PUTCH(col-1,row+1,B_CHAR);
+ PUTCH(col,row-1,B_CHAR);
+ PUTCH(col,row+1,B_CHAR);
+ type--;
+ }
+ break;
+ case B_TYPE-3 : /* checked */
+ if (IS_FREE(col-1,row) && IS_FREE(col+1,row) &&
+ IS_FREE(col+1,row+1)) {
+ PUTCH(col-1,row+1,NO_CHAR);
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col,row+1,NO_CHAR);
+ PUTCH(col-1,row,B_CHAR);
+ PUTCH(col+1,row,B_CHAR);
+ PUTCH(col+1,row+1,B_CHAR);
+ type = B_TYPE;
+ }
+ break;
/* VIOLET PIECES */
- case V_TYPE :
- case V_TYPE-2 : /* checked */
- if (IS_FREE(col,row-1) && IS_FREE(col,row+1) &&
- IS_FREE(col,row+2)) {
- PUTCH(col-1,row,NO_CHAR);
- PUTCH(col+1,row,NO_CHAR);
- PUTCH(col+2,row,NO_CHAR);
- PUTCH(col,row-1,V_CHAR);
- PUTCH(col,row+1,V_CHAR);
- PUTCH(col,row+2,V_CHAR);
- type--;
- }
- break;
- case V_TYPE-1 :
- case V_TYPE-3 : /* checked */
- if (IS_FREE(col-1,row) && IS_FREE(col+1,row) &&
- IS_FREE(col+2,row)) {
- PUTCH(col,row-1,NO_CHAR);
- PUTCH(col,row+1,NO_CHAR);
- PUTCH(col,row+2,NO_CHAR);
- PUTCH(col-1,row,V_CHAR);
- PUTCH(col,row,V_CHAR);
- PUTCH(col+1,row,V_CHAR);
- PUTCH(col+2,row,V_CHAR);
- type = V_TYPE;
- }
- break;
- default :
- printf("illegal piece type=%d!!\n",type);
- exit();
- }
- refresh();
- return(type);
+ case V_TYPE :
+ case V_TYPE-2 : /* checked */
+ if (IS_FREE(col,row-1) && IS_FREE(col,row+1) &&
+ IS_FREE(col,row+2)) {
+ PUTCH(col-1,row,NO_CHAR);
+ PUTCH(col+1,row,NO_CHAR);
+ PUTCH(col+2,row,NO_CHAR);
+ PUTCH(col,row-1,V_CHAR);
+ PUTCH(col,row+1,V_CHAR);
+ PUTCH(col,row+2,V_CHAR);
+ type--;
+ }
+ break;
+ case V_TYPE-1 :
+ case V_TYPE-3 : /* checked */
+ if (IS_FREE(col-1,row) && IS_FREE(col+1,row) &&
+ IS_FREE(col+2,row)) {
+ PUTCH(col,row-1,NO_CHAR);
+ PUTCH(col,row+1,NO_CHAR);
+ PUTCH(col,row+2,NO_CHAR);
+ PUTCH(col-1,row,V_CHAR);
+ PUTCH(col,row,V_CHAR);
+ PUTCH(col+1,row,V_CHAR);
+ PUTCH(col+2,row,V_CHAR);
+ type = V_TYPE;
+ }
+ break;
+ default :
+ printf("illegal piece type=%d!!\n",type);
+ exit(0);
+ }
+ refresh();
+ return(type);
}
/* Tetrix by quentin */
+#include <stdlib.h>
#include <signal.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <stdio.h>
#include <curses.h>
+#include <string.h>
#include "tet.h"
#define HIGHCOUNT 10 /* count of high scorers to show */
refresh(); }
*/
#define UPSCORE(x) { ThisScore += x; \
- sprintf((char *)ScoreString,"%-06d",ThisScore); \
+ sprintf((char *)ScoreString,"%06d",ThisScore); \
mvaddstr(1,46,ScoreString); }
#define NULL_KEY '\0'
#define SCORE_KEY 'h'
#define MENU_KEY 'm'
-/**************************************************MAIN*****/
-main(argc, argv)
-int argc;
-char **argv;
-{
- if (argc >= 2)
- InitPause = atoi(argv[1]);
- else
- InitPause = 150;
- Init();
- for ( ; ; ) {
- NewGame();
- Play();
- DrawScore(ScoreIt());
- }
-}
-
/*************************************************************/
-Init()
+Init(void)
{
register char *ttnam, *p;
register int x,y,i,fd;
}
/**************************************************************/
-NewGame()
+NewGame(void)
{
register int x,y;
}
/******************************************************************/
-DrawBox(t, l, d, w)
-int t, l, d, w;
+DrawBox(int t, int l, int d, int w)
{
register int x, y;
}
/******************************************************************/
-DrawMenu()
+DrawMenu(void)
{
register int y;
erase();
}
/**************************************************************/
-Play()
+Play(void)
{
int Type; /* Type specifies rotation, shape and color of blocks */
int Row; /* Row of pivot point of block */
}
/*********************************************************************/
-ScoreIt()
+ScoreIt(void)
{
register int oldmask,fd,i,j;
}
/***********************************************************************/
-DrawScore(highindex)
-int highindex;
+DrawScore(int highindex)
{
register int j;
}
/*********************************************************************/
-Boss()
+Boss(void)
{ register int x,y;
clear();
}
/*********************************************************************/
-GetKey()
+GetKey(void)
{
int c;
}
/*********************************************************************/
-TestRows()
+TestRows(void)
{ register int x,y,tempy,fullrow;
int marked[BOARD_HIGH];
}
/***********************************************************/
-Leave()
+Leave(void)
{
erase();
#ifdef CHATTY
endwin();
exit(0);
}
+
+/**************************************************MAIN*****/
+main(argc, argv)
+int argc;
+char **argv;
+{
+ if (argc >= 2)
+ InitPause = atoi(argv[1]);
+ else
+ InitPause = 150;
+ Init();
+ for ( ; ; ) {
+ NewGame();
+ Play();
+ DrawScore(ScoreIt());
+ }
+}