home *** CD-ROM | disk | FTP | other *** search
/ ftp.ee.pdx.edu / 2014.02.ftp.ee.pdx.edu.tar / ftp.ee.pdx.edu / oss / cvs-2004 / psang / xtron.c,v < prev    next >
Text File  |  2003-07-07  |  3KB  |  155 lines

  1. head     1.1;
  2. branch   1.1.1;
  3. access   ;
  4. symbols  Initial:1.1.1.1 psang:1.1.1;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.1
  10. date     2003.07.07.19.32.23;  author jhoffman;  state Exp;
  11. branches 1.1.1.1;
  12. next     ;
  13.  
  14. 1.1.1.1
  15. date     2003.07.07.19.32.23;  author jhoffman;  state Exp;
  16. branches ;
  17. next     ;
  18.  
  19.  
  20. desc
  21. @@
  22.  
  23.  
  24.  
  25. 1.1
  26. log
  27. @Initial revision
  28. @
  29. text
  30. @/* tron.c - xtron v1.1 player routines
  31.  *
  32.  *   Copyright (C) 1995 Rhett D. Jacobs <rhett@@hotel.canberra.edu.au>
  33.  *
  34.  *  This program is free software; you can redistribute it and/or modify
  35.  *  it under the terms of the GNU General Public License as published by
  36.  *  the Free Software Foundation; either version 1, or (at your option)
  37.  *  any later version.
  38.  *
  39.  *  This program is distributed in the hope that it will be useful,
  40.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  41.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  42.  *  GNU General Public License for more details.
  43.  *
  44.  *  You should have received a copy of the GNU General Public License
  45.  *  along with this program; if not, write to the Free Software
  46.  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  47.  *
  48.  *  Last Modified: 16/4/95
  49.  */
  50.  
  51. #include "xtron.h"
  52.  
  53. void plr_setup(void)
  54. {
  55.   int i;
  56.  
  57.   /* set starting directions and player types, plus scores */
  58.   p[0].plr_dir = left;
  59.   p[1].plr_dir = right;
  60.   
  61.   for (i=0; i < 2; i++) {
  62.     p[i].plr_type = computer;
  63.     p[i].alive = 1;
  64.     p[i].score = 0;
  65.     p[i].co_ords[1] = MAXVERT/2;
  66.   }
  67.   p[0].co_ords[0] = (MAXHORZ/2)-3;
  68.   p[1].co_ords[0] = (MAXHORZ/2)+3;
  69. }
  70.  
  71.  
  72. int plr_checkmove(int p_num, int new_val, int axis_type, enum directions dir)
  73. {
  74.   enum directions temp = left;
  75.  
  76.   switch (p[p_num].plr_dir) {
  77.   case left:
  78.     temp = right; break;
  79.   case right:
  80.     temp = left; break;
  81.   case up:
  82.     temp = down; break;
  83.   case down:
  84.     temp = up; break;
  85.   }
  86.   
  87.   /* if move is in the opposite direction - invalid */
  88.   if (dir == temp)
  89.     return(0);
  90.   return(1);
  91. }
  92.  
  93.  
  94. void plr_turn(int p_num, enum directions dir)
  95. {
  96.   switch(dir) {
  97.   case left:
  98.     if (plr_checkmove(p_num, (p[p_num].co_ords[0])-1, 0, dir))
  99.       p[p_num].plr_dir = left;
  100.     break;
  101.   case right:
  102.     if (plr_checkmove(p_num, (p[p_num].co_ords[0])+1, 0, dir))
  103.       p[p_num].plr_dir = right;
  104.     break;
  105.   case up:
  106.     if (plr_checkmove(p_num, (p[p_num].co_ords[1])-1, 1, dir))
  107.       p[p_num].plr_dir = up;
  108.     break;
  109.   case down:
  110.     if (plr_checkmove(p_num, (p[p_num].co_ords[1])+1, 1, dir))
  111.       p[p_num].plr_dir = down;
  112.     break;
  113.    }
  114. }
  115.  
  116.  
  117. void brd_setup(void)
  118. {
  119.   int i,j;
  120.  
  121.   /* clear board */
  122.   for(i=0; i< DIMS; i++)
  123.     for(j=0;j< DIMS;j++)
  124.       b.contents[i][j] = 0;
  125.   
  126.   /* inital player pieces */
  127.   brd_newcontents((MAXHORZ/2)-3, MAXVERT/2, 1);
  128.   brd_newcontents((MAXHORZ/2)+3, MAXVERT/2, 2);
  129. }
  130.  
  131.  
  132. int brd_newcontents(int x, int y, int what)
  133. {
  134.   /* 0 - Empty, 1 - Player 1, 2 - Player 2 */ 
  135.   if (x > DIMS || x < 0)
  136.     return(0);
  137.   if (y > DIMS || y < 0)
  138.     return(0);
  139.   if (b.contents[x][y] != 0)
  140.     return(0);
  141.   else {
  142.     b.contents[x][y] = what;
  143.     return(1);
  144.   }
  145. }
  146. @
  147.  
  148.  
  149. 1.1.1.1
  150. log
  151. @Protocol for Simple Arcade-Style Network Gaming
  152. @
  153. text
  154. @@
  155.