piggy.c

来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 2,054 行 · 第 1/4 页

C
2,054
字号
/*  <SecCrypt CPL V3R05>  */
 
/******************************************************************************/
//  piggy  room,  test,  by  pickle.
//  1-17-98
/******************************************************************************/
//  inherit  and  include

#include  <ansi.h>
inherit  ROOM;

/******************************************************************************/
//  declare  global  variables.

//  cards  are  each  a  mapping  variable,  with  name,  status  (played?
//  in  hand?  on  table?  collected?),  worth,  misc  (pig?  sheep?  
//  blood?  doubler?).

mapping  *CARDS=({
([]),
([  "name":  HIB  "黑桃A"  NOR,
	"suit":  "spade",
	"rank":  14,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "黑桃K"  NOR,
	"suit":  "spade",
	"rank":  13,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "黑桃Q"  NOR,
	"suit":  "spade",
	"rank":  12,
	"status":  "undealt",
	"worth":  -10000,
	"misc":  "pig",
	]),
([  "name":  HIB  "黑桃J"  NOR,
	"suit":  "spade",
	"rank":  11,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "黑桃T"  NOR,
	"suit":  "spade",
	"rank":  10,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "黑桃9"  NOR,
	"suit":  "spade",
	"rank":  9,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "黑桃8"  NOR,
	"suit":  "spade",
	"rank":  8,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "黑桃7"  NOR,
	"suit":  "spade",
	"rank":  7,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "黑桃6"  NOR,
	"suit":  "spade",
	"rank":  6,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "黑桃5"  NOR,
	"suit":  "spade",
	"rank":  5,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "黑桃4"  NOR,
	"suit":  "spade",
	"rank":  4,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "黑桃3"  NOR,
	"suit":  "spade",
	"rank":  3,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "黑桃2"  NOR,
	"suit":  "spade",
	"rank":  2,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIR  "红桃A"  NOR,
	"suit":  "heart",
	"rank":  14,
	"status":  "undealt",
	"worth":  -5000,
	"misc":  "blood",
	]),
([  "name":  HIR  "红桃K"  NOR,
	"suit":  "heart",
	"rank":  13,
	"status":  "undealt",
	"worth":  -4000,
	"misc":  "",
	]),
([  "name":  HIR  "红桃Q"  NOR,
	"suit":  "heart",
	"rank":  12,
	"status":  "undealt",
	"worth":  -3000,
	"misc":  "",
	]),
([  "name":  HIR  "红桃J"  NOR,
	"suit":  "heart",
	"rank":  11,
	"status":  "undealt",
	"worth":  -2000,
	"misc":  "",
	]),
([  "name":  HIR  "红桃T"  NOR,
	"suit":  "heart",
	"rank":  10,
	"status":  "undealt",
	"worth":  -1000,
	"misc":  "",
	]),
([  "name":  HIR  "红桃9"  NOR,
	"suit":  "heart",
	"rank":  9,
	"status":  "undealt",
	"worth":  -1000,
	"misc":  "",
	]),
([  "name":  HIR  "红桃8"  NOR,
	"suit":  "heart",
	"rank":  8,
	"status":  "undealt",
	"worth":  -1000,
	"misc":  "",
	]),
([  "name":  HIR  "红桃7"  NOR,
	"suit":  "heart",
	"rank":  7,
	"status":  "undealt",
	"worth":  -1000,
	"misc":  "",
	]),
([  "name":  HIR  "红桃6"  NOR,
	"suit":  "heart",
	"rank":  6,
	"status":  "undealt",
	"worth":  -1000,
	"misc":  "",
	]),
([  "name":  HIR  "红桃5"  NOR,
	"suit":  "heart",
	"rank":  5,
	"status":  "undealt",
	"worth":  -1000,
	"misc":  "",
	]),
([  "name":  HIR  "红桃4"  NOR,
	"suit":  "heart",
	"rank":  4,
	"status":  "undealt",
	"worth":  -1,
	"misc":  "",
	]),
([  "name":  HIR  "红桃3"  NOR,
	"suit":  "heart",
	"rank":  3,
	"status":  "undealt",
	"worth":  -1,
	"misc":  "",
	]),
([  "name":  HIR  "红桃2"  NOR,
	"suit":  "heart",
	"rank":  2,
	"status":  "undealt",
	"worth":  -1,
	"misc":  "",
	]),
([  "name":  HIR  "方片A"  NOR,
	"suit":  "diamond",
	"rank":  14,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIR  "方片K"  NOR,
	"suit":  "diamond",
	"rank":  13,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIR  "方片Q"  NOR,
	"suit":  "diamond",
	"rank":  12,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIR  "方片J"  NOR,
	"suit":  "diamond",
	"rank":  11,
	"status":  "undealt",
	"worth":  10000,
	"misc":  "sheep",
	]),
([  "name":  HIR  "方片T"  NOR,
	"suit":  "diamond",
	"rank":  10,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIR  "方片9"  NOR,
	"suit":  "diamond",
	"rank":  9,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIR  "方片8"  NOR,
	"suit":  "diamond",
	"rank":  8,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIR  "方片7"  NOR,
	"suit":  "diamond",
	"rank":  7,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIR  "方片6"  NOR,
	"suit":  "diamond",
	"rank":  6,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIR  "方片5"  NOR,
	"suit":  "diamond",
	"rank":  5,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIR  "方片4"  NOR,
	"suit":  "diamond",
	"rank":  4,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIR  "方片3"  NOR,
	"suit":  "diamond",
	"rank":  3,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIR  "方片2"  NOR,
	"suit":  "diamond",
	"rank":  2,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "草花A"  NOR,
	"suit":  "club",
	"rank":  14,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "草花K"  NOR,
	"suit":  "club",
	"rank":  13,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "草花Q"  NOR,
	"suit":  "club",
	"rank":  12,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "草花J"  NOR,
	"suit":  "club",
	"rank":  11,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "草花T"  NOR,
	"suit":  "club",
	"rank":  10,
	"status":  "undealt",
	"worth":  5000,
	"misc":  "doubler",
	]),
([  "name":  HIB  "草花9"  NOR,
	"suit":  "club",
	"rank":  9,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "草花8"  NOR,
	"suit":  "club",
	"rank":  8,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "草花7"  NOR,
	"suit":  "club",
	"rank":  7,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "草花6"  NOR,
	"suit":  "club",
	"rank":  6,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "草花5"  NOR,
	"suit":  "club",
	"rank":  5,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "草花4"  NOR,
	"suit":  "club",
	"rank":  4,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "草花3"  NOR,
	"suit":  "club",
	"rank":  3,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
([  "name":  HIB  "草花2"  NOR,
	"suit":  "club",
	"rank":  2,
	"status":  "undealt",
	"worth":  0,
	"misc":  "",
	]),
});

int  CARDNO=sizeof(CARDS)-1;

//  these  two  are  for  updating  the  table  when  players  play  cards.
//  if  they  want  to  see  the  whole  thing,  show  FULL,  otherwise  show
//  SHORT,  difference  being  short  is  only  cards  on  table,  and  full
//  is  those  sold  and  those  played.

string  COLLECT_STATE  =  "
%s

         "+HIC+"%|12s"+NOR+"
       ┌────────┐
       │     │
       │        │
       │        │
 "+HIC+"%+12s"+NOR+"│  │"+HIC+"%-12s"+NOR+"
       │        │
       │        │
       │     │
       └────────┘
         "+HIC+"%|12s"+NOR+"

";

string  PIGSTATE_FULL  =  "
%s

          "+HIC+"%|12s"+NOR+"
        ┌────────┐
        │%s│
      ┌─┼────────┼─┐
      │%2s│    %6s    │%2s│
      │ │        │ │
      │%2s│        │%2s│
"+HIC+"%+12s"+NOR+"│ │%6s  %6s│ │"+HIC+"%-12s"+NOR+"
      │%2s│        │%2s│
      │ │        │ │
      │%2s│    %6s    │%2s│
      └─┼────────┼─┘
        │%s│
        └────────┘
          "+HIC+"%|12s"+NOR+"

";

string  PIGSTATE_SHORT  =  "
%s

         "+HIC+"%|12s"+NOR+"
       ┌────────┐
       │    %6s    │
       │        │
       │        │
 "+HIC+"%+12s"+NOR+"│%6s  %6s│"+HIC+"%-12s"+NOR+"
       │        │
       │        │
       │    %6s    │
       └────────┘
         "+HIC+"%|12s"+NOR+"

";

string*  DIR=({  "east",  "north",  "west",  "south",});
string*  SUIT=({"spade",  "heart",  "diamond",  "club",});
int  LIMIT  =  -5000;
mapping  CSUIT=([
"spade":  HIB"黑桃"NOR,
"heart":  HIR"红桃"NOR,
"diamond":  HIR"方片"NOR,
"club":  HIB"草花"NOR,
]);

mapping  CDIR  =  ([
"east"  :  "东",
"north":  "北",
"west"  :  "西",
"south":  "南",
]);

mapping  SCARD=([
"pig":  HIB,
"blood":  HIR,
"sheep":  HIR,
"doubler":  HIB,
]);
mapping  NCARD=([
"pig":  3,
"blood":  14,
"sheep":  30,
"doubler":  44,
]);
mapping  CCARD=([
"pig":  "猪("+HIB+"黑桃Q"+NOR+")",
"sheep":  "羊("+HIR+"方片J"+NOR+")",
"doubler":  "变压器("+HIB+"草花T"+NOR+")",  
"blood":  "血("+HIR+"红桃A"+NOR+")",
]);

string  *CNUM  =  ({"?",  "1",  "2",  "3",  "4",  "5",  "6",
"7",  "8",  "9",  "T",  "J",  "Q",  "K",  "A",  });

int  NUM  =  4;
/******************************************************************************/
//  following  will  change.

//  game  info...

mapping  GAMEINFO=([
"round":  0,
"rlead":"",
"next":"",
"suit":"",
"spade":  0,
"heart":  0,
"diamond":  0,
"club":  0,
]);

string  PIG_OWNER="";

mapping  SCORING=([
"sitting":  ([      "east":  0,
		"west":  0,
		"south":  0,
		"north":  0,  ]),
"hand"      :  ([      "east":  0,
		"west":  0,
		"south":  0,

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?