数学建模社区-数学中国
标题: C语言技术文章 [打印本页]
作者: 韩冰 时间: 2004-10-4 02:34
标题: C语言技术文章
<DIV align=left>
3 D1 | N4 G8 a5 n# @% T<
align=left>程序目的:3 G, y* d5 \. H- T" J5 G8 h
输入一个任意大小的迷宫,用栈求出一条走出迷宫的路径,并
- Z8 G! B2 k- h+ a! {: Q! z% _, W% I显示在屏幕上。; ]5 `2 O5 |$ X, E. B
程序实现:
' B4 K9 @, p+ G z) }: x# E可以实现载入迷宫和保存迷宫,附带文件中有4个测试迷宫路径的
# [% E& `& Q7 L; C5 D) C文件test1~4.dd。请将这些文件拷贝到TC当前目录下,或者在载
' K6 n7 y, p! m7 |2 ]入时写明完全路径。由于屏幕大小的限制,当用户自己输入迷宫. w" a' r2 _3 ~
时一定要注意:迷宫大小是有限制的,不小于4*3,不大于30*20。
2 ?2 ~% f$ G$ E6 F" Y否则会出现错误信息。输入开始时全是墙,用上下左右键移动,
( r- w3 l8 M* n. t5 y4 m- y用Del键删除墙,形成通路,用Enter键添加墙。输入结束时可以
" L6 N+ |% I9 m/ p# s将迷宫保存下来,以dd为扩展名。输入完毕时用F9键来得到结果,; W& x4 @$ i: Z1 F* ^
找到路径时,屏幕下方会出现Path found,否则出现Path not found。
3 ^# ^- w6 a3 {( H6 i B程序经Turbo C 2.0编译调试成功。运行时不用添加任何运行库。0 H8 W/ L# F* g" q' G0 c+ r( r4 b) j
不可以在VC上编译。
1 H0 S- _* h4 x& ~" s G ^$ a下载DOS版和windows版的迷宫游戏全部代码$ l' V, ?5 n: c- Q. q- b# f
用户名:migong 9 B7 P8 u6 X1 z6 g
----------------------------------------------------------------------------------, X& ~8 B: ~7 ^0 Z) h
/*
9 T" Y s6 u- Y( U9 ?6 zMazePath Demo BY Turbo C 2.06 l2 ~, T% Z- {" s+ t% s
Copyright(c) RoverUnion. All right reserved.. D) p" J1 E% Y
Filename: Maze.c z! K5 ~ ^3 c6 b6 U4 ?
Author Dongchengyu.8 D t8 n9 E4 G
Ver 1.10# k1 C. P' X5 U, o' ^" y
*/* M8 {+ S& \* s' \
#include <stdio.h>
- F! K9 d& b( V# c4 L/ J#include <stdlib.h>
$ ^) q7 b5 p. U0 O1 O7 b5 K#include <malloc.h>
" d, _! r( d) E% N+ ?#include <conio.h>5 O+ `# d2 T X$ d3 ]) D% O
#include <dos.h>
6 F( {" @$ Y6 \, b#define OK 16 z$ A. ?/ ^* ~1 z
#define ERROR 01 y+ P' @* X3 R8 f6 S* b1 r9 q) t
#define TRUE 1
$ o+ D1 p. D j. Z#define FALSE 0
\/ s- H+ [4 s/ m& H4 n9 k( B7 R#define F9 0x43' Q% }9 h% V, c5 e& Z
#define Esc 0x1b
0 s" D) W. O0 R3 I9 S#define Del 0x53
U* p" U r8 m, N7 [#define Home 0x472 j( h+ ?$ C, N+ x
#define End 0x4f5 C3 h$ s t$ J
#define Space 0x20/ M* H6 w' ~1 `) `% {
#define Up 0x48; r# u8 ?6 R: J7 `4 \
#define Down 0x50; e5 [3 o/ X j; p/ `# P
#define Left 0x4b& P3 Y. V9 G0 H- y" Z
#define Right 0x4d
' k X5 \' X+ X' _' v0 a#define Enter 0x0d
% ^/ O% ~* \0 R/ \8 u- v, P#define F2 0x3c
7 }0 W6 b$ I) p& k. C7 t#define F3 0x3d
' D+ O; J& v. B* k& ~4 M( c#define STACK_INIT_SIZE 200/ k" p6 N2 o% u, ?+ @ w
#define STACKINCREMENT 10
- J+ V: q6 U! D1 e7 Rtypedef int Boolean;
- B) e! i- e; a6 Vtypedef int Status;
. w3 v( m& l0 w+ [typedef struct {
8 z% B- D: z. b7 g# Mint x;0 \ x: n# U' w3 k+ v) Q
int y;
4 q9 ?: x4 J& k I7 p+ \9 D} PosType;
* h, F- N& ^* ?7 v, rtypedef struct {
4 l3 W' E% F5 \7 U: u- |. Jint ord;) f9 d. v1 i$ M
PosType seat;# R3 w3 Z4 j& M. v
int di;& a- S" S+ t& C+ g# `' m
} SElemType;5 s# E( q# {0 P1 D4 h4 p) `( u
typedef struct {6 N! `! z6 m8 V" V
int td;
+ M* W8 Z, a% o/ \4 J0 _0 ]* Aint foot;
# `; {6 C/ t- ^: W7 lint mark;) ?, i2 v9 }; I" `
} MazeType;( A) M- z4 b" B) E4 c9 L
typedef struct {4 P; p, E: P+ l, V
SElemType *base;
4 W$ E6 b2 |1 n# G8 DSElemType *top;- k/ f& r) B+ q% K( s' e
int stacksize;2 R' X) t$ l; A( I/ V
} Stack;) y$ Y5 U' }1 h: g. @9 Y0 o/ S
int Maze[20][30];* Z5 g- e) i4 H* P9 B
MazeType maze[20][30];
* P4 r8 X) f! ^" X4 NPosType StartPlace;: ~% l) n; p1 ~- q7 m
PosType EndPlace;
8 J: z4 G# j# m8 \9 E/ `int count;+ W9 B1 {4 ?9 F; V+ U8 K
int m,n;. {1 t; o& M0 J8 n; L5 W2 d
Boolean b_start=FALSE,b_end=FALSE;
" O0 H! y4 { A* H2 z- k' Dvoid CreatMaze(void);
) u( h" x% G) r9 h& f- lStatus SaveMaze(char *filename);
! K6 F& U S6 n: ]; A3 a2 Q6 |Status LoadMaze(char *filename);" A- `: x4 ^1 y* M7 h
void Error(char *message);
8 \' b$ ^2 z* {" B# E4 jStatus InitStack(Stack *s);+ g3 d+ f c* U# P. q. U
Status DestroyStack(Stack *s);
, x3 k$ f# h. nStatus ClearStack(Stack *s);
/ `, H( [1 I" h @2 U& B1 G+ ] ZBoolean StackEmpty(Stack *s);; _: | z8 v p0 s$ W6 R
int StackLength(Stack *s);4 J# R* i4 a3 B3 [: [7 c4 T
Status Push(Stack *s,SElemType e);; t. Z. S1 P( i G/ r4 a1 b$ V
SElemType Pop(Stack *s,SElemType e);% S, j8 T. {* M4 ]2 U+ j4 j' x# P
Status GetTop(Stack *s,SElemType *e);
5 ? G# C+ V z& q9 JStatus StackTraverse(Stack *s,Status (* visit)(SElemType *se));$ q5 z. e: Y- q- c
Boolean Pass(PosType curpos);
8 q7 M$ s* Z# L2 z; fvoid MarkPrint(PosType seat);
& f7 H$ M* Q' M6 ?8 [" mvoid FootPrint(PosType curpos);7 ]$ ^$ n. k! ^7 P4 R& ?2 }
PosType NextPos(PosType seat,int di);
3 ]1 O' E: \# \1 z/ Z/ MStatus MazePath(PosType start,PosType end);6 f T" }* s$ t- P6 k9 G
void CreatMaze(void)7 Q; A, @) Z7 H+ C
/* Form the maze. */
1 R; `1 e7 N" i6 a4 g{
. X/ r% z+ ]+ u v3 u9 y$ Ivoid Error(char *message);$ _. Z( J5 c) H/ E
Status SaveMaze(char *filename);; ^2 b. b: e1 o
Status LoadMaze(char *filename);
8 V" U3 x% _& f2 _int i,j;
' @0 H5 q4 p/ S* {; A8 Dint x,y;
2 d7 C& M* {9 C! B3 |8 _char c;) n' _) E: O0 |# i8 e; X
char savename[12],loadname[12];: m& B0 `& B; c) Y" C4 @
Boolean flag=FALSE,load=FALSE;8 U* ~7 i, d" j+ Z0 M
clrscr();8 z& z; f, i6 ?" U* x0 q- k
printf("Menu:\n\n");
" N ]/ n$ r. l2 X' cprintf("1.Load Mazefile
*.dd)\n\n");9 h% M/ S* M2 S2 g& D
printf("2.Input Maze:\n\n");
% h6 {( o3 \3 ]printf("Input your choice: ");
/ a+ N; ^& I$ P$ i% ^( cdo. g3 Y$ [% T+ N! Q/ t; J
{
_, a. @9 Z$ M% t: D" yc=getch();- j8 C9 P* I" e) _
switch(c)
& ?/ b" b4 ?: @! F( y{& u! o [6 f. G' x) p% U
case ''''''''''''''''''''''''''''''''1'''''''''''''''''''''''''''''''': putch(''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''); break;
0 T! U$ m% r' k! r3 zcase ''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''': putch(''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''); break;: K Y! m. v7 A
case Esc: sleep(1); exit(1);* P( e! a( ^: q* n H0 v
default: break;
2 d! K/ T5 f0 ?3 B- N# S}
! p% b& u% |/ G* p0 _}
; J! H. ^: v5 ~$ N# c7 mwhile(c!=''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''&&c!=''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''') ;
0 G( g5 k+ @- B( l/ ]* N/ sif(c==''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''): G J1 r- P2 q+ W( N" w' ~: Z
{# E: _% f6 N( A0 s% m; `4 E
printf("\n\nLoadName: ");
+ I; S( w( u9 I9 dscanf("%s",loadname);: E6 k% j. I4 P$ u4 N3 G
if(LoadMaze(loadname))
) P! L/ |! p8 g" ~$ B3 m{2 } u" O. q3 B9 x" q- l
sleep(1); load=TRUE;& o1 | X f* Y( W) b
}3 Z# a8 x+ @( \7 L: {, ]
else { gotoxy(1,9); printf("Load fail! "); }8 F; E$ _. l; Y
}
& P! g- V& T8 D- [, I# Y. @if(!load)
6 W( J- R1 r2 z- m) `{5 Y; y! ^2 z6 V7 X
printf("\nInput the maze''''''''''''''''''''''''''''''''s size:\n");
/ G" E8 I: K5 c |' U5 ?! c5 Iprintf("\nInput Length :\n");
! S* H& X, c2 a, j+ kscanf("%d",&m);
9 Y n+ L( u0 |4 t; cprintf("\nInput Width :\n");
7 b* k+ t' q# H3 Z7 r' e5 s3 xscanf("%d",&n);
$ ]/ q9 d$ l. R! X+ h$ r% [if(m<4||n<4) Error("Input");
1 ~! w) a+ {* r% Zif(m>30||n>20) Error("Maze too large");
( z4 K' u4 D# j, ffor(i=0;i<30;i++)0 m8 c. | x0 s7 ~
for(j=0;j<20;j++)7 M8 A! ?2 Y( |
Maze[j]=2;
' t2 j$ ?) i, z4 ~9 `* W0 O( JStartPlace.x=0;& y/ n L8 l4 Y1 b& U: f/ o
StartPlace.y=0;# y4 J/ V, |" S3 o) p
EndPlace.x=0;
; `- W8 g0 h0 n. g& |, hEndPlace.y=0;
; U; |( @4 b- ?- ~: Fclrscr();
! g+ v7 ]) g8 |1 R' n" t1 Vprintf("\n");
9 {3 x' x; q% d! M$ efor(i=1;i<=n;i++)
* G4 m3 o* U3 |7 Q1 }{5 R) P1 g# ^, V& k1 Z* t
for(j=1;j<=m;j++)- u+ e9 @; S6 u( E
{
1 F0 N7 p2 W8 K7 r& N8 R9 p. H0 |printf(" #");7 q9 Y* p/ V3 U
Maze[i-1][j-1]=0;5 o# G5 P, |: z1 k$ v
}7 f8 N5 [8 c# p7 G+ q
printf("\n");
% w( M- v. G6 C+ v8 ?}* \0 G( R/ \, n
}
8 c% k4 N* r! ^! Ugotoxy(65,5);
# G( y5 W3 ?- W/ R4 hprintf("''''''''''''''''''''''''''''''''#'''''''''''''''''''''''''''''''':Wall");
7 P5 h7 q0 k% T5 F( }1 _* lgotoxy(65,7);
& Z1 }6 y7 x+ X" Hprintf("Start:Home");) V2 p( W4 W' P0 C8 M: W
gotoxy(65,9);
% g! A3 G; a; f) F. H! q9 |8 Bprintf("End:End");
- q6 Q$ T, l& } b, \) i. wgotoxy(65,11);+ q) ?7 U# H" @& f. h
printf("Delete Wall
el");8 ]7 d; ?2 y- w5 P
gotoxy(65,13);
3 v; w. a6 F' J) A; Gprintf("Enter Wall:Enter");8 R) N& @% I! q( d
gotoxy(65,15);
8 Z) x) H* |! A; b, `7 h8 Aprintf("Save Maze:F2"); y+ O. t6 ^3 f( B( m8 a1 N
gotoxy(65,17);3 I2 k# r, \% \ l3 T
printf("Complete:F9");% M1 v1 v8 c* |
gotoxy(65,19);& w1 ]. U1 H8 v7 Y. g5 A
printf("Exit:Esc");
3 U5 P( Z8 l! Igotoxy(4,3);
* G+ q* [7 F# D! K Wx=4;y=3; o! \: }4 O% T2 c
do F# _* C$ P4 S; L- [9 k
{
8 t+ y: U2 }: n5 O: G+ qc=getch();
4 f9 w: W; e1 W% m0 T: k4 ?4 d, tswitch(c)
7 e2 L4 a% a/ S4 D{
% P2 d- C4 G$ u5 Y. c2 icase Up: if(y>3) { y--; gotoxy(x,y); }
- J8 f4 W5 K4 o# ybreak;
+ o9 F- u" y$ y0 i+ acase Down: if(y<n) { y++; gotoxy(x,y); }. Q5 S' p0 C4 k: x9 w9 B- l$ N/ o
break;) b4 K. x' ~5 V$ Z5 j8 e0 m, [* H
case Left: if(x>4) { x-=2; gotoxy(x,y); }
$ J' L L# ?* O8 Q {9 ~# jbreak;
% a+ `" C2 {2 }: N% Y8 pcase Right: if(x<2*m-2) { x+=2; gotoxy(x,y); }' Q; }( W7 ^: ]( Q( T- n
break;: X0 W% S( j! N0 R
case Del: if(y-2==StartPlace.y&&x/2-1==StartPlace.x) b_start=FALSE;: c) J- `6 A L1 X' s' H# J7 D; |
if(y-2==EndPlace.y&&x/2-1==EndPlace.x) b_end=FALSE;
4 u. t9 o( s5 Eputch('''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''); Maze[y-2][x/2-1]=1; gotoxy(x,y);
) A$ N% d6 Z1 F$ i# Pbreak;' z8 D7 i9 }; }8 w+ ~5 T4 _- l5 M
case Enter: if(y-2==StartPlace.y&&x/2-1==StartPlace.x) break;
! D [2 u+ g$ t1 t. C) Nif(y-2==EndPlace.y&&x/2-1==EndPlace.x) break;
& C; {. a9 v2 [; Z6 @1 t1 Hputch(''''''''''''''''''''''''''''''''#''''''''''''''''''''''''''''''''); Maze[y-2][x/2-1]=0; gotoxy(x,y);* N5 {- q5 s4 J" [5 r: t
break;' h7 J$ _8 B; ?5 v' k O- }
case Home: if(Maze[y-2][x/2-1]&&!b_start)
- Z$ M3 j) W# [/ g; r{
2 [) \, @. m. f! q3 j' g: WStartPlace.x=x/2-1;+ I% V& C1 M6 e5 r
StartPlace.y=y-2;, W5 h6 ?% a) L5 ^( [
putch(''''''''''''''''''''''''''''''''S'''''''''''''''''''''''''''''''');" G. L+ e9 m2 S+ ~" f
gotoxy(x,y);
, D$ F5 S6 [) ^8 C+ d- N1 B3 Bb_start=TRUE;7 z- B5 s3 L% [. J; [$ u3 V0 y2 N
}
9 o$ d: i( w" s* W2 Bbreak;0 o- n t! ?, I9 R" ~
case End: if(Maze[y-2][x/2-1]&&!b_end)4 v# k- x5 y2 B
{' E( a1 F8 Y9 t% I
EndPlace.x=x/2-1;
$ A4 [! C. w, F+ TEndPlace.y=y-2;
1 _5 W9 w1 B4 c( U6 e, yputch(''''''''''''''''''''''''''''''''E'''''''''''''''''''''''''''''''');: Q" d4 _: |' z% p" D" c
gotoxy(x,y);
2 ^% ?: S* q: Z' _. W) kb_end=TRUE;% V: d6 n$ T: Z" R* C" ^6 T9 D& f# G9 D
}
3 I* O/ U, B7 k( R/ jbreak;
n) M y* F8 dcase Esc: gotoxy(2,22); printf("exit"); sleep(1); exit(1);
9 D" j0 c8 Y$ Hcase F9: if(b_start&&b_end) flag=TRUE; break;
- q* v- b& Y7 N* ?case F2: gotoxy(2,22);
6 W0 e: |% H7 {. ~. Wprintf("Savename:");
/ L3 P8 P V: Y& C4 {scanf("%s",savename);
0 M4 m% E7 `$ F5 e/ Wgotoxy(2,22);* h# T4 u; {# {" \! Q
if(SaveMaze(savename)) printf("Save OK! ");
, S3 q( h$ H' B% C* B( o& belse printf("Save fail! ");
. S4 S* B4 v! isleep(1);0 D5 Q( ~* V* K9 N/ E
gotoxy(2,22);
5 k8 Q9 v3 }/ u% jprintf(" ");2 [3 |3 K$ F2 D/ v& l
gotoxy(x,y);' f/ k+ ~( V: E$ s4 V
break;
$ F$ s$ g% a4 ?/ q- b$ Gdefault: break;
% g/ I8 K2 I" _}" V K8 j$ m/ p" F
}3 Z D4 u$ I. ]) t2 F
while(!flag);
6 |$ K# b/ j8 w# k6 ~) Vfor(i=0;i<30;i++), q, {6 g& |- O/ \
for(j=0;j<20;j++)
% F. D) N7 s1 w4 _) \& Y{' p6 C' M3 J$ Q' s" h
maze[j].td=Maze[j];
" M" {! q5 n% M r4 J: y: p8 `maze[j].mark=0;
" |1 S8 T n3 |- O0 s4 o' z: a1 V1 q( {maze[j].foot=0;
! m* Q3 `/ S' n5 Y3 s' `# c4 \}
, q8 O P7 }, j6 |: }! ?7 P}
' F$ J! |; o1 H2 H2 \( k: jStatus LoadMaze(char *file)
: \9 S) q. A' X7 [1 u% H/* The maze has been loaded. */6 g. b, U/ I8 J; F2 f
{
6 L! O, e4 {/ s: f9 ~* oFILE *fp;
J4 I& W* p; ^char *buffer;' W" b) h2 m2 _
char ch;
1 N6 k& C. J% C7 `7 |int i=0,j,k;
; i6 d/ D, P* @* a. CBoolean len=FALSE,wid=FALSE;4 Q8 ~4 ~# [3 c9 |/ D% H2 l
if((fp=fopen(file,"r"))==NULL)
# R! c6 \) D8 C* Z. ?1 sreturn ERROR;
m: G4 I/ W. d/ i7 {4 x% ]: Bbuffer=(char *)malloc(600*sizeof(char));1 b! R# L' X& V; y9 o
ch=fgetc(fp);
& G; I5 H* @/ R* g; Y0 Z7 s2 Q+ Cwhile(ch!=EOF)
6 K. g1 B) g# p: T: b J. ~{
5 j h. c: |) z \. X- N, @4 gbuffer=ch;7 I; F. b9 Y2 \) k, O
i++;
[( Q( ~" v0 N- Y. sch=fgetc(fp);
" B1 ]/ \* B# B, `* j& U) W}
S, ` I. a( Hm=30;n=20;- ?6 T) j) V+ y ^0 L6 W
for(i=0;i<600;i++)
5 H j) f) n8 I% P% m+ v1 m# j{% O$ I+ M$ U/ V0 E; [ U
j=i/30; k=i%30;" {* _/ r7 P9 Q/ v! t. i
if(buffer==''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''&&!len){ m=i; len=TRUE; }
) z4 h- Y. M/ G- v# m8 @if(k==0&&buffer==''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''&&!wid){ n=j; wid=TRUE; }8 g" k& {# O* x5 f! q6 v1 B
switch(buffer)
# I; \+ i' G/ G. J6 Y, `) g( A{
- _+ B, ~/ k4 X9 n( J' R" ^case ''''''''''''''''''''''''''''''''0'''''''''''''''''''''''''''''''': Maze[j][k]=0; break;! j5 p9 y) ]2 a
case ''''''''''''''''''''''''''''''''1'''''''''''''''''''''''''''''''': Maze[j][k]=1; break;, o0 n8 d. w8 p
case ''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''': Maze[j][k]=2; break;6 ]8 E" M7 |- q& C' m: @" Y- F
case ''''''''''''''''''''''''''''''''3'''''''''''''''''''''''''''''''': Maze[j][k]=1;
* e4 E8 i" l: U# a) wStartPlace.x=k;1 k1 I L% Z; D% y4 ~
StartPlace.y=j;
' e' O" q+ O( `4 {) t! x& h# rb_start=TRUE;# d; i" F7 }, W$ A' e$ M1 j! ~
break;+ j J$ ^1 J% ]! Y) d9 T8 y
case ''''''''''''''''''''''''''''''''4'''''''''''''''''''''''''''''''': Maze[j][k]=1;( G( v9 Y& v1 w e
EndPlace.x=k;, A ^; f0 N: S' b, M
EndPlace.y=j;/ W1 ?# i# T' _! G
b_end=TRUE;
" x! n% [3 b% x& @& P7 q0 Nbreak;, e' b- C" k/ ~( Z- p2 N2 P
default : break;( `; T6 n$ l; P# v# C
}$ h8 {, p6 u) {1 K+ p& r' H- l
}
" J% _$ b0 X! G7 a8 Yfclose(fp);5 I$ ?8 e* w7 T0 x
clrscr();
- ]% N/ V) q( ~" n# b9 \6 E; g( sfor(i=0;i<30;i++)
( N7 _2 ?3 P" U* }9 w2 l) S* g7 wfor(j=0;j<20;j++)" p' T6 O# t- Z- l& W( d- _
{. K/ w" {* N/ _! }8 u5 S
maze[j].td=Maze[j];5 L# K# G0 A; Q) O) y
maze[j].foot=0;
1 K: T% V& K O/ G% d" O1 hmaze[j].mark=0;& o9 i5 [5 t. {+ x- ]% b
if(Maze[j]==0)
1 d* m, M* |2 ~1 B' `{
7 G( N ^# S. z0 K8 R' c! b+ P% \gotoxy(2*i+2,j+2);
3 D1 V' h, \: I6 cputch(''''''''''''''''''''''''''''''''#'''''''''''''''''''''''''''''''');
, F9 ~7 a0 N( E7 F4 Y B}- W7 S0 D4 Y" U; C1 T
}' {+ D1 A& \& y5 E7 N q0 w
gotoxy(2*StartPlace.x+2,StartPlace.y+2);' R: [3 C! K# x/ R& g, m, }9 Z6 B
putch(''''''''''''''''''''''''''''''''S'''''''''''''''''''''''''''''''');9 d7 x/ T# O: a( a3 D6 X+ c9 D: ]8 q( c
gotoxy(2*EndPlace.x+2,EndPlace.y+2);
M& e7 B; f2 ~! ]9 Q: Aputch(''''''''''''''''''''''''''''''''E'''''''''''''''''''''''''''''''');" b2 w" k% w! s0 m D
return OK;! E9 I$ M! a1 _4 Y: Y
}
' F; \, f+ b( h; K: u! |3 ^6 p7 L& s- zStatus SaveMaze(char *filename)1 {$ O4 N5 P& E4 S8 f- V3 }
/* The maze has been saved. */
( B( L$ w" x- d* S4 K2 l{3 T/ H+ H/ O' r
FILE *fp;5 X6 x1 h# J# ]- \
char *buffer;
$ o7 e, I8 I) w6 o" n+ \6 Tint i,j,k;
; A: x: g8 b; G# @& ^. H, X% ^fp=fopen(filename,"wb");
: e7 S$ { G& V6 L/ V8 lbuffer=(char *)malloc(600*sizeof(char));
- R! N. T7 g x6 h% j2 o0 J9 mfor(i=0;i<600;i++)) P8 Y* C; l1 X4 n
{% i6 Z6 w# p. ~6 \
j=i/30; k=i%30;
1 Q; {) s' k3 o1 }switch(Maze[j][k])/ i T3 U: N. X, j0 i$ g- {! z- K
{
( Z5 y' G' @' _4 i9 _case 0: buffer=''''''''''''''''''''''''''''''''0''''''''''''''''''''''''''''''''; break; ^7 o; `0 [/ j
case 1: buffer=''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''; break;
& L2 B V4 F$ x! H" ^. K5 k/ [case 2: buffer=''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''; break;
. z/ q. i2 Q+ d* G- udefault : Error("Write"); break;% ^7 U4 S' `$ R% P# }
}
% T* T3 ^1 H+ b$ l# ?/ ^6 r3 Eif(k==StartPlace.x&&j==StartPlace.y) buffer=''''''''''''''''''''''''''''''''3'''''''''''''''''''''''''''''''';* q {& d% f) S, O1 t) L
if(k==EndPlace.x&&j==EndPlace.y) buffer=''''''''''''''''''''''''''''''''4'''''''''''''''''''''''''''''''';4 V% Y8 [) B" T3 a Y- A4 [; C
}
1 I2 |& K$ I/ W" K3 v# F; i# [fwrite(buffer,600,1,fp);
/ m- }6 j T2 A2 [! J$ sfree(buffer);
1 i: x h v! T$ E# xfclose(fp);
% g) z3 M1 }0 a1 w f Q8 T Breturn OK;
: `; Y( u2 W% ?+ u}
- T9 B( R- K% X4 l% ovoid Error(char *message)
4 Z7 ]# L) l6 ^' p8 M{
% _) P$ G w+ b9 k* I. b* x! d/ ~clrscr();5 H7 c& O: N O, A+ ^3 ~; T
fprintf(stderr,"Error:%s\n",message);
! n f8 D- W/ mexit(1);
* e, h D* k' |# U! U3 ~+ P9 ^} /* Error */1 d8 G5 a, Q7 A7 E4 g9 {/ u
3 _! N+ u" O5 d! `* q& B5 MStatus InitStack(Stack *s), M$ U E. k8 s; Q
/* The stack s has been created and is initialized to be empty. */+ d% d6 `9 N6 c( c. C
{
0 ~9 o, g* F4 ^. W6 ]; |) _% @. P) M- ~s->base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));. [8 [# Z3 k7 ^- u' ?' S/ m9 s- q
if(!s->base) Error("Overflow");
1 a% S6 c: A6 Ys->top=s->base;3 N/ d- c' E0 s
s->stacksize=STACK_INIT_SIZE;: ?' a; p( A' g( t0 H
return OK;
2 E2 P4 T3 s. Z4 `} /* InitStack */
: R* v- x* @3 k% x/ G: ~4 U7 RStatus DestroyStack(Stack *s)4 L0 w4 w9 k( R6 y2 i
/* The stack s has been destroyed. */
- y/ ?$ E; Q2 y7 S3 s{6 T0 v( e/ G* m) T! o7 w
s->top=NULL;3 O% c0 ?# I# V* k
s->stacksize=0;
5 I9 M" P/ x# v7 s. O) i* |free(s->base);
/ H) g3 f, s+ u0 J8 Ss->base=NULL;( N/ |! V' D" r* k1 r
return OK;: v) f/ P. j2 c# M
} /* DestroyStack */! d1 Q8 O; B3 Y4 m$ y7 g
Status ClearStack(Stack *s); E2 Q9 T* p1 v4 j" X
/* The stack has been clear to be maximum. */( y7 Q; V1 x/ S
{
5 \' \8 |1 F8 `0 e6 ^s->top=s->base;$ o, U8 C( d0 z# H+ v
s->stacksize=STACK_INIT_SIZE;& T. o1 x' p8 `& s# H
return OK;2 c. z5 ^7 O) ?
} /* ClearStack */6 c( a4 r; D6 k: e( I5 b
Boolean StackEmpty(Stack *s)
" \* J8 [# G! ?0 U8 g, U/* Check if the stack s is empty. */: _9 n2 u- O4 G( }( ^ G
{
* c# b$ e# n& U4 b8 E4 e, wif(s->top==s->base) return TRUE;
( j* o6 d+ v# xelse return FALSE;
, h; x; p5 c+ ?" [+ H} /* StackEmpty */: _+ v! [/ X' \, b
int StackLength(Stack *s)
; {. c9 v. _; L4 X$ [0 g+ @) |/* Gain the length of the stack s. */
! |) K" r$ l1 S0 t4 M{& a6 e/ J! E3 P9 i1 {2 q4 y. l6 `
if(s->top>s->base) return (int)(s->top-s->base);9 F) g# q4 x2 P6 e2 f/ ^
else return 0;7 O, g% S$ ]1 ?7 x& V8 P
} /* StackLength */
, w9 t2 d# z$ p# u3 \' v+ n- LStatus Push(Stack *s,SElemType e)
+ r% g; Q# A& z1 W ]% @# G% K3 `/* The element e has been pushed into the stack s. */
, Y' [' L8 d4 T4 j{
* U; O2 D9 k4 t7 k6 |if(s->top-s->base>=s->stacksize)" [9 A4 Y5 h/ _4 Y2 C3 a
{
% H) u3 j' A1 j# Z: Os->base=(SElemType *)realloc(s->base,
8 E, u' }. J8 b0 @9 z(s->stacksize+STACKINCREMENT)*sizeof(SElemType));* Q) Z+ h* p3 V3 Z [
if(!s->base) Error("Overflow");' _( `2 p" ^% }; S' p6 e3 k" a, r
s->top=s->base+s->stacksize;$ a4 j0 i h b& O* @
s->stacksize+=STACKINCREMENT;% W7 K/ e) b0 I& w/ F) a
}
/ ]3 J. m: W0 l" z5 M; l9 m*s->top++=e;
+ l! O4 Y1 ~: X! l, |return OK;" F; I3 m( O5 @6 ?, f2 b
} /* Push */
) g$ U7 L; S* TSElemType Pop(Stack *s,SElemType e)
1 l7 X4 T3 G Q/* The element e has been removed from the stack s. */
$ [2 I+ L/ N& m7 n4 j$ x{
_4 `' P; S& t; C/ a' @if(s->top==s->base) Error("
op");& }6 S* u6 j7 }5 y
e=*--s->top;) L$ k8 o# L) l) ?( N: r' d
return e;
' Z+ @0 p" R1 D1 } L5 G} /* Pop */
# _4 b2 ?7 k; [) vStatus GetTop(Stack *s,SElemType *e)" ]/ t* T# W* E( x
/* The element e has got to the top of the stack s.*/7 y- z( n: R, F. O
{9 Z# u. m1 N- e* I3 {
if(s->top==s->base) Error("GetTop");
" R3 o% D: H0 O9 W3 H+ R*e=*(s->top-1);/ J4 j/ @, U. `8 E2 q4 B j# B8 \. {2 {
return OK;! k2 s+ R, S/ \* U
} /* GetTop */
( A( a* N+ t6 C9 X p$ b/* Traverse the stack s using ''''''''''''''''''''''''''''''''visiting'''''''''''''''''''''''''''''''' function. */
, p2 A+ l+ x+ l" V2 G5 v/* Status StackTraverse(Stack *s,Status (* visit)(SElemType *se))
; Y: ?0 n/ j, |{2 k9 R% P% P& K* C, n" v
SElemType p;
1 x4 P6 Q# f; }& V+ X; Zint result;8 \5 f5 Q1 P0 \
if(s->top==s->base) return ERROR;6 Y( ^* h, w* k) n) [% h' ~
p=s->base;
2 b9 B: t6 I T A9 n* ywhile(!(p==s->top))/ x ]$ p4 n0 I. Y0 K( [' ~
{! ?+ B! _) F/ Z8 {! ]- C9 u
result=(*visit)(p);
0 o/ o) ~- N2 R5 x' t4 L: C5 W* ap++;
! {, m' j' Y8 f" d7 v+ q}
0 l4 O( l! @) }& X" s3 W3 @+ mreturn OK;4 i/ R. ]# M; @' f* v" `
} */
" `7 n/ R) K5 z6 n4 S0 S/ q5 bBoolean Pass(PosType curpos)1 a$ ^) W% U# s/ _/ U
/* Check if the current position can be passed. */+ p/ A4 G3 c# _! i8 U" H2 U @7 ?
{
% s! h8 L0 i& c/ I( rif(maze[curpos.x][curpos.y].td==1&&5 p6 m" D R3 X; j
maze[curpos.x][curpos.y].foot==0&&maze[curpos.x][curpos.y].mark==0)0 Y% ]4 T: H) @6 {$ e
return TRUE;
! |$ e. L; I3 x! L" I/ uelse return FALSE;
7 E2 p# C5 f( X: W; [* t} /* Pass */
: c" g$ i2 R( w3 W9 dvoid MarkPrint(PosType seat)8 R- v" m, P/ g6 F0 e: E% X" p# Q
/* Mark the position seat. */
+ Y' i+ f# q1 x6 j' p7 f{
# u$ Q7 r1 x1 x& k8 w/ J7 O2 mmaze[seat.x][seat.y].mark=-1;
9 y6 P8 u- m$ d) d C9 f/* Marking ''''''''''''''''''''''''''''''''-1'''''''''''''''''''''''''''''''' symbolize the current position cannot be put. */
1 D8 K+ q: |; Z! L+ v' q8 g& |/ ?} /* MarkPrint */
$ ~- u7 l# I; O ~void FootPrint(PosType curpos)
. b# W/ Y& F) m+ l& ~/* The foot of the curpos of the maze has been set ''''''''''''''''''''''''''''''''true''''''''''''''''''''''''''''''''. */6 M; Z. @0 g$ Z. Q' q
{; ]# A" J) n4 I: O5 i
maze[curpos.x][curpos.y].foot=1;/ q6 [5 O. u" ?$ n. K3 U$ A4 g
} /* FootPrint */1 H ~8 k. {7 `) p; k5 h
PosType NextPos(PosType seat,int di) G7 w* j: P' h8 Z1 z! ]3 c0 r
{
5 F- B" `! ?$ N/ o; l% Eswitch(di)
( z! p2 y% e; T- V. t0 @% y6 J{3 L Z8 ~6 Q0 Y% x
case 1: seat.y++; return seat; /* Eastward *// B* t" z1 R5 P" _' m+ H" @
case 2: seat.x++; return seat; /* Southward */1 _' x& [* z1 j
case 3: seat.y--; return seat; /* Westward */
- `8 c! N. F/ ]% n) Scase 4: seat.x--; return seat; /* Northward */
5 Q2 ^0 o3 |6 F6 ^) W, ^6 U' [default: seat.x=0; seat.y=0; return seat;1 k/ s7 c+ N' P/ J6 P6 t
}
- g- V) G- h) o+ N4 e7 X6 i} /* NextPos */; [ ^. d% `5 }. `$ }/ R
( i8 H* n6 u+ [6 x7 O, q/* The key to the program. */. a" i, c' y" g. @0 d) `; j3 C
/* Pre: The maze array & the startplace & the endplace.
& _* E) [$ \4 x( S) R" ?, D3 SPost: Find the one traverse of the maze and perform the mazepath.# u6 V A% s" q# H0 R. t) ~
Uses: The ADT stack class.
/ p( u) ~) y: H/ Z8 \& d& e# ~*/$ T+ Z( v: s( ^# j$ j/ v
Status MazePath(PosType start,PosType end)
- q9 a/ E0 j! `" p' e{
5 r! u2 i# S- V* S9 DPosType curpos;1 E/ \! V4 z' H* X0 I: P8 z) `# @9 p
int curstep;
6 g" g! H O. Z" V) q5 m6 wSElemType e;0 p U! H6 M1 O- H! a
Stack *s,stack;. U' b5 |1 c4 j. t1 `$ I
stack.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));
% x. \% r4 X! y# E* Kif(!stack.base) Error("Overflow");! ]0 c2 U8 b0 w' d
stack.top=stack.base;$ n1 L' H$ N$ l9 C" q8 X
stack.stacksize=STACK_INIT_SIZE;9 ~: V0 q0 u- `( I U
s=&stack;% s- G; ~) ? b
curpos=start;% Y) h0 y: r/ }7 o9 X$ d8 w1 m
curstep=1;; q z5 g4 X q1 K. P+ v8 ~
do% c) Q1 r, t2 l
{
% x% o# [9 M3 d3 Y2 _* E Eif(Pass(curpos))0 R- o* }& ?" I4 H3 u% ^% _
{
" f! O' J# u* _; z$ i' T$ x; XFootPrint(curpos);1 m& B0 h3 w& H# g& Z# `
e.ord=curstep; e.seat=curpos; e.di=1;
' H* h# E0 ?; I' v- Bgotoxy((curpos.y+1)*2,curpos.x+2);# M, P$ D* K8 g- ~; Z9 Y6 s
putch(''''''''''''''''''''''''''''''''@'''''''''''''''''''''''''''''''');
5 f0 C, z2 c( I. idelay(8000); /* pospone time. */
; l9 T% B( {: E* N& l% ?. dPush(s,e);
7 T! V; T% }- {! gif(curpos.x==end.x&&curpos.y==end.y) /* Proceed recursively. */
9 a+ {: X* C, w{
" Q, [$ c/ m, `4 U0 x% XDestroyStack(s);7 H/ P( a3 W5 F8 P
return TRUE;8 h' X& B: }+ u9 [8 N
}
9 W5 o4 Q t% x5 X; T* |curpos=NextPos(curpos,1); /* Try next position. */
& L0 R4 u, j% V# g8 V% f, Ccurstep++;
% G: x/ U3 g! u$ i+ x/ }}
7 B0 e8 o- `2 \5 D+ z( Eelse8 W; @" Y' T* u( E
{6 h8 w9 ^! @: l* S
if(!StackEmpty(s))
( y" I0 Z/ Y6 S. ~- ?. `. H{
4 L8 ?, K: f8 L* f" I* {e=Pop(s,e); /* Removed e from s. */. b" y0 |6 K/ ^7 B0 h. L$ E/ P
while(e.di==4&&!StackEmpty(s)) /* Four directions have been checked1 t. d. h! a# V4 \; q
and s is not empty. */
! S) K. w% T8 g$ `) I{$ z3 ^+ p1 p" f6 C1 j# i( G
MarkPrint(e.seat);$ y" D+ q! G2 G g0 u' x& E
gotoxy((e.seat.y+1)*2,e.seat.x+2);. p: I) X) v n: H `) m
putch(''''''''''''''''''''''''''''''''@'''''''''''''''''''''''''''''''');6 M6 `4 X# p$ ]" v1 A- ?
delay(8000); /* Pospone time. */0 J# {2 ^$ t. Y3 r' T
gotoxy((e.seat.y+1)*2,e.seat.x+2);6 c6 F( A" ]1 \' M! ^% O
putch('''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''');
4 _) T( E$ ?9 p. i" ~1 Z( Me=Pop(s,e); /* Remove e from s. */
8 t$ A3 [$ V* O2 ccurstep--;
0 {% j/ @0 i: i& {}
1 W# b, S4 @" y9 Q% aif(e.di<4) /* The current position hasnot been checked. */9 O) F* i" m0 k3 ?8 a0 ^% y
{
* ~3 [) Z1 K ^: pe.di++;+ W! e3 h7 L" C# R" `9 v$ T$ r
Push(s,e); /* Insert e into s. */9 u$ @6 D$ J4 U+ D) ]
curpos=NextPos(e.seat,e.di); /* Try next position. */
$ F j5 }9 c2 a% L}
+ C* y& Z& P4 V* ^, Z9 `2 l5 t0 ]) l}
. x! q3 a3 ^9 B. o; U6 \}8 \, V7 j. [: E8 M, e6 `
}
. j# H/ ?0 \1 L; z( g8 B5 \3 F+ v0 Vwhile(!StackEmpty(s));/ R' ?6 x4 m) A1 y1 L5 \
DestroyStack(s);3 ?8 i2 h! D# P2 k- z- |
return FALSE;
% f) Q5 h3 S4 F' u} /* MazePath *// X; |5 E& A. F% \9 I7 g8 B
void main()
4 w: W) W( |& [0 Q/ x/ ^{$ B2 o' C- I- c) |* M
PosType start,end;* O7 s6 O) q! {6 R
CreatMaze();1 {* Z1 O0 S$ F- k* c1 F: d# M
start.x=StartPlace.y;9 p, x( K5 c7 D s! u$ M% @
start.y=StartPlace.x;9 p4 ^) p: y$ b' A
end.x=EndPlace.y;9 `% H8 L* W, Z) j
end.y=EndPlace.x;, @! J$ p/ p |4 Q
if(MazePath(start,end))
. |& M7 X, d& T; S6 z! u: e' T2 R{* w3 j" X; ^& U8 H$ b) z2 s7 }& B2 p
gotoxy(2,22);
* |2 d) b: Y! {" G% Cprintf("
ath found\n");
* o4 z% K1 R1 _& }}
4 b2 Z0 c: V: }9 \else
0 k9 S ] F8 s# O{( I- H- P4 {7 t3 R
gotoxy(2,22);
1 c! d* O) ?' X6 c; J* _printf("
ath not found\n");
) z6 w4 x' J$ P: \* T# A: J+ C}" K4 A; j3 P, x
getch();
( Q/ A* [1 q6 Z- sclrscr();
9 Q% j: Q0 t; B; ]} </P></DIV>
作者: 韩冰 时间: 2004-10-4 02:36
<
><b><FONT color=#000000>.:.:上海黑暗之龙--麻将原代码:.:.</FONT></b></P><DIV 626px; HEIGHT: 132px" align=left><
align=left>部分图片未上传
5 J3 w$ d9 Y" T* ?* e8 O! }/*天宇软件
4 o) J; D0 E* [* q& i作者:上海黑暗之龙
1 ^6 i9 Y. A3 s! r2 @# @2002/10/30
, ~0 \! r3 u8 u麻将原代码*/- k! _: F- E* x1 J/ n2 h8 ]' A
#include "dos.h"
3 V4 j+ {4 o2 G6 o, C$ l#include "stdio.h"
3 C5 C8 g* b* v#include "graphics.h"( p, T8 h3 }# S# c0 ]
#include "bios.h"
$ v! b! \; U% W6 c#include "conio.h"5 C' ?' p g0 G: N+ E2 L+ Y
#include "stdlib.h"/ B6 z( ~8 \" `$ \' i4 e1 f
unsigned char far *video_buffer=(char far *)0xA0000000L;
# o: Y) H; g) g( c#define VGA256 0x13 /*图形模式13h*/
6 N$ @5 F: R: o: \, L* f#define TEXT_MODE 0x03 /*普通文本模式*/" [6 u/ a% k/ C. U0 A7 ^
#define SETVGA Set_Video_Mode(VGA256)
, @& E, F" L# `* _#define OUTVGA Set_Video_Mode(TEXT_MODE)" Y/ i( F! W. h0 k" L' t
#define BYTE unsigned char) u5 }* f0 F; U) m- z+ r2 U
#define WORD unsigned int2 S4 i! s; a% h% P7 l; A* W
#define DWORD unsigned int i/ t! d* M ?5 m+ [) q
#define ESC 283
" [! Y* ^! g$ w+ \3 m0 O) y. R/ g0 f#define LEFT 19200, ?5 ?4 i9 s" Z/ s. h4 F
#define RIGHT 19712! ?( l) {2 f9 d
#define H 9064
8 J% B9 C" ]- B) `# A( P#define ENTER 7181 W: x, G! G& j% r0 c% t
unsigned long int z=54400,zz=0,zy=0,zyy=0,z1=0,zl=10140;
2 Z9 a J7 d- T5 f" }' Wint key=0,keyy=0,sing=0,sing1=0,second=0,threes=0;2 {$ c& X4 Q) U
struct chi% e6 P0 Y* P; Q
{2 @5 R; S- j% M+ m
int lg;
( c; }9 u: E- X2 `- dint lgg; `4 J/ g7 `1 X
}ch[13];' s ]8 C) e8 S- t7 [ ?- _
struct mj
0 C6 j U, O) s7 b4 }' j{ char *name; /*名字*/
( \% ^: U, J; E z) A8 e0 \- ]" i9 Pint data1; /*是否已出,无用了*/0 j* m. n; G) g+ N; Q* r% {2 k
int data2; /*是否在手中,1为自己,2为对方*/
: ]& p( n. M9 M3 J3 mint number; /*同一个花色的第几张,共4张*/7 D& n6 `1 c2 @: D
}m[136]={"1.bmp",0,0,1,"1.bmp",0,0,2,"1.bmp",0,0,3,"1.bmp",0,0,4,"2.bmp",0,0,1,- n/ [. Y# b$ b; D" A
"2.bmp",0,0,2,"2.bmp",0,0,3,"2.bmp",0,0,4,"3.bmp",0,0,1,"3.bmp",0,0,2,
; K# r0 |9 O- E% l5 @& x. @"3.bmp",0,0,3,"3.bmp",0,0,4,"4.bmp",0,0,1,"4.bmp",0,0,2,"4.bmp",0,0,3,6 O8 p, R, r" K
"4.bmp",0,0,4,"5.bmp",0,0,1,"5.bmp",0,0,2,"5.bmp",0,0,3,"5.bmp",0,0,4,6 [6 C( g. e( e, X
"6.bmp",0,0,1,"6.bmp",0,0,2,"6.bmp",0,0,3,"6.bmp",0,0,4,"7.bmp",0,0,1,6 Y' o X, @1 ~# c6 Z% i
"7.bmp",0,0,2,"7.bmp",0,0,3,"7.bmp",0,0,4,"8.bmp",0,0,1,"8.bmp",0,0,2,
: j& l% ?6 F8 K ?"8.bmp",0,0,3,"8.bmp",0,0,4,"9.bmp",0,0,1,"9.bmp",0,0,2,"9.bmp",0,0,3,
' Y: L7 d: o! F O. _9 _& H' Y"9.bmp",0,0,4,"10.bmp",0,0,1,"10.bmp",0,0,2,"10.bmp",0,0,3,"10.bmp",0,0,4,+ v k& o" W- k) _1 R/ c
"11.bmp",0,0,1,"11.bmp",0,0,2,"11.bmp",0,0,3,"11.bmp",0,0,4,"12.bmp",0,0,1,( _3 e6 W0 k5 j
"12.bmp",0,0,2,"12.bmp",0,0,3,"12.bmp",0,0,4,"13.bmp",0,0,1,"13.bmp",0,0,2,
! ^6 b2 z1 w6 L"13.bmp",0,0,3,"13.bmp",0,0,4,"14.bmp",0,0,1,"14.bmp",0,0,2,"14.bmp",0,0,3,
3 l8 @$ Z& W& E, B* V"14.bmp",0,0,4,"15.bmp",0,0,1,"15.bmp",0,0,2,"15.bmp",0,0,3,"15.bmp",0,0,4,
5 E; P6 n1 Y n: N" U" k" w"16.bmp",0,0,1,"16.bmp",0,0,2,"16.bmp",0,0,3,"16.bmp",0,0,4,"17.bmp",0,0,1,
. }/ s4 j, d" _$ I f"17.bmp",0,0,2,"17.bmp",0,0,3,"17.bmp",0,0,4,"18.bmp",0,0,1,"18.bmp",0,0,2,4 q. @" Y- V( j5 Z- `0 a1 s( G
"18.bmp",0,0,3,"18.bmp",0,0,4,"19.bmp",0,0,1,"19.bmp",0,0,2,"19.bmp",0,0,3,
+ b8 [& P& _2 F. K"19.bmp",0,0,4,"20.bmp",0,0,1,"20.bmp",0,0,2,"20.bmp",0,0,3,"20.bmp",0,0,4,- @5 t1 B" k& C" X8 f& n8 f8 O+ S
"21.bmp",0,0,1,"21.bmp",0,0,2,"21.bmp",0,0,3,"21.bmp",0,0,4,"22.bmp",0,0,1,( ] C& N: n0 d
"22.bmp",0,0,2,"22.bmp",0,0,3,"22.bmp",0,0,4,"23.bmp",0,0,1,"23.bmp",0,0,2,5 x, U" b) D' L5 D5 P, m; C
"23.bmp",0,0,3,"23.bmp",0,0,4,"24.bmp",0,0,1,"24.bmp",0,0,2,"24.bmp",0,0,3," \8 A5 z- i* Z/ H6 V1 y& h8 C. W9 \4 H( C
"24.bmp",0,0,4,"25.bmp",0,0,1,"25.bmp",0,0,2,"25.bmp",0,0,3,"25.bmp",0,0,4,: r2 k, N# a# r A- Q6 p
"26.bmp",0,0,1,"26.bmp",0,0,2,"26.bmp",0,0,3,"26.bmp",0,0,4,"27.bmp",0,0,1,
7 C5 t! p) A4 A0 c: @0 J"27.bmp",0,0,2,"27.bmp",0,0,3,"27.bmp",0,0,4,"28.bmp",0,0,1,"28.bmp",0,0,2,# I0 N" t/ z, O
"28.bmp",0,0,3,"28.bmp",0,0,4,"29.bmp",0,0,1,"29.bmp",0,0,2,"29.bmp",0,0,3,. Y, v3 | \" O0 h5 v
"29.bmp",0,0,4,"30.bmp",0,0,1,"30.bmp",0,0,2,"30.bmp",0,0,3,"30.bmp",0,0,4,) {% k0 T/ P7 D$ ` `# ]( Z, ^3 `4 u6 N
"31.bmp",0,0,1,"31.bmp",0,0,2,"31.bmp",0,0,3,"31.bmp",0,0,4,"32.bmp",0,0,1,
7 h& f+ M$ ^6 Y/ t7 N$ e' n"32.bmp",0,0,2,"32.bmp",0,0,3,"32.bmp",0,0,4,"33.bmp",0,0,1,"33.bmp",0,0,2,
7 E& Y" W }2 A: E* \1 f0 a"33.bmp",0,0,3,"33.bmp",0,0,4,"34.bmp",0,0,1,"34.bmp",0,0,2,"34.bmp",0,0,3,! l$ e2 S/ L* y. \; b+ [$ o" E. {
"34.bmp"};7 K. X* y2 v* Y3 J$ X3 B
struct every
: D( Q5 F+ f- u/ C$ G# N; p{ int *k; /*名字*// s' Q+ |1 a1 \4 W
int oneorfour; /*同一张牌的第几张*// P- v, E0 u; n+ `5 t
int number; /*第几张牌136*/
9 ^/ u, j. h! }/ a# Q8 u+ U+ n Mint p;6 p+ C$ u) n, f) s* D; `2 v" S; X3 w
int g;) r7 t2 N$ ?% A1 ]
int c;6 A' V" O+ b* t: V* u$ Q6 W. o
int d[2];' R; q2 i) Y; T! J& q. x' F0 c7 s, I
};1 G5 Y# P7 E: n3 ?
struct me5 T* Q: [, Y# p2 W: ?
{ int m; /*定义有几张牌,开始有13张随着游戏的进行,会越来越小*/
# O8 {# l9 Q! J* ~1 U8 o D" jint p; /*乓对方*/
. B7 S! a8 G$ G" m+ e! Rint c; /*吃对方*/' j6 [/ u e" m' _8 _! A6 {1 _% R/ v
int g; /*杠*// ]+ Q( {3 p1 _, _( i
7 ]2 p L3 n+ k0 g1 n! Z: Fstruct every pp[14]; /*存放手上的牌*/
' r, f, B- q) |}me;
% R9 M$ ~( D2 ?( z8 g: ostruct computer
& R) u. |/ p! K$ y9 [, D ]{ int m;
5 Z# r1 O4 V8 ^! a6 C' H7 o/ j& Q9 wint p;0 c) D @) O) b# E
int c;
1 g3 }% j# {5 j. k6 `8 dint g;* J8 u4 x' p! i% a
struct every pp[14];5 Y4 ^% F/ s3 [: Z) L1 m6 _
}computer,comp;3 i$ _' W3 n0 L' X8 ~8 J
. i+ ?. Q! Z( e: y
/* 设置调色板 */
4 p# I E& l1 F# vvoid Set_Palette(int Color,BYTE r,BYTE g,BYTE b)6 v) m# A( ~1 h8 |3 D
{) j; l% }' J4 [& |2 d) @
outportb(0x3c8,Color); /*0x3c8写端口 写色号*/( R- Y, a; _2 z% W
outportb(0x3c9,r); /*0x3c9数据端口 R、G、B的比例*/% ?& m) l5 s: e6 }8 O
outportb(0x3c9,g);
" ]& Z0 a9 y' b3 F& boutportb(0x3c9,b);1 X% \8 Y% z. ~- C
}
3 A: e+ I2 J3 q: D: V) g# Z v/*0x3c7读端口 0x3c6计算机调色板寄存器调用端口*/0 T' a! C7 S8 L/ X O- q
/* 设置显示模式的函数 */
* M/ l3 s6 U4 T' Avoid Set_Video_Mode(int mode)) m8 `6 Z* r5 A, O! d
{
+ a r1 X* j- m, [union REGS inregs,outregs; /*定义输入和返回寄存器*/0 @+ K, C5 o) Z v' E
inregs.h.ah=0; /*ah存放功能号0h表示进入视频模式*/' ?' N1 x2 x9 A6 |6 K/ s- M
inregs.h.al=(unsigned char)mode; /*al存放要设定的视频模式*/5 L& u# u' R5 p8 Q0 H" y# F
int86(0x10,&inregs,&outregs); /*通过10h中断设定显示模式int86()包含在dos.h*/
3 S6 j: F7 `+ d ]' ^7 H" z}3 V8 `( Y! v8 h; x- b* q8 {4 d
void v_line(int y0,int y1,int x,unsigned int color)
+ V& }8 T3 k# m. U. C) `0 u# r{ unsigned int address,n,temp;$ O% e. M5 R' H3 A( d
if(y0>y1)
. K5 h1 l1 X- h, y+ A{' I; _9 Q: x% ~( Z3 x' `; C
temp=y1;8 k3 A4 U: b7 k3 _6 T) m }
y1=y0;
2 @ n5 Q0 e& p. }9 T, d# a! yy0=temp;
3 c: x% c) h6 @}
1 w- Y; U" I& N9 \& Jaddress=320*y0+x;( Z! f6 b2 n' P+ L
for(n=0;n<=y1-y0;n++)0 L2 z' Q- i7 Q" v/ J
{! p1 k9 c$ N; X* X4 Q; A' K. w/ X
video_buffer[address]=color;
J9 @/ ^* h$ u' Z2 M* H: ?" l6 yaddress+=320;% A* J/ q5 O! f* U7 X) k1 X: e/ A
}
. ^* ]$ l7 z- y5 Y5 O5 G) P}
+ ~/ b* j" j6 h+ Pvoid h_line(int x0,int x1,int y,unsigned int color)4 C6 F3 ~: `% R, V0 g M* n0 h
{ unsigned int address,n,temp;
. {3 V& }# J, c+ _. b' @ V' Eif(x0>x1)
- ~% T) X7 c# B, r+ ~{
( i; k. t! S2 Z* d& z! x5 p2 htemp=x1;1 H. D" t4 L, p1 N% Z3 s
x1=x0;& _+ N9 j4 t) y9 h( X3 M7 \7 W {
x0=temp;9 j; j: p4 Y; A- c5 h# U
}' E/ U( _3 g4 w; x/ U: p$ h) o- a9 e) o
address=320*y+x0; s. v; q9 m+ E0 f& `1 R, [( m
for(n=0;n<=x1-x0;n++)+ L+ }* z" H8 {* a; ?
{
: E% B/ j9 c) x% m. v4 Tvideo_buffer[address]=color;
. v2 G1 g4 A1 C' vaddress+=1;3 {7 H, y1 W( k
}- c- ~3 C5 F& r6 n$ k: ]% C/ @
}
/ U g+ o) _$ J. w/ mvoid p_pixel(int x,int y,unsigned int color)% a5 h2 n2 _3 A; l. A. ?' b
{ video_buffer[y*320+x]=color;
: p/ Y7 H, b+ O ]1 r( K: f. j}4 S' j; j( i5 F) w0 @7 Q2 T
void s_square(int x,int y,int side,int color)! ~, \* q: r0 U! H& ]8 H
{: F) v! W8 M* b
h_line(x,x+side,y,color);& D- R5 U' \6 [+ A. W4 L+ k% }
h_line(x,x+side,y+side,color);
n+ v! p! b B% jv_line(y,y+side,x,color);2 S% U. ^. r5 q: P' q* g
v_line(y,y+side,x+side,color);, z: @1 n8 R4 p$ @6 W* |
}1 v4 U/ k2 ?9 p' _& M3 {3 v% A% [
void r_rectangle(int x1,int y1,int x2,int y2,int color)" n1 p! f* B% U
{
2 j2 X( x* m! t8 ~! c% X1 b4 |h_line(x1,x2,y1,color);
, u9 A, y. T0 fh_line(x1,x2,y2,color);, i5 n; v3 E; S& J: Z
v_line(y1,y2,x1,color);" E* M7 Y) H$ L( C
v_line(y1,y2,x2,color);9 F3 T% w7 O- S
}
0 U1 h( K" N# K4 v1 F0 Yvoid fillRectangle(int x1,int y1,int x2,int y2,int color)
/ O% E) K J: h s, h6 {{' A! I1 [0 v7 i! S
int i;
7 Y9 [* G6 a5 R5 q6 Y/ Cfor(i=y1;i<=y2;i++)
" d3 g8 B% D8 x3 l4 [* O5 ]( F{
7 Q9 `4 ` m. `9 c) A& K( ch_line(x1,x2,i,color);
- G& D; \" h, B6 L9 `# F% }4 h' Y}% T; Z6 T5 p0 S$ Z9 j
}/ ~7 P' S6 X2 S0 Z
void showbmp(int l)
_5 l3 z" ` L# B7 `# n" P{ FILE *bmp;
* r H. M, Q. k) v0 }: Z* F. N% Cint i,x,y;( o* f2 X/ v9 y q; I3 d1 x B
BYTE palette[256][3];
8 `! G7 O: J6 B n3 xbmp=fopen(me.pp[l].k,"rb");8 m% t. W4 b' m( B. \/ Q1 ^
fseek(bmp,54,SEEK_SET);& `$ c$ {+ I& k/ Z
for(i=0;i<256;i++)# m7 f$ v2 w5 A4 g7 G
{3 C" E% Q- R& G o5 q- C
palette[2]=fgetc(bmp)>>2;" d+ F$ f! X* x& Z( g6 m4 G" k7 v0 h
palette[1]=fgetc(bmp)>>2;% J0 N5 F, w- P4 G
palette[0]=fgetc(bmp)>>2;
# E, u; ?2 I; o% A* N* t+ Hfgetc(bmp);; Z! m$ W$ D9 |1 J: E; C+ N
Set_Palette(i,palette[0],palette[1],palette[2]);$ p7 L! h/ W7 R3 J6 U& Z7 i8 N
}
; r8 _3 s8 }8 j& F# I! I( J- Zfor (y=0;y<30;y++)+ G) m0 s$ U9 p. |( G2 U2 B5 y
for(x=0;x<20;x++)
3 ?0 ^: Y5 J; y5 L5 _# P4 I$ ~pokeb(0xa000,y*320+x+z+zz+z1,fgetc(bmp));: h) N, @) |" g, {/ \) [' P. C( R7 O
fclose(bmp);' C3 }8 p1 G/ c+ R5 _6 H0 O( k$ H/ [
}
- k* [9 I8 F% a+ ]- l& J* s2 Svoid showbmpd(int l)
# O; i* [) J" U; L. Y9 H{ FILE *bmp;& a1 o+ W% ~+ @4 j
int i,x,y;/ G' U/ o) n' l J
BYTE palette[256][3];- E% ]! r4 j2 y, N/ n3 e! V; O
bmp=fopen(me.pp[l].k,"rb");
# Q( c1 V! W8 B$ l, @* c2 Q+ |5 lfseek(bmp,54,SEEK_SET);
6 [/ J4 @ d4 b+ U# o7 }' @for(i=0;i<256;i++)
8 f; \& D N' L* x1 _9 A- `% r) L; Q{
3 R4 C, V7 b! D" c* F) gpalette[2]=fgetc(bmp)>>2;
3 h9 |0 X* u( V9 l, a, Apalette[1]=fgetc(bmp)>>2;/ ^- h q3 g- R* V9 G: y
palette[0]=fgetc(bmp)>>2;( {- C3 U4 n1 T3 S
fgetc(bmp);% a- X% W) ^& q; c2 H! \$ ?: A
Set_Palette(i,palette[0],palette[1],palette[2]);; u* ]& T! u d% D! a7 H- ]
}
( j$ f! w9 J6 _( L X% [2 jfor (y=0;y<30;y++)8 G/ U& Y, I. ?1 @
for(x=0;x<20;x++)
0 [ u0 ^ d- _$ Ypokeb(0xa000,y*320+x+zyy,fgetc(bmp));
1 X: E% D; g. \fclose(bmp);
4 f& T \. p2 Z} l- D) V; J* Y2 K
void showybmp(int ll)
- P, @2 W6 S% n6 b# |{ FILE *bmp; ^, F0 n0 Y& ~: b! V4 b
int i,x,y;
* A7 p: U' z# }1 qBYTE palette[256][3];
; I, y3 S3 M/ j$ {! f' P7 Tbmp=fopen(computer.pp[ll].k,"rb");# Q5 m4 l( `- F3 _0 T) X( `/ H
fseek(bmp,54,SEEK_SET);
$ k% t( C! H; Pfor(i=0;i<256;i++)6 T/ [0 u0 e! U
{
5 R9 m) I2 a4 n- E% E! Lpalette[2]=fgetc(bmp)>>2;2 j) L& a$ K! |% @% {! j
palette[1]=fgetc(bmp)>>2;7 K2 a/ F* E$ G9 y/ B9 s
palette[0]=fgetc(bmp)>>2;
5 [' s/ U; l8 Y; Hfgetc(bmp);
% b, z: Q7 @) TSet_Palette(i,palette[0],palette[1],palette[2]);' s5 v' k# |. Q& x5 R7 F5 b( L
}! U+ A; F' V5 E8 W6 T" P) n
for (y=0;y<30;y++)
+ M+ w0 ^& J; y }for(x=0;x<20;x++)
6 L; D$ R9 d) O; W. upokeb(0xa000,y*320+x+zy,fgetc(bmp));( ^! a- \, C& f3 e
fclose(bmp);) b( D" y7 E$ I' q8 g
}
% J. p q) D9 W; zvoid showcbmp(int ll)
: K" K9 p$ w+ K4 R: a. V{ FILE *bmp;
. K: |; G. ]" t& pint i,x,y;$ w: Q1 T/ J6 y; Z2 h
BYTE palette[256][3];/ }" S0 q% Q9 C# \
bmp=fopen(computer.pp[ll].k,"rb");, ^1 v% w4 p0 q U7 i
fseek(bmp,54,SEEK_SET);9 t/ M. Y, j% M: J
for(i=0;i<256;i++)+ Z, |) }1 V0 h7 f- V& u: I
{
4 x, ^* K+ l: `3 qpalette[2]=fgetc(bmp)>>2;# w4 p( r& ] [% m6 J
palette[1]=fgetc(bmp)>>2;
' s# K2 w0 B/ D1 G5 Ypalette[0]=fgetc(bmp)>>2;
& D' y! i6 V: g! {# r) Vfgetc(bmp);& J- W0 T+ J( x- d. A
Set_Palette(i,palette[0],palette[1],palette[2]);# H8 m [- X1 K$ d
}
[- d. O2 ?; h1 c9 [for (y=0;y<30;y++)9 D* C# B8 g4 @2 ~5 S
for(x=0;x<20;x++)
5 x: e0 A% b" E" v; [; W0 m+ o/ L# _pokeb(0xa000,y*320+x+zyy,fgetc(bmp));
7 p3 k4 U* l& X$ ]fclose(bmp);
8 L6 \% \% \: ^4 D5 y' N}6 v) N" L6 B" p! \( }
void bmpp(int number), G- n: y; g0 E2 W( a; P" A
{ FILE *bmp;
* I D4 v7 L, Q. S- z0 c f# Hint i,x,y;2 T8 j1 p/ u& T/ y% n9 x$ z7 j
BYTE palette[256][3];
, A3 e2 _) k; S3 p2 H( K5 U: Hbmp=fopen(m[number].name,"rb");
5 k- T* F! t+ ufseek(bmp,54,SEEK_SET);
0 P) S1 y @& dfor(i=0;i<256;i++)
: ?) v3 X3 r3 x" P* v{
0 V3 e, }! r2 E. |palette[2]=fgetc(bmp)>>2;
( D# ~. [& w, |, D0 G% {& y' y6 w0 mpalette[1]=fgetc(bmp)>>2;& c' w, _& B, d5 }: U
palette[0]=fgetc(bmp)>>2;; \: [ G% y! i j1 M
fgetc(bmp);0 [6 j% F+ h2 Z( O3 |3 c0 y
Set_Palette(i,palette[0],palette[1],palette[2]);9 {/ f: M7 n" s) d
}
; V# R/ R3 K, ` ^5 X4 [- K3 ^' kfor (y=0;y<30;y++)
; \6 o: L3 r( q* P1 G; _7 Z$ l% Efor(x=0;x<20;x++)+ H2 y& ^' x% Q6 m8 z
pokeb(0xa000,y*320+x+zl,fgetc(bmp));3 t6 j+ Z" K$ _1 C+ [) |: S( V
fclose(bmp);
; {; q9 x( i6 \! A, Z}( A( \1 m2 @& b h
void comlipai() /*整理电脑的牌*/
. G' `) z' V4 _8 O{ int n,j,u;
5 P1 ~# e- m, t' c* bint *lingshi;' p2 S) A. }& V
for(n=0;n<computer.m;n++)
3 t7 U: k2 i6 [1 x0 [) tfor(j=n;j<computer.m;j++)
% e- _% t8 [' g4 C! G8 }5 P{8 w8 g% M1 z1 M0 G
if(computer.pp[n].number>computer.pp[j+1].number)
0 a9 a5 G" l F% N3 G' n{
i) d! @; a2 a; ~lingshi=computer.pp[n].k;' C5 U8 G( r$ o" r0 H$ \
computer.pp[n].k=computer.pp[j+1].k;1 i# U: S: [1 y6 m
computer.pp[j+1].k=lingshi;
: p, C X: q$ A% K- xu=computer.pp[n].oneorfour;4 l; i. g$ i; B* u$ t: X
computer.pp[n].oneorfour=computer.pp[j+1].oneorfour;4 K0 b& U7 r2 H) d' ]# B
computer.pp[j+1].oneorfour=u;# D4 F+ C" D1 i2 D1 P* L7 r# w
u=computer.pp[n].number;8 {! X! Y( ~9 @" h! h0 v# ^+ ]
computer.pp[n].number=computer.pp[j+1].number;1 o4 |0 X$ `- `; u( k* G) ]( Q* k
computer.pp[j+1].number=u;
% [1 P4 L2 f- T2 c, E}
8 E6 U" o9 `' P+ q( Jelse
9 ^6 B( t! _8 w$ s& o& B5 y3 bif(computer.pp[n].number==computer.pp[j+1].number)3 _: S" t0 p# K; |( `/ G
if(computer.pp[n].oneorfour>computer.pp[j+1].oneorfour)
0 f/ ]6 T$ ^& j [2 ~{- K# o! s6 i6 N, y+ s
lingshi=computer.pp[n].k;
2 p/ s+ p# {/ j5 q; Hcomputer.pp[n].k=computer.pp[j+1].k;
& t) S6 {$ i8 E3 d* Wcomputer.pp[j+1].k=lingshi;
8 s. g# ?5 y$ `! e" [3 W' Zu=computer.pp[n].oneorfour;
7 D5 M5 N5 l6 O* u, A( V5 Ycomputer.pp[n].oneorfour=computer.pp[j+1].oneorfour;
' C7 h5 N6 q- @; p _computer.pp[j+1].oneorfour=u;% s- A) X+ o% r- M5 t, k) p S
u=computer.pp[n].number;1 d- ]& m2 {" O& z2 q* H( _9 g
computer.pp[n].number=computer.pp[j+1].number;
/ b# l/ z/ H) m! l; C( [ o5 bcomputer.pp[j+1].number=u;# C, L ~. Z( k! L2 z9 c
}- Z& c9 U0 F! C) X" T
}2 d: E5 ~( _0 a
}
3 i- q( P7 [6 w4 p/ X8 V8 {. qvoid melipai()2 y2 T, G' K3 J6 P$ X3 e5 H) Y
{ int n,j,u;' G# l* r- G$ |. ~+ A# o
int *lingshi; P+ j, c# m U: S
for(n=0;n<me.m;n++) Z# y# r7 |9 i9 b! C9 e, ~
for(j=n;j<me.m;j++)7 |. g" x9 I2 ~! _3 ~
{
* m! x' M0 e! _6 lif(me.pp[n].number>me.pp[j+1].number). @3 y3 i+ Z4 C1 d- @
{
0 @; L* _9 ^' y/ q- blingshi=me.pp[n].k;
" }0 M/ b* c `+ b: b1 [me.pp[n].k=me.pp[j+1].k;7 w; K4 M+ Q8 A; ]9 o) p
me.pp[j+1].k=lingshi;
4 p! L; C" ]9 c7 M! d2 P0 n5 w2 R6 yu=me.pp[n].oneorfour;
m0 {: p6 K" F0 ]: Tme.pp[n].oneorfour=me.pp[j+1].oneorfour;5 y$ w& O8 i; n- L# v% r6 ]4 T9 ~
me.pp[j+1].oneorfour=u;
, q* o3 X# T$ w7 l' g6 U0 Y zu=me.pp[n].number;
! @0 j# O3 V* `me.pp[n].number=me.pp[j+1].number;
0 R& \# c8 P; Tme.pp[j+1].number=u;
6 s, P* ]$ s. B+ f}/ ]+ Y! E" C) F! b0 s2 B
else
1 K1 B, p. j) ]* T G% q8 Eif(me.pp[n].number==me.pp[j+1].number)
* W! F$ {1 U7 l+ Dif(me.pp[n].oneorfour>me.pp[j+1].oneorfour)
, N& \# F8 \- N9 L6 }/ `. k{
/ W% o% @8 m$ X( S' B8 C* J; Olingshi=me.pp[n].k;7 c6 v% b5 o) o9 S, D: I
me.pp[n].k=me.pp[j+1].k;
8 o; {6 r) P6 C: p$ [- Kme.pp[j+1].k=lingshi;
; [4 ~2 v& Z" B8 n2 ^3 U4 B% Nu=me.pp[n].oneorfour;
. k0 w/ G' o" K( P7 E$ ]* Fme.pp[n].oneorfour=me.pp[j+1].oneorfour;- ?4 O5 ?6 n- D7 u8 J7 G Q
me.pp[j+1].oneorfour=u; q( A7 g" O* k
u=me.pp[n].number;
5 D: }& Y% ]1 l/ ^' sme.pp[n].number=me.pp[j+1].number;, A+ T0 t- x: k" ^
me.pp[j+1].number=u;
7 A2 V/ N, i4 o( q3 R" r" z7 {- V}- ]5 N+ g$ u3 o* ~5 H7 `
}# ?- F; m! y( g( x# _8 z, d- y
}* J( c, {# T, l4 L
void rgzn(int c) /*本程序涵数的核心针对电脑的牌*/
; n8 y4 H& s0 ]. W! Y2 C' y( @" b{ int b=0,lg,lgg,logo,logoo,pg=0,gp=0,cs=0,f=0;
5 M$ b: X' r$ W8 j6 P& m# hif(me.pp[c].number<=35 && me.pp[c].number>=0)7 t4 D: F; i) Q' g
{; R8 \8 N" a+ V) Q
logo=1;
; Y+ D; d% B5 G0 ^* w1 \+ Oif(me.pp[c].number<=3 && me.pp[c].number>=0)
1 x/ U5 S& z" d Hlogoo=1;
: {5 F' F# G& pelse if(me.pp[c].number<=7 && me.pp[c].number>=4)% L9 n3 f' }$ B, \& Y
logoo=2;3 D1 |- s& F ]" {+ G$ W
else if(me.pp[c].number<=11 && me.pp[c].number>=8)
]) d, h' }1 n9 ~ slogoo=3;; b6 H$ [) H. }1 K; s. Y6 a' i
else if(me.pp[c].number<=15 && me.pp[c].number>=12)
* o6 S# Z- ] P) g; F9 slogoo=4;
6 w* ]9 u; U+ g& |! `, _. Ielse if(me.pp[c].number<=19 && me.pp[c].number>=16)8 ~3 s& Z1 X3 i7 n& `# n) U
logoo=5;
" ^1 e% @5 d: H: ]else if(me.pp[c].number<=23 && me.pp[c].number>=20)( b, a; H2 D! \1 m( D
logoo=6;3 [9 G% I0 e) P# f0 ~) ?
else if(me.pp[c].number<=27 && me.pp[c].number>=24); \( a2 B0 c" W, N# _
logoo=7;+ w; o- h6 {7 }- a
else if(me.pp[c].number<=31 && me.pp[c].number>=28)
8 C a) }' U5 z' E" W7 |logoo=8;
- C- \* @+ w8 |# S5 J8 \else if(me.pp[c].number<=35 && me.pp[c].number>=32)0 m0 b% b/ Q# q8 t$ k: C
logoo=9;* r5 |% V0 i6 {5 P+ A% J
}$ [3 ?9 W- O' c; X* I$ ]
else if(me.pp[c].number<=71 && me.pp[c].number>=36); F2 L# l" I& p0 V0 N$ k$ r
{/ B6 k1 |! g3 A6 c# ?
logo=2;
' K8 c5 x( N. _3 R$ ?1 dif(me.pp[c].number<=39 && me.pp[c].number>=36)
% u% Z, S9 I: R+ Elogoo=1;
( t0 `$ a# u/ P8 d$ c T9 \( melse if(me.pp[c].number<=43 && me.pp[c].number>=40)8 J$ l3 N0 z) N( c9 u
logoo=2;
- p6 ^0 ^; n, P5 |$ Selse if(me.pp[c].number<=47 && me.pp[c].number>=44)$ {7 r0 }: a* N; g# K( c$ W
logoo=3;
3 H2 K( ?; I' qelse if(me.pp[c].number<=51 && me.pp[c].number>=48)! L! E1 v. a3 Y6 y
logoo=4;" L' u/ ^1 j9 R0 `4 d/ G
else if(me.pp[c].number<=55 && me.pp[c].number>=52)
/ l4 o2 b M- Y* k. W7 ]logoo=5;
" u: R) x p6 n6 [) |6 s) t x& U( Velse if(me.pp[c].number<=59 && me.pp[c].number>=56): O# F9 t3 x( a' [" O2 f2 O/ d
logoo=6;) }5 m( s0 o6 ?% c7 d# w* |( h
else if(me.pp[c].number<=63 && me.pp[c].number>=60)2 Q0 i* I" }/ ~3 k6 u
logoo=7;
) q7 Z4 Z6 j8 n Q6 Telse if(me.pp[c].number<=67 && me.pp[c].number>=64)
" ^7 u$ E: I# h8 `: F( H, R* Mlogoo=8;8 C& u, @# c" @0 \; F% R
else if(me.pp[c].number<=71 && me.pp[c].number>=68)
$ W/ A! j6 S- m% O: Q4 Plogoo=9;0 B0 _- V2 r' N/ p
}6 }) l1 s: O' Y3 l: E7 A* c
else if(me.pp[c].number<=107 && me.pp[c].number>=72)* L4 \4 q; ?! I0 Y) ?% a
{7 u% ^6 ]4 V; I& ]3 j) a: S
logo=3;! r& F0 S5 g* d1 H
if(me.pp[c].number<=75 && me.pp[c].number>=72)
: R0 H% S1 x: e ~& @4 `logoo=1;3 p5 x9 d" M a, o
else if(me.pp[c].number<=79 && me.pp[c].number>=76)
% m& G1 M- E7 f/ C; N7 zlogoo=2;) M; F# U% D7 n! \ |3 s" B
else if(me.pp[c].number<=83 && me.pp[c].number>=80)$ q; `- O& F& C7 t' K- n5 c& Z& H( B
logoo=3;7 b8 w V" d" e* P3 ^5 @& x! y
else if(me.pp[c].number<=87 && me.pp[c].number>=84)
6 |1 p' d" x! u5 Dlogoo=4;2 G, L" x$ G" U/ h6 X) z
else if(me.pp[c].number<=91 && me.pp[c].number>=88)
, R% m" J% X, f# |1 }1 O( s, tlogoo=5;
1 Q5 O% Y2 Y0 R- C8 Ielse if(me.pp[c].number<=95 && me.pp[c].number>=92)
% w! @ ^0 u; M: Xlogoo=6;6 _1 N3 ]/ @) h# j. G
else if(me.pp[c].number<=99 && me.pp[c].number>=96)1 P9 y, o) C! F6 U
logoo=7;8 w" r# }/ {% w( p6 E3 w, p
else if(me.pp[c].number<=103 && me.pp[c].number>=100)% K( \# q& E5 D/ b. ^( q: q
logoo=8;
, V3 C% h' {6 Zelse if(me.pp[c].number<=107 && me.pp[c].number>=104); E$ z- R* g, q9 L- h$ w
logoo=9;
& f; p+ g6 R/ `$ p0 [% l; A}
3 B. w9 F; `. q/ A% }2 r& Z; O7 Zelse if(me.pp[c].number<=135 && me.pp[c].number>=108)
' }! V2 t: Y/ h8 p! a{
. Z7 m1 ]7 t5 v8 @: ~) ^# {logo=4;2 ^. J! E: p) |: w* Q7 y9 a
if(me.pp[c].number<=111 && me.pp[c].number>=108)
L) p6 }3 M# ^4 |! E7 |$ s" jlogoo=1;: w! O( \) _6 F, T& L3 q8 C
else if(me.pp[c].number<=115 && me.pp[c].number>=112)1 k8 k- l# d4 [! Q: I
logoo=2;4 p0 o0 T6 y/ R" C7 S) t
else if(me.pp[c].number<=119 && me.pp[c].number>=116); y$ |$ ~5 G0 C# N+ J% c" ~& u
logoo=3;- g( c; E7 {% S/ @. k
else if(me.pp[c].number<=123 && me.pp[c].number>=120)
9 V4 I# V2 x3 ?3 v6 Flogoo=4;
* {- K* ^5 ^3 f' B7 g% k' yelse if(me.pp[c].number<=127 && me.pp[c].number>=124)2 P0 c+ n; m" k) ]% N
logoo=5;( z F- R: P' x% q0 ~$ @
else if(me.pp[c].number<=131 && me.pp[c].number>=128): Y3 `8 |6 ^5 H$ X
logoo=6;# S- ^: _, c9 u E8 m9 {
else if(me.pp[c].number<=135 && me.pp[c].number>=132). B$ q$ m7 a' T- E' U* H0 v* @
logoo=7;
3 P: l! m' l9 c! j# e1 v" A}" v1 R( ]" o; b9 @& _
while(b<=computer.m). [0 j1 n9 A* `, `
{
* l: @% H3 o' k. gif(computer.pp.number<=35 && computer.pp.number>=0) /*假定电脑经过分析后出了第一张牌*/
" j# M% x0 p, M{: V: Y- x/ C1 j: y" I2 }8 l
lg=1;: N& S+ J, D* @1 F9 h
computer.pp.d[0]=1;5 \+ I0 Q; l# O; f3 x) l
if(computer.pp.number<=3 && computer.pp.number>=0)
5 t4 s1 Q2 `; D' C- h8 {9 j{. X* n, z% U% @& s8 H1 C- {* F
lgg=1;' Q$ e# ]2 e! F
computer.pp.d[1]=1;. J/ Z, t6 F2 k
}1 ], E7 P8 K) _: Q% b* {. H
else if(computer.pp.number<=7 && computer.pp.number>=4)
* I* S4 e! Z3 F* J6 Y9 H{
5 g- T8 I( z9 @1 Y/ r& O, D5 Blgg=2;
+ \9 l0 n- F7 g1 q8 c+ ~8 }computer.pp.d[1]=2;* I7 q: Z5 E# ]: Q
}' u# z( m% B, H* l* r
else if(computer.pp.number<=11 && computer.pp.number>=8)
: p# h" c" R2 y \ _; o( c{" s$ O8 {, {* m0 _# h
lgg=3;5 S; L" _/ N' G% t: b& j; w
computer.pp.d[1]=3;
2 y3 R8 Y+ z, F}# W8 `( m: h, F' a) Z7 [
else if(computer.pp.number<=15 && computer.pp.number>=12): p9 k! O7 R: v9 H
{
, ], r- U6 [. k. xlgg=4;% X$ h8 K0 M0 A- u) t1 U% ?
computer.pp.d[1]=4;% P* Q3 F! y$ l
}
9 G( i+ k5 x/ H4 zelse if(computer.pp.number<=19 && computer.pp.number>=16)) P. N7 u, u: B3 V, W5 p: W
{- P r' [) [/ G7 M
lgg=5;
9 p0 y8 Q. f; p. {2 [' r) T; y' dcomputer.pp.d[1]=5;- _; ~0 I6 y- |) N! |
}% o3 R3 P1 s0 Q& F
else if(computer.pp.number<=23 && computer.pp.number>=20)- i7 l! S2 c9 {9 m- T1 p- C H
{+ ]- x4 C9 B: C" V
lgg=6;" z" h" F! R, ^: j
computer.pp.d[1]=6;% q) L$ M4 c7 [. S# _4 i
}
# U5 f! C& q- [ o; [4 Selse if(computer.pp.number<=27 && computer.pp.number>=24)
& H" f( R% g" C3 P{
- r2 X+ X4 }& N; f; C# ilgg=7;5 e/ w' K8 G; k
computer.pp.d[1]=7;
7 s* B% b2 |; w, u" ]% f! l5 y}/ w& _+ h0 |5 L8 w# c9 |0 V
else if(computer.pp.number<=31 && computer.pp.number>=28)* |$ O0 P' C; h6 f) p
{9 \* N$ f! P6 s0 o% k) {7 f: i
lgg=8;
7 B* T; k- q, M1 Ocomputer.pp.d[1]=8;5 a# T$ C4 q4 u
}- }* J& D' ~; H. q' b6 | {$ b
else if(computer.pp.number<=35 && computer.pp.number>=32)/ @5 G/ ]5 Z1 L J6 ]
{
8 `' p: K2 {1 E1 l z* glgg=9;
4 d q _% {5 r9 gcomputer.pp.d[1]=9;- R7 v' A3 p7 f! K# S/ C) k
}
3 U+ V6 a& Y2 @- K3 _3 T}4 _4 x2 R) v7 M/ x5 m. B
else if(computer.pp.number<=71 && computer.pp.number>=36)
4 m# G8 D; U2 w, m{) |' k! _7 K! u
lg=2;! m6 }1 q: z6 }9 I! k0 M
computer.pp.d[0]=2;7 I- ^: E% B ]2 A6 p
if(computer.pp.number<=39 && computer.pp.number>=36)
+ `. a* [+ a2 q9 s& o3 f{
. l- c: m/ ?- f0 f4 F, ylgg=1;
# x. L, h6 B! c: H, Y X4 r2 Vcomputer.pp.d[1]=1;5 n. j0 B/ z- I7 N" b$ n4 f
}
" w# c6 q1 }4 m. M# P( }else if(computer.pp.number<=43 && computer.pp.number>=40)
! {3 H( K! o- g* y6 Y6 s+ k9 }{
' _9 d, w; e1 |, M! H2 }lgg=2;- Q. G9 K# n9 ]# G; {
computer.pp.d[1]=2;
/ c! m7 v1 s: v% H6 E) ]}; @5 g, j$ j' j. A- m
else if(computer.pp.number<=47 && computer.pp.number>=44)
( I, E# c# ]. s5 m& m0 F1 A* [( ^{2 Q/ X# W8 L. d) ^# ^9 t/ b9 X
lgg=3;
# _, B6 ^ x$ ]; Ccomputer.pp.d[1]=3;( L# V5 G1 i6 k5 P
}
6 r5 g! T5 W% L/ n+ q% ~else if(computer.pp.number<=51 && computer.pp.number>=48). C' J2 s! G) l$ \: Q0 O
{
! [; x% x# J+ Q+ ]lgg=4;
6 _: D2 |2 |4 m1 C7 G( F; Fcomputer.pp.d[1]=4;' y5 A! e- m! a5 N* o' v
}& ~/ b6 a0 y* @. ?4 C
else if(computer.pp.number<=55 && computer.pp.number>=52)4 T* D9 E, O6 J( ~. b! O4 p& c
{' X$ ^1 Z: H+ q* f2 J4 |
lgg=5;9 \! N" {" F4 ]' f Q# q* P3 h7 L
computer.pp.d[1]=5;* U* |* v! }1 B* u" V* D) a8 t3 {4 E
}
! ]# N' E4 V7 ^- belse if(computer.pp.number<=59 && computer.pp.number>=56)
- V& u( ~' o0 P$ [2 m# `{; V- J: c2 e, C5 H
lgg=6;
8 H6 f/ P6 f* `/ F7 Dcomputer.pp.d[1]=6;3 l9 @$ ~2 V# y3 \
}
$ p, ~- s! d6 O' f. \else if(computer.pp.number<=63 && computer.pp.number>=60)$ i0 ^. G( u3 a! p
{
. T" m5 E5 ~9 g( h0 ` P" U) x/ wlgg=7;: C0 e) S, l J
computer.pp.d[1]=7;
% p8 ?& k, x+ ~) h0 V}' y& W+ f+ q1 Y( z4 v
else if(computer.pp.number<=67 && computer.pp.number>=64)" z% x! q. |- x( ^; l8 O0 y; a* r% j
{. o1 b+ S0 h+ \: x
lgg=8;& M0 b) z7 H5 X+ p" C* [* o' j' g
computer.pp.d[1]=8;" m1 I+ C8 z, a+ Y3 u3 m5 L( c
}
8 Y4 r" E7 L3 Y" delse if(computer.pp.number<=71 && computer.pp.number>=68)
0 |8 ~0 u. m( }8 b% I' o{
) G0 M0 e i9 H8 T* ?, `& q7 glgg=9;, Q# g" o- n; ?5 |
computer.pp.d[1]=9;
$ f5 h: q0 o) @! _# I}2 h" C9 }9 L, Q) x! D
}% A8 Q( J3 d# w6 y0 {0 E9 s/ g
else if(computer.pp.number<=107 && computer.pp.number>=72)8 m/ Y. H% b! i3 Y
{
- C2 q6 T' Q# T; J) F; }1 Rlg=3;
" X. h& }3 u9 C/ L! c5 Dcomputer.pp.d[0]=3;
4 w) h# q6 n2 ^( I! H! x/ M% Xif(computer.pp.number<=75 && computer.pp.number>=72)- g. D3 H' R) E( y, |: ]0 @4 b
{
, N! v7 S6 [$ e/ ^1 v' ylgg=1;
. Z, l% j7 |5 f8 \" Gcomputer.pp.d[1]=1;
! ]7 A0 x6 R1 s7 s; g$ |9 T$ |2 x}
# S9 u9 _7 F0 ]else if(computer.pp.number<=79 && computer.pp.number>=76)9 q* m" k0 S* }, Q
{6 `0 s; Y( x: T
lgg=2;+ F! d- H: Y# ~* m! C4 ~5 J
computer.pp.d[1]=2;
0 l; u+ r4 o5 x}" K; a2 r( ~+ O# ^0 L% r
else if(computer.pp.number<=83 && computer.pp.number>=80)
; N$ i. a) `! C+ R4 g{2 {0 @ e" N: B& J
lgg=3;2 ~, |! ?8 D' d. M" t/ a4 x
computer.pp.d[1]=3;. J1 b1 K& ? y3 ~( q
}
* f m7 L0 A" v4 s+ ^else if(computer.pp.number<=87 && computer.pp.number>=84)/ o. f8 P3 Q% x X! p; O9 u( L
{' n$ r. x# q7 d* O
lgg=4;
# ]6 a k) a- [0 Y/ I7 pcomputer.pp.d[1]=4;' F9 b0 ]# z9 z0 _+ v
}
6 V |0 y9 k0 k8 [% ~) belse if(computer.pp.number<=91 && computer.pp.number>=88): } R) [& j4 U# D+ n3 P/ O
{
. G8 x6 V" X H& Zlgg=5;/ J9 z5 G! l- b0 G+ U5 G$ L
computer.pp.d[1]=5;
5 t ~% \1 M" {+ y5 {}5 g& u# [8 v z! V' |! a" A
else if(computer.pp.number<=95 && computer.pp.number>=92)- U4 r/ ]+ q+ e, Q
{
( @9 h8 A, |% y8 ^" q- d7 v' }7 Clgg=6;
# h0 y9 n. J! S$ x$ k3 H& v$ n* ^computer.pp.d[1]=6;6 Y0 K# w+ s6 y0 m+ i/ E! ^" j
}: M$ G: a* N! m, u& g3 y
else if(computer.pp.number<=99 && computer.pp.number>=96)
' r# H+ Z& K- k6 m, q{
5 B2 C& R7 K5 \4 p. ]3 }! p. olgg=7;
- @! q; r! t( I( L6 R2 C9 \computer.pp.d[1]=7;
# i. {: m, K! k9 F" g8 Q) R}3 Y( f1 k6 z" H
else if(computer.pp.number<=103 && computer.pp.number>=100)
. H( K5 L( J: Y2 T5 [' e$ d* x{
8 V: @( i* W) ?- V; {( x2 Clgg=8;0 N+ H& }# c% i/ O: B* Q
computer.pp.d[1]=8; i, | u! q5 m& V( y% y
}
" f) Q3 ^, F: a% }. P2 celse if(computer.pp.number<=107 && computer.pp.number>=104)
7 b+ P# ]4 [: V, X{
% K3 E1 I4 W8 V( g2 }& t* ~( u+ F9 Vlgg=9;: r t' j1 I7 E- i) X
computer.pp.d[1]=9;( B; j7 y( X) M
}
0 [* j) U) s6 K% n, o& K# }2 @7 O/ e}
' O; H) e1 }" D4 l" s, H, F' }9 Welse if(computer.pp.number<=135 && computer.pp.number>=108)
% X1 N& g9 b O/ n* K% d{" e& O5 D d2 f# M
lg=4;! K0 \9 H. i8 d6 Y
computer.pp.d[0]=4;
) `' o; ^, f3 o7 Z- }/ zif(computer.pp.number<=111 && computer.pp.number>=108)
4 D- O) B& F' W$ ^8 u6 t7 R/ A{
' q, r; W) n. K2 M# K Blgg=1;
) P" {1 S/ ~5 C' b7 U" S4 Bcomputer.pp.d[1]=1;
! F# L. @7 w% a- u}
& e- t3 w% F, Aelse if(computer.pp.number<=115 && computer.pp.number>=112)& V& h3 p+ @ n2 Z( L0 b. V+ H
{& t! ^- z, R( F( Z, k) Z
lgg=2;* k# D$ X$ z- ^, W" L* a& J
computer.pp.d[1]=2;* d% z2 N5 a! Z, g+ x1 ?0 o: b* s( f
}
! p! h0 |( z% h; i% delse if(computer.pp.number<=119 && computer.pp.number>=116)
H, I f2 N* j{
2 V, d2 U' g( Glgg=3;+ F& ^# o+ E2 |/ y! {
computer.pp.d[1]=3;
9 c3 H& f$ @) g}
$ l' g6 u! v( S% ?4 F/ N2 |0 Belse if(computer.pp.number<=123 && computer.pp.number>=120): c! U* }* \9 y a. o2 y
{; w8 r2 W; Q1 J% ^' P, r
lgg=4;
# z) l( ~# p3 D/ {) S: }computer.pp.d[1]=4;: ?8 X# _6 E0 b4 }$ K, |
}; m& }3 H! c" F" W2 r+ v" E, { n* t
else if(computer.pp.number<=127 && computer.pp.number>=124)
) A) \# ?6 L3 A2 n/ W, [; E{( @; Y, N# G( `+ X" ~
lgg=5;- g0 z4 G6 N% z; S, J0 y
computer.pp.d[1]=5;
) L+ z6 O. n0 R. D/ E* W( E( j; b}. V! ]8 D+ _! {3 v8 J
else if(computer.pp.number<=131 && computer.pp.number>=128)
* J9 o% z4 b C4 n* k$ T3 O& S; @/ C{
0 }2 K$ v$ F# G- B8 h' x" S' A6 mlgg=6;
5 A% ] L! z2 V; S; c) O: c$ Ncomputer.pp.d[1]=6;
! R& P% Q& Z* M* K}
! V. }, a' W8 s/ C+ x. X; }6 L& pelse if(computer.pp.number<=135 && computer.pp.number>=132)+ D' T0 ]- V6 B+ E$ B) }
{
% Z; `7 a! Q* `3 c: Olgg=7;# W9 Q' v8 K4 G5 B) L0 h q8 U
computer.pp.d[1]=7;
: h3 z% u. m2 {( _}
/ n- R/ g1 V% W$ p( n5 U# a}# G6 i0 t- ^5 ?) e, h
; F& H8 A9 ~+ F/ Zif(logo==lg) /*如果相等的话,那再进一步的判断,乓杠的判断*/
! n) {( O7 ~$ h) ]; | v5 rif(logoo==lgg)
$ \; I; E% t4 Z6 Spg++;
! P3 b8 [. F% s, Bch.lg=lg; /*保存电脑手里的每张牌的信息*/+ r B- l) M$ N8 f- U
ch.lgg=lgg;
$ Q5 l$ n- L7 u$ q% X! I5 k. @: e- jlg=0;1 b: O' w+ w! U1 B
lgg=0;, {) @$ j- B) ?
b++;
2 q* g$ ^$ S, K9 ^% R! i( N}
# B3 w- M7 `2 W+ Wif(pg==2) /*乓*/7 ~) T8 ^& l- u+ U9 F4 A3 x
{
7 \' m5 d u+ |2 q8 P0 l/ x. n
6 k$ n+ F5 F" A6 ^% |sing=1;
& D! s$ d5 @( N/ {b=computer.m;
3 c# k3 L2 i1 j( Y3 cwhile(b!=-1)
9 q1 {9 F4 k0 R2 U, C{
4 ~( c2 n" u Eif(strcmp(me.pp[c].k,computer.pp.k)==0)
4 h0 f" |9 W9 p u' qcomputer.pp.p=1;& |) v8 Z* s. D3 Z
- J- r% |) ]/ r1 qb--;/ `$ E+ s" ?- r5 k( c
}+ Y7 ?) X/ s, r2 ]1 ~( F9 P
}8 E* X& l- z6 M+ F# [$ [% X
if(pg==3) /*杠*/ S. N/ k2 S3 C
{
( c& j9 @$ v( d; ]6 G- _! e
8 }& ?1 f' z+ G7 b7 ksing=2;4 R" U8 Y/ t9 Y. n" y
b=computer.m;
& }7 K$ a$ ^+ v( }( @$ K8 Swhile(b!=-1), z7 \6 X/ r! T1 H: z
{
8 y& t; ~. V8 Q @# ?if(strcmp(me.pp[c].k,computer.pp.k)==0); O% }- S8 B7 {! H
computer.pp.g=1;
" L( {% `* ]4 k$ }: zb--;5 I, b: d1 {" w; |. M# @1 I2 B
}9 B5 L6 o0 Y7 d' R
}
# j. J7 l f) W& ~9 Q! w9 T1 `- hf=0;9 ]1 V8 j+ r+ ?+ D. R. ?
while(f<computer.m) /*吃的判断*/) @/ @3 w7 M8 G" i3 f2 \+ o9 m
{ if(ch[f].lg==logo && ch[f].lg!=4)
1 g! d) R. S, g8 q- c4 M{3 J: e+ P* W0 ~" z2 y+ d: e
if(ch[f+1].lgg-ch[f].lgg==1) /*顺吃*/+ b3 |+ s/ S3 c& W
if(ch[f].lgg-logoo==1)
5 O9 ]7 k5 P6 U4 K{8 e) I: Y7 ^& g* p( k
gp++;
$ G0 D/ L5 R) P8 w6 A; zcomputer.pp[f].c=1;
- P: Z+ b7 C6 Mcomputer.pp[f+1].c=1;
' S/ \& x' e$ ]$ d. S7 i. [}
2 c, Y/ e$ h# t1 nif(ch[f].lgg-ch[f+1].lgg==-1) /*逆吃*/
l# s$ T( M. f- z' xif(ch[f+1].lgg-logoo==-1)
: t* q2 C+ }+ e) U6 i{% j: f; o$ Z* s: P
gp++;
+ [( F6 r( N! ?3 ]. g! kcomputer.pp[f].c=1;
# _5 ^& _1 A+ r, T0 R5 t* ]0 @computer.pp[f+1].c=1;* X5 E. P9 S1 N ?! r6 U$ _
}/ m& p1 L! r0 G3 V. p6 @% ^
if(ch[f].lgg-logoo==-1) /*中吃*/
" R- v1 B# p; g2 zif(ch[f+1].lgg-logoo==1)
8 J2 G7 z2 S# w' W2 j F) z0 b{
- Y; L: c7 |; u" Ogp++;6 }& ^ D1 \. l- @
computer.pp[f].c=1;+ u K% s. r7 ^7 d3 Z( j
computer.pp[f+1].c=1;! a' S- k1 E& a K8 Q
}! s4 P: g% q) M" ^% {
if(gp==1) J) o2 F% e0 a( t; ?: T2 E
break;
& N& o0 ], `; r+ t}: Q3 Z& H$ h6 b7 Y* P
f++;
1 _2 x. Q- X$ r u. w1 s( N2 S}+ b& x3 {. Z* n' N% Q3 Y
if(gp==1)
, U/ w: z; X8 v3 [; r. C6 R{sing=7;. s" V' n; k. J8 ~' G: u6 l- s
o8 I9 n# F- F& B}6 w$ B( L. T; I/ y
pg=0;/ Q6 ?4 T6 u% K
gp=0;
" `5 c$ C+ n6 S8 e7 fb=0;
A2 Q7 O" o( Z" R7 F}! C. A9 Y! Q& E h0 W
void rgznme(int c) /*本程序涵数的核心针对我的牌*/1 R7 ^7 T) w: ?4 c$ Y7 ]
{ int b=0,lg,lgg,logo,logoo,pg=0,gp=0,cs=0,f=0;
' k. A% V1 ^" c% t+ cif(computer.pp[c].number<=35 && computer.pp[c].number>=0)$ s J) ~# c; E+ a" P
{( d( j+ y9 l& `+ H) @
logo=1;+ n& w3 D9 \# z) b: w3 N
if(computer.pp[c].number<=3 && computer.pp[c].number>=0)
9 P, _6 q; ~* x; [7 tlogoo=1;8 k' R" I) j1 ?2 ]% c% D4 ]
else if(computer.pp[c].number<=7 && computer.pp[c].number>=4)& z% L) g' b. ~
logoo=2;$ T8 P, d# U$ _$ U
else if(computer.pp[c].number<=11 && computer.pp[c].number>=8)1 O3 j6 m% [% g' j3 y- X$ @
logoo=3;' w0 {9 _3 U/ r1 R5 i
else if(computer.pp[c].number<=15 && computer.pp[c].number>=12)
t1 L7 z+ e4 W0 P& w- llogoo=4;
; g: }% t3 O( ]1 o6 {" Ielse if(computer.pp[c].number<=19 && computer.pp[c].number>=16)7 {3 _ H1 a# J( {8 S
logoo=5;! b" d0 f, Q1 m$ ?4 @( D9 Z. c a
else if(computer.pp[c].number<=23 && computer.pp[c].number>=20), w) V% E( S# [, p
logoo=6;
! A$ u. U, c+ X& Selse if(computer.pp[c].number<=27 && computer.pp[c].number>=24)7 c7 D3 o3 s, q7 N& E
logoo=7;" N. H5 M: H; q# w
else if(computer.pp[c].number<=31 && computer.pp[c].number>=28)# Z' Y4 `# L. D4 W
logoo=8;
& C' o! F+ s# }' X2 O- w jelse if(computer.pp[c].number<=35 && computer.pp[c].number>=32)3 k1 C; ]6 W9 i4 G$ W+ @$ c
logoo=9;
, i, Q4 |0 \+ V b; b/ W}/ U$ s9 g* M9 L2 h) w. q
else if(computer.pp[c].number<=71 && computer.pp[c].number>=36)( F. l- o/ x" x+ f0 }
{
! f3 @. C- A2 E4 j: `# Jlogo=2;
* m+ B) R6 x* c* kif(computer.pp[c].number<=39 && computer.pp[c].number>=36)
0 X) h( u/ Z/ |" t: L+ T! _logoo=1;! Q: I+ I- A0 \: _. H
else if(computer.pp[c].number<=43 && computer.pp[c].number>=40)
2 G+ [( a* N" y6 a) w+ ]0 Clogoo=2;$ N5 x2 M, b; p0 l* w2 H
else if(computer.pp[c].number<=47 && computer.pp[c].number>=44)
+ F& R: s( W/ Hlogoo=3;2 K+ Q/ Z% f! `( X. J
else if(computer.pp[c].number<=51 && computer.pp[c].number>=48)
9 l6 x! Q5 R: |. l2 n+ e3 Glogoo=4;4 T t* {2 c+ a% n3 T/ j: D, Y
else if(computer.pp[c].number<=55 && computer.pp[c].number>=52)
+ L9 Q6 w: b7 d. C5 jlogoo=5;
* _) B. [5 O- D' Z" h. o- Ielse if(computer.pp[c].number<=59 && computer.pp[c].number>=56) N: ^1 W6 [# |; m+ K
logoo=6;
) @5 j# R. _( G9 |, f, Felse if(computer.pp[c].number<=63 && computer.pp[c].number>=60)
; w& l X2 q& ]logoo=7;
: d3 L/ s+ R, U+ Helse if(computer.pp[c].number<=67 && computer.pp[c].number>=64)8 I' {' T- R) c. d2 a7 m7 t5 \) ?
logoo=8;
0 X4 F0 P# ]: c( E. Q, |4 felse if(computer.pp[c].number<=71 && computer.pp[c].number>=68)
7 s. ~3 ^6 r. j. I4 g. l+ _# D8 Ylogoo=9;- x5 I7 l$ l# l5 v" Y3 Y5 @
}0 i2 z4 v0 j# u. z; j( K: H
else if(computer.pp[c].number<=107 && computer.pp[c].number>=72)' g8 y* Q! y; u
{. ~' j/ P- U3 O- Q9 Y/ o
logo=3;% B7 o5 s6 c! l' H
if(computer.pp[c].number<=75 && computer.pp[c].number>=72)
6 \( i6 l/ V: g5 p. i& R) blogoo=1;' R, [! \! N( \3 T' ~
else if(computer.pp[c].number<=79 && computer.pp[c].number>=76)7 n: ^8 C8 S6 J% k& M
logoo=2;& s* I6 c/ b# r% P
else if(computer.pp[c].number<=83 && computer.pp[c].number>=80)
- Z- j$ k" `' p3 N" dlogoo=3;
4 V! w& A6 m. T% x6 welse if(computer.pp[c].number<=87 && computer.pp[c].number>=84)
1 t4 W6 `6 }1 `6 Q4 llogoo=4;# y! Z+ I7 L# s1 l! m
else if(computer.pp[c].number<=91 && computer.pp[c].number>=88)9 b5 l$ V, z/ _
logoo=5;: r v% D; a0 P) [$ w
else if(computer.pp[c].number<=95 && computer.pp[c].number>=92)
/ J1 u) g) }! L" k& C* Mlogoo=6;
' P# g- e. o* V& o, Aelse if(computer.pp[c].number<=99 && computer.pp[c].number>=96)
@, j- _4 g* m# y; b3 D1 v% P% Wlogoo=7;: |2 @1 B5 H! ^5 k* Y
else if(computer.pp[c].number<=103 && computer.pp[c].number>=100)
# ~+ ~) k7 ^ Xlogoo=8;
" i7 h4 {3 H% c. X; r& E0 a2 Pelse if(computer.pp[c].number<=107 && computer.pp[c].number>=104)# p/ A. z5 @! j/ y7 y w
logoo=9;
) g; E* V3 T' j}0 ~0 q1 v% T1 E' V; l
else if(computer.pp[c].number<=135 && computer.pp[c].number>=108)
4 r4 ?! [/ R1 a{) s) l" \$ e# J+ S, w* c
logo=4;, P% A, ~5 L! z
if(computer.pp[c].number<=111 && computer.pp[c].number>=108)
. j. V; s: F1 Z Ylogoo=1;3 A0 |: L' m6 ]2 j* w, Q
else if(computer.pp[c].number<=115 && computer.pp[c].number>=112)! @* h' |2 X$ C0 w% N2 K
logoo=2;: I. _5 e2 u( e4 v) o( E
else if(computer.pp[c].number<=119 && computer.pp[c].number>=116)* \" M3 A% B2 H4 k- c
logoo=3;2 C ~4 }) G: }3 M
else if(computer.pp[c].number<=123 && computer.pp[c].number>=120)
$ l) k; m! E: F8 b* Y( U7 {logoo=4;
$ l9 a, B% k3 ~: oelse if(computer.pp[c].number<=127 && computer.pp[c].number>=124)3 g: x# _6 h' ?0 U6 p$ x
logoo=5;3 |8 v# C/ P8 {6 |, G( O) c
else if(computer.pp[c].number<=131 && computer.pp[c].number>=128)
8 H" U+ j: G* ~4 Jlogoo=6;
7 B4 x8 s" |( I6 xelse if(computer.pp[c].number<=135 && computer.pp[c].number>=132)4 ^- \- n2 Y' h' g
logoo=7;2 S0 y# L, q0 |. X: X
}9 c* a: w' n# S
while(b<=me.m)+ u: r& |# H9 Z5 b: v( E
{
9 `1 l* ]! g ]1 M9 J& G$ [* Gif(me.pp.number<=35 && me.pp.number>=0) /*我分析后出了第一张牌*/
8 r& d- P9 V6 W0 h0 V- p: j{7 h( I; ~0 `" i; G$ D+ r
lg=1;% \! f; H. c I7 P: n6 B
me.pp.d[0]=1;
- e6 E9 S" g; P9 u* a: lif(me.pp.number<=3 && me.pp.number>=0)2 t' }+ c' m5 ]: P; U
{
/ T8 B/ {2 `1 X) m9 L) n: g4 Plgg=1;; |! }+ F1 ]5 r0 x
me.pp.d[1]=1;
( t0 y- p, L* ?( y}
/ B. e2 T5 x1 C' n* Selse if(me.pp.number<=7 && me.pp.number>=4)
& v6 f: r: ]2 j) ~: R{) @5 o9 E; O/ @7 [0 u
lgg=2;
6 Z" s" S$ @& z! \& u1 @" D: Wme.pp.d[1]=2;! Y+ l T& Q3 }- E% c
}
* A8 b( c. P4 @7 w9 @2 T d- Jelse if(me.pp.number<=11 && me.pp.number>=8)
: V( F/ \/ d1 w; b" j{" u3 r( x( {+ }
lgg=3;
( s9 x r: n6 b( y7 [- P$ u# T, `2 Ome.pp.d[1]=3;
/ R, O2 n n4 w4 b. }}
# {) c+ N/ ]( F- t% H4 }" U; kelse if(me.pp.number<=15 && me.pp.number>=12). d/ c, ?) G; ~! o; K4 }7 @
{
6 M" l' M- `" I0 c7 Nlgg=4;5 z W0 K8 g6 h% ^
me.pp.d[1]=4;
- q/ s% k2 `- h2 U9 j}, `* x# ^; S3 ?( o) l
else if(me.pp.number<=19 && me.pp.number>=16)! }; G0 T$ S& \, g% Q4 v
{; P; `- f' n) B8 A# D7 u1 P: x4 a
lgg=5;
. z' h+ m6 Y( h" w$ k) Y. G1 o4 eme.pp.d[1]=5;6 P$ n, x, A7 |& u+ l- ~% {7 p
}7 L+ V( O* a0 P+ i
else if(me.pp.number<=23 && me.pp.number>=20): V) b# i4 B K2 Q; @
{
4 b# r' ~- V! D( M; E/ y: glgg=6;
$ j8 g! ` A9 y# xme.pp.d[1]=6;- {9 L! M4 T2 i
}3 k2 Q: B B$ T% |+ ~& _
else if(me.pp.number<=27 && me.pp.number>=24)/ C$ q5 F8 W: t3 c5 e2 _; \6 E
{
, Y# B( }- E7 ]1 {$ O, Wlgg=7;
6 M2 {( V3 \* S# Ime.pp.d[1]=7;2 A, U$ ^7 ?* p
}
9 L; E( V: D7 S" z8 H7 W2 B! uelse if(me.pp.number<=31 && me.pp.number>=28)4 S% v! w( P6 c5 E
{
5 `9 K( N. z2 E$ ulgg=8;7 [/ y- S8 n3 j. ?6 C. k; n
me.pp.d[1]=8;
/ }0 l) D9 M3 E7 b1 ]}; t! [4 x. m2 Y- w
else if(me.pp.number<=35 && me.pp.number>=32), d5 y. W( F* ?4 R3 d0 F
{3 W- K) n8 u$ j: ^5 e
lgg=9;
9 w5 h9 Z1 A* i+ x! w$ R; L+ D1 Ome.pp.d[1]=9;% R. |% ^. P/ V, C: w1 \
}2 @9 b7 {- Z4 c7 v
}
* p+ q5 b; o& p! yelse if(me.pp.number<=71 && me.pp.number>=36)( w* m5 m0 Q! M' |
{% | a& P: F: u/ w" g! u
lg=2;1 k. P% } ^3 ?6 e
me.pp.d[0]=2;$ C& V) }) ~; f* K6 u8 u5 o
if(me.pp.number<=39 && me.pp.number>=36)
# f* L' q& O% F{
+ v/ l; J) J" Q9 L" Z6 klgg=1;! J$ M/ J) T+ j* Y1 y9 L
me.pp.d[1]=1;. y0 E3 Q4 L6 L% {- W, P$ l
}
7 T7 u/ d1 j& O# ~" R( }8 jelse if(me.pp.number<=43 && me.pp.number>=40)5 D8 v$ P: H9 u, u6 X3 z
{
) z0 Y$ \/ \% n$ z9 P& Hlgg=2;
8 X6 z4 W, b8 U$ I0 dme.pp.d[1]=2;
1 N: k& s' G7 G: v' G}2 }( h. U: J' g3 G
else if(me.pp.number<=47 && me.pp.number>=44)
/ j2 g7 p; n! i$ g; j{
) {5 E a2 e6 H7 [2 x6 H. V& S# Slgg=3;
9 n4 K0 l+ T, v3 fme.pp.d[1]=3;" t' K: c5 w! F' }$ A6 j
}, k. s) Z- q \) J
else if(me.pp.number<=51 && me.pp.number>=48)
- }4 F3 W9 @/ E{
" t/ |9 s, J8 E4 _% N n7 b* wlgg=4; g+ j2 H+ L V" ^9 k6 G
me.pp.d[1]=4;( \( p* w1 d# f8 i' v# E9 D
}3 F' k9 |- V2 m/ R) p/ \
else if(me.pp.number<=55 && me.pp.number>=52)
0 Q" n0 ?4 s. o$ d5 M{
0 \; s6 m+ z, }6 W; S# Ylgg=5;$ N: A5 @5 u- V% a4 W4 x2 h
me.pp.d[1]=5;
; F; E! U4 s1 L* _1 x}
. e9 r$ Z! Q2 m6 g" \. I% q+ R% b# Aelse if(me.pp.number<=59 && me.pp.number>=56)
8 F' x- q2 v) V1 B{$ Q8 `$ `8 U# Q; i
lgg=6;! k( g5 U5 K d; n; Y1 _. J
me.pp.d[1]=6;
X' s, W% k8 P7 M5 v}
$ ]0 U7 Z& x9 N6 telse if(me.pp.number<=63 && me.pp.number>=60)
2 d; b, T! e* P2 q0 G [ F2 ]{) `3 `) A' R, ?* @, F* }
lgg=7;5 B5 V, t, z1 ?3 [5 j$ n9 K8 \
me.pp.d[1]=7;6 h; F% p# N: O5 t
}
* Q h' ?: l8 d+ M- ?else if(me.pp.number<=67 && me.pp.number>=64)# N5 G$ m) ~: R$ a& \0 F
{7 x6 `+ i/ c$ S8 s8 {
lgg=8;
6 r# i0 m' K0 k a; ~$ A' Q" Z7 s0 [me.pp.d[1]=8;. j; y3 b) M0 `5 X
}
. P- ?- Y y+ }else if(me.pp.number<=71 && me.pp.number>=68)( d. k# m! ~( p; E) R
{
5 a+ U( E$ [: u2 Qlgg=9;( f2 Y+ p q2 _7 ?3 O6 ~
me.pp.d[1]=9;; F+ S, `! }. Z1 [7 k0 b D
}
$ z+ P b1 `$ ` w! ^5 M}
# b; n: i, v. A' f: ]else if(me.pp.number<=107 && me.pp.number>=72)
6 `- Z: `0 m4 M& y9 p5 m7 r! Q{
( E ?' S2 P, v/ Tlg=3;
+ D+ n. j |, fme.pp.d[0]=3;- g. ]; i) ?" Z2 _8 s- Y/ R) @7 m
if(me.pp.number<=75 && me.pp.number>=72). r) V0 a2 w2 H0 p* s& h" L
{/ c7 C- U; n% X1 m3 E9 w W
lgg=1;1 _2 t; u3 o+ B. F. Z- l8 S
me.pp.d[1]=1;0 ~3 f3 h2 c+ l3 h0 Y
}
" M/ G" V' [! s$ relse if(me.pp.number<=79 && me.pp.number>=76)$ @$ Q% Z, a5 G
{. `4 m5 [! G J1 M8 G# A
lgg=2;
7 e! h' N: W& k+ ome.pp.d[1]=2;9 v0 o5 P/ o7 l# F" \$ k$ ?) Y
}- u% X4 D0 t A
else if(me.pp.number<=83 && me.pp.number>=80)
# s) _2 {4 u, c! M{
3 G {1 \, d2 f% M+ X F, Mlgg=3;
2 P" Y7 V* Z' m2 `1 W- Q8 @me.pp.d[1]=3;
: K; M; P4 B6 l}
: U/ \ Z1 M' k& ^ Q Z8 X5 Eelse if(me.pp.number<=87 && me.pp.number>=84)
& `+ c# m' W6 X8 | ^+ f4 \{
- c5 y9 S8 X0 Rlgg=4;2 s9 q/ f6 v4 ^& ^" W E4 O
me.pp.d[1]=4;' z) }2 r9 s8 G1 \
}- D8 n( k% E6 g6 \
else if(me.pp.number<=91 && me.pp.number>=88)4 E5 m1 h/ ?: p: @: T
{
; t. P, W# ]+ X* Olgg=5;
) z( L# h+ W% d [) M7 r/ dme.pp.d[1]=5;6 p" Q+ n/ K u8 \# W
}) ~" f0 w1 c; J
else if(me.pp.number<=95 && me.pp.number>=92)
- [7 W$ h5 Q. `9 U6 n- A{
0 b1 w* o0 B9 q5 R4 o" @ Nlgg=6;6 J& z% b, h0 }! }
me.pp.d[1]=6;
/ d0 v; N, f2 \& j% j8 w* `}
- K; O7 n; h0 h6 Q4 felse if(me.pp.number<=99 && me.pp.number>=96)
3 x* d7 F4 `" t+ a3 q" t9 v{
$ } J. r% V- q+ ~lgg=7;
* M3 z* t* `* ]4 V( tme.pp.d[1]=7;1 f% O0 I+ _0 ^ R. R
}% p( v9 t$ F/ M0 d; f
else if(me.pp.number<=103 && me.pp.number>=100)