数学建模社区-数学中国
标题: C语言技术文章 [打印本页]
作者: 韩冰 时间: 2004-10-4 02:34
标题: C语言技术文章
<DIV align=left>+ x( J% K8 d7 J1 L" K5 _% }+ h V
<
align=left>程序目的:+ H7 l9 ^# e6 p" N+ e6 e1 J
输入一个任意大小的迷宫,用栈求出一条走出迷宫的路径,并; v- L( B, S' t; V- V
显示在屏幕上。* ~. [9 _8 V. ^
程序实现:
# ~6 d6 ], l. f+ E1 S% ?7 d可以实现载入迷宫和保存迷宫,附带文件中有4个测试迷宫路径的
4 i$ F, X; d& V: P* M文件test1~4.dd。请将这些文件拷贝到TC当前目录下,或者在载' }( g4 ^% j* y0 i$ w
入时写明完全路径。由于屏幕大小的限制,当用户自己输入迷宫
( \7 H w. ]! n& h+ b% a9 n时一定要注意:迷宫大小是有限制的,不小于4*3,不大于30*20。
0 G' H _- ^ M4 e" h* D6 A! _# U否则会出现错误信息。输入开始时全是墙,用上下左右键移动,
9 M4 n7 b& X$ n6 i3 A/ H1 ~. E5 }# l用Del键删除墙,形成通路,用Enter键添加墙。输入结束时可以' E3 X3 Q- _. @% \! R
将迷宫保存下来,以dd为扩展名。输入完毕时用F9键来得到结果,0 o: J2 m2 ^. T
找到路径时,屏幕下方会出现Path found,否则出现Path not found。4 W8 R$ k) v6 B0 u
程序经Turbo C 2.0编译调试成功。运行时不用添加任何运行库。
, a0 { [. H1 g不可以在VC上编译。
7 [- }5 q# T( {( w; _$ K下载DOS版和windows版的迷宫游戏全部代码
2 L4 I; `! h: |5 @用户名:migong ) W- |' g% |. Z* }2 ?) d. z
----------------------------------------------------------------------------------: X$ X1 L% E3 m5 Q
/*
) _0 \0 U. C9 N: }2 QMazePath Demo BY Turbo C 2.04 W( b: |& |$ d( j V! V, u
Copyright(c) RoverUnion. All right reserved.. `3 ~) @% A7 ^. ]3 z* O
Filename: Maze.c
$ Y$ r, Y1 Q, T. Y+ j# AAuthor Dongchengyu.
0 k( O* _0 N+ z' p+ j# B8 p# dVer 1.10
. U$ {5 A' c" F, g, Y! U0 o*/
2 |" P2 G1 V& D#include <stdio.h>
& M, E9 K# A! E; f2 i- g7 _ R: |#include <stdlib.h>
. F: q5 X$ z) w# y#include <malloc.h>
. H5 R- l) O/ B2 P3 j: s( t. }+ n#include <conio.h>6 P$ L, O4 s) S
#include <dos.h>
6 K; B# C; S/ ?' |#define OK 1: x) [0 v: y" O1 g5 L
#define ERROR 0( s9 u" `3 J1 Y% t4 @* \
#define TRUE 1
( s- j+ V" }7 @( V4 K: ?1 W#define FALSE 0
, W0 v: n; Z5 _#define F9 0x43' [7 C+ n. A; c6 c
#define Esc 0x1b
N1 Z1 d' l- h% q) k+ [/ A! [) h#define Del 0x53
8 s: c# g% w5 ^0 z7 i#define Home 0x47: x, \: [0 f2 Y8 h% b/ \ ^) y0 O
#define End 0x4f
; H9 I5 e0 t: |; A P#define Space 0x20
' B* T T/ c% `. g#define Up 0x48
: M% s. A' L) {8 y3 C0 {) V: d! ]#define Down 0x509 l e) g, s. ?0 I6 |, a0 P, q
#define Left 0x4b; }( k9 U; ^' {
#define Right 0x4d1 g; \+ Q. Y. J: p
#define Enter 0x0d
4 C2 T$ g$ A7 M% t#define F2 0x3c/ b8 g8 b% {1 g4 X
#define F3 0x3d
( n% F( [8 w9 i, B! Q#define STACK_INIT_SIZE 2003 b, l. h' W$ [. ?! Z% Z/ w
#define STACKINCREMENT 10
; o+ K7 {" o9 V4 N9 ?typedef int Boolean;; y) d* |+ ^0 Z' x* D6 s* [
typedef int Status;
$ e. \7 o! l* v/ r7 J& \0 ktypedef struct {
* w1 d% a; q6 Yint x;6 Y9 B7 g6 I: v7 Y: o
int y;
$ G* e: ~- x4 O- w; }+ I} PosType;
7 u6 W. t5 F Y5 Ftypedef struct {
" W7 s0 \) ~% x" E) J, Yint ord;
3 i- d1 a; \$ a+ s' a7 jPosType seat;
, F7 Q2 _) f& w' a' ]3 Kint di;
" c5 J$ t( V7 k: N2 Q} SElemType;
! V$ o8 l0 L1 A8 Y6 itypedef struct {
- G, o6 `& [% @1 z4 {2 t6 A3 {int td;* W' O: Q# x4 }* a; V# Q" e6 D0 c
int foot;
" B! s( H8 ]0 jint mark;
. B: T2 K: }( @( Y7 I} MazeType;/ B: [* M) D. Q' L5 ]3 ~0 I
typedef struct {
4 U2 J4 M7 Y0 r" J" USElemType *base;
8 @' s: M! y& \+ E) _: K& oSElemType *top;
$ Q0 R% J+ X6 l) K$ q: u. S( D3 \int stacksize;
- s" i. x( W" W* _: M T* |3 T} Stack; \/ l8 h$ u( I
int Maze[20][30];' ~; _" a, ~2 Z" b% h& @1 B" i
MazeType maze[20][30];4 |# j- _5 y$ n
PosType StartPlace;% U" I3 i3 c8 m! V4 A
PosType EndPlace;
; |5 a% R& m" v8 {int count;, p) R8 m A$ p( T7 {/ n
int m,n;8 X% ~0 ^* S3 M$ F
Boolean b_start=FALSE,b_end=FALSE;/ w9 A2 K9 p% f
void CreatMaze(void);
) u. b( r* s; n lStatus SaveMaze(char *filename);9 w, s) j% A+ @
Status LoadMaze(char *filename);
3 x/ r& o3 w( Svoid Error(char *message);
" Y* ^- Q5 \$ u2 B' o5 k% {/ I# |8 u% [Status InitStack(Stack *s);' h. V+ ^4 ~. S% L0 b
Status DestroyStack(Stack *s);
9 q* @; C6 f+ x1 p% d+ bStatus ClearStack(Stack *s);
! W# H' x4 x8 VBoolean StackEmpty(Stack *s);/ { _/ H9 T: N5 e
int StackLength(Stack *s);
# q$ w9 P* O- y+ ] `Status Push(Stack *s,SElemType e);6 U% f4 u+ Y9 S" m: T
SElemType Pop(Stack *s,SElemType e);3 H7 o# q' j; _ Y4 q5 r C! r) M
Status GetTop(Stack *s,SElemType *e);
" a; x/ r1 F' S% F: S; w$ qStatus StackTraverse(Stack *s,Status (* visit)(SElemType *se));2 T1 c9 w+ L F: \! o
Boolean Pass(PosType curpos);
( ~' }+ \7 Z8 m5 D8 v7 K. [void MarkPrint(PosType seat);
. z6 e# F% ~) r4 ^" lvoid FootPrint(PosType curpos);
4 w9 Y2 `6 M8 A! P0 VPosType NextPos(PosType seat,int di);. K, M, R' i. r$ n0 e
Status MazePath(PosType start,PosType end);; P& d/ ^+ d# q6 S4 Z% D/ n
void CreatMaze(void)
/ V0 q' R- W: \# R* \, F, ]3 U/* Form the maze. */3 Y: y6 R+ q7 _/ t
{
; k3 M p# f, f) T. N+ m7 p4 r$ Cvoid Error(char *message);( l. E9 X; s% i! a
Status SaveMaze(char *filename);* x3 r1 ~) |% S: V9 |' R( w6 X
Status LoadMaze(char *filename);
( F) V4 v4 V' t1 ~2 vint i,j;; ^7 ~9 b$ B* u* {9 r* P" D
int x,y;- H/ `* S, {' m
char c;- Y5 H' Z1 d, ^1 F! t: L) n
char savename[12],loadname[12];) ?; J+ F5 M2 U. `7 [
Boolean flag=FALSE,load=FALSE;/ I, _* {1 o# |% @, o
clrscr();0 t! K0 v& w$ b
printf("Menu:\n\n");
9 A% T9 S' c" K- }. @( Z0 `printf("1.Load Mazefile
*.dd)\n\n");1 _7 |) v1 a, m1 \
printf("2.Input Maze:\n\n");
+ P# {+ P1 Q) ]" s5 H, Tprintf("Input your choice: ");
1 k) n0 i6 b( O1 Z! hdo
, l q2 S/ g9 r8 A" d{9 Q2 I" A) ?) @/ `9 R
c=getch();
9 S$ E) I- |0 u1 G& F# o. `/ g+ Q6 M/ nswitch(c)
3 j+ @ M6 L1 b8 n{
% i& v8 g# d0 A' zcase ''''''''''''''''''''''''''''''''1'''''''''''''''''''''''''''''''': putch(''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''); break;
9 v% L- W/ ]) |case ''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''': putch(''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''); break;
) t# D. m" N+ H7 {& i5 Rcase Esc: sleep(1); exit(1);
. R' |4 g' J9 `/ H( r* O4 Wdefault: break;
( c h) _5 r) w5 r. k5 ~- T; R& `}: {- K& F- p: Y3 B# X( T
}) [: { a3 f) y- a3 R
while(c!=''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''&&c!=''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''') ;
, S0 V& S: V- P6 x# h, `* w% A* Gif(c==''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''), `7 J6 D, v1 Z5 [
{
4 ?1 l* i# ]7 @8 yprintf("\n\nLoadName: ");+ B0 V0 R) d" `8 j- p
scanf("%s",loadname);
; J8 z& Z9 R# Q% Zif(LoadMaze(loadname))
4 ^$ i/ J; ^3 p% q{
- U. Y& T6 p6 |. ~/ S( [/ isleep(1); load=TRUE;- K |+ v& r+ t, T' T. n# u) p
}
3 o( h! m* P0 }1 jelse { gotoxy(1,9); printf("Load fail! "); }
/ A- p' I% I! B* g3 L}
* V; u8 f2 X& j- H6 Rif(!load)
2 H0 y# w% q% u$ S4 n7 L8 m+ ^{2 b3 _6 R1 B( A
printf("\nInput the maze''''''''''''''''''''''''''''''''s size:\n");# A- g6 n* m' M4 v- T' A. E. Q
printf("\nInput Length :\n");" h! q( d2 d0 {8 d8 X4 O3 s
scanf("%d",&m);* p7 R0 t0 ]- v5 y, n/ C9 @+ l- o
printf("\nInput Width :\n");( a# o/ H) P3 b8 Z3 y; U7 n$ k" o
scanf("%d",&n);1 N6 Y, D" c' p
if(m<4||n<4) Error("Input");' |1 V# U/ H: J( x. D
if(m>30||n>20) Error("Maze too large");
, A2 r8 A9 i9 [for(i=0;i<30;i++)+ Q' Y! p6 R# I/ f
for(j=0;j<20;j++)
8 E# s0 Q) ^1 B% G, dMaze[j]=2;
$ e$ }# A7 g/ S) I$ O0 yStartPlace.x=0;/ d: s6 ~& P# B* {- D
StartPlace.y=0;
5 h# {5 O, Z% S# bEndPlace.x=0;1 t4 y( o! c9 w9 C, L
EndPlace.y=0;) H: c3 l, i. _ [. U( a
clrscr();4 F& D) w2 m: E% T. H$ O% u
printf("\n");
' \% y. k' a* @ ?8 u8 lfor(i=1;i<=n;i++)
( `( H0 r/ r# P& n{
$ w" Q2 y5 ?. s) ufor(j=1;j<=m;j++)1 c( j4 Y; X M; G; }. h
{7 A/ v! ]& L# f
printf(" #");; d, ^% v: x$ g
Maze[i-1][j-1]=0;1 p# ?8 o' B, f5 |, C. D0 l3 W
}
' f" @& S \" k3 x3 J* j% {' ]printf("\n");
# t$ {6 R. x3 F0 l& O4 h l% X+ b}
& y) f. r. }& A1 s0 O3 m}* w8 Y8 e0 V3 R
gotoxy(65,5);
2 @" e; @: P& v* [4 c; O1 kprintf("''''''''''''''''''''''''''''''''#'''''''''''''''''''''''''''''''':Wall");
, u0 y& @4 m. _3 Ggotoxy(65,7);. e& Y6 N7 \: R$ N0 ~
printf("Start:Home");! g" T( o' c! l3 X$ V4 E
gotoxy(65,9);) s$ v. Q" _- r0 C& }
printf("End:End");
$ _( g" I; t* N! ggotoxy(65,11);9 J: N# R# ~9 g' v3 c. S% N+ Y
printf("Delete Wall
el");* C/ Q, E( D+ k9 w
gotoxy(65,13);7 p" j/ `. N( Y, l
printf("Enter Wall:Enter");. A Y! ]6 e2 U+ F2 s/ {1 a, p8 ]' G5 y
gotoxy(65,15);
+ Y8 `! K( U0 f. e' W4 S4 t. ~printf("Save Maze:F2");; s/ l. x$ g9 h X- x' T0 u. e
gotoxy(65,17);
. \! I8 U+ e& ]. w7 |8 G. rprintf("Complete:F9");; ^# A: }9 a+ @. ?, B6 \
gotoxy(65,19);3 m, M( r" Z2 X$ i7 l2 P; G& k& x
printf("Exit:Esc");
4 y& K8 S2 y* m% z+ a' K- Rgotoxy(4,3);- G. H$ e) O7 d, S" J$ Z
x=4;y=3;( d' J- R5 b. n
do- a4 O9 U @/ O; k$ n
{
4 P9 Y% L4 U. Y+ W' u+ jc=getch();
- B! c1 }" K2 ^8 oswitch(c) @( |, F% s: W1 O4 v; r9 f
{
* _1 }& w2 r5 q* f$ l! Wcase Up: if(y>3) { y--; gotoxy(x,y); }6 s# ]- I- s( C1 f. e
break;" n0 U( J/ w% P+ V- w2 _( i5 e
case Down: if(y<n) { y++; gotoxy(x,y); }
9 F# v7 u" B7 Q# @2 k: wbreak;5 x7 B; Z" x3 K v, t( B6 {2 J4 m
case Left: if(x>4) { x-=2; gotoxy(x,y); }
0 ]3 S9 B+ ?8 a' Bbreak;
$ H+ m% K$ w5 C8 ucase Right: if(x<2*m-2) { x+=2; gotoxy(x,y); }
$ X1 U3 k; I7 y% qbreak;
S( y" D) T' o& q* O3 e7 L- `case Del: if(y-2==StartPlace.y&&x/2-1==StartPlace.x) b_start=FALSE;
% }& c8 }' }0 Nif(y-2==EndPlace.y&&x/2-1==EndPlace.x) b_end=FALSE;
- m5 { S, n# @6 z7 _putch('''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''); Maze[y-2][x/2-1]=1; gotoxy(x,y);, e# l+ V+ f# J3 Z' ~, o7 H& F
break;
; q7 J- ?* d7 Q2 v% ucase Enter: if(y-2==StartPlace.y&&x/2-1==StartPlace.x) break;, d6 I6 `: n- ?1 W8 K' _+ u; H/ H+ g p
if(y-2==EndPlace.y&&x/2-1==EndPlace.x) break;2 r" @" I% F3 H% @. y1 J" J- n
putch(''''''''''''''''''''''''''''''''#''''''''''''''''''''''''''''''''); Maze[y-2][x/2-1]=0; gotoxy(x,y);
6 z1 Q) k) F! a) I+ o. F: P0 ybreak;. K N! V, I. s% Z3 g
case Home: if(Maze[y-2][x/2-1]&&!b_start)
/ \2 F8 i9 N4 Z* L. ?{
' D$ L& W1 V, I2 `" c4 |, H O9 F bStartPlace.x=x/2-1;
7 y: ~6 F6 J9 w- @2 w( l4 a& _StartPlace.y=y-2;
4 a/ R& t5 ^. @ ~/ U6 t4 kputch(''''''''''''''''''''''''''''''''S'''''''''''''''''''''''''''''''');
/ ]" N5 \' y* Q" e' `3 ngotoxy(x,y);
" U R* U( w4 U+ ]- ~b_start=TRUE;
+ T3 w2 S( n! U) V}
8 t' p- Y1 C( j3 t$ J; _break;) i) Z, f( L0 M/ `$ m# X
case End: if(Maze[y-2][x/2-1]&&!b_end)
2 ~8 I) T5 k4 i5 a{
6 z! s7 N6 z% Y2 x$ X. {) cEndPlace.x=x/2-1;* H: J2 R' n. K: x( L m. a1 e* n; s
EndPlace.y=y-2;: b+ Q* ?% T7 C% j. l
putch(''''''''''''''''''''''''''''''''E'''''''''''''''''''''''''''''''');- a$ s7 \* _( M' G! B
gotoxy(x,y);0 U6 W9 U. |) q- d- v; q6 |( m* o
b_end=TRUE;
$ u4 F, T3 d3 j4 v/ b4 ]}3 g, A4 P, x) V, N1 u, D6 ~
break; p/ ~0 Z; z; c' Z {2 F; W
case Esc: gotoxy(2,22); printf("exit"); sleep(1); exit(1);" g4 Z) n' R9 O. n5 a& s( g
case F9: if(b_start&&b_end) flag=TRUE; break;
# c5 R* Q( K8 f4 L" [2 c2 p% Pcase F2: gotoxy(2,22); j1 h7 P+ q; p8 N
printf("Savename:");
4 g; S' V* M! h4 d p. N# {scanf("%s",savename);! e! G0 ]# X" `4 @ u+ \0 `
gotoxy(2,22);) K, T2 W/ @4 |- G5 l0 Y
if(SaveMaze(savename)) printf("Save OK! ");
: W' E c1 q. N) v9 d y7 i; ^% K& Felse printf("Save fail! ");/ ]0 Y0 g, N! _ b3 K) i
sleep(1);1 K2 Q J% s2 `( t) l$ E
gotoxy(2,22);
" X) u8 d% i) w( Lprintf(" ");
" w5 [9 d1 [' O0 h Sgotoxy(x,y);5 _/ G- ?& @5 |4 y1 {
break;
- t" D" |# c" s1 _- x8 w' G$ qdefault: break;
% ]" o( {* Z5 `7 {! @2 R7 \" f) v}( K" Z/ k7 S- u
}
5 c0 R! ?9 C7 @! v* Lwhile(!flag);3 K+ U0 ?5 j+ Q. o r1 I
for(i=0;i<30;i++)
8 T' Q( A' k( u& _for(j=0;j<20;j++)
' O V! a0 d! _/ G# c" h{3 x$ m- s w& p, {% n( @. t( M1 {) F
maze[j].td=Maze[j];* b- z: A# F' c
maze[j].mark=0;7 z, D; g8 S' v" G' R. }
maze[j].foot=0;( x% ]+ C; N' {
}8 l- a4 ?" x- `; M8 }+ @* J: j+ |
}
% U/ h6 N8 s7 k( \/ D* b5 HStatus LoadMaze(char *file)# P9 _ |+ i; F( y& z1 q7 R
/* The maze has been loaded. */' J" q; D' |) w" e4 o9 P" o3 }+ n
{1 ^% k2 l- o% A. e
FILE *fp;" Q4 D" b8 X- g. {2 S7 S7 w
char *buffer; p ]* Q" Q. E9 k/ ]
char ch;. K! t& ?2 e% d: _/ K. S
int i=0,j,k;
9 p' s9 ^& y; A8 uBoolean len=FALSE,wid=FALSE;& d2 x! K$ F/ ?& H# X
if((fp=fopen(file,"r"))==NULL)
* |7 {6 R. r. Q9 \ \) B$ @7 ~/ s' sreturn ERROR;; J; i3 q5 q8 o: T, q- U6 S6 _
buffer=(char *)malloc(600*sizeof(char));) H$ l6 U9 n4 T$ b2 s/ z" ]5 g
ch=fgetc(fp);
" v5 M& ?# p& x0 c" m9 f( vwhile(ch!=EOF)/ }% q- P# W) S5 j
{
4 k: c* q$ U1 tbuffer=ch;: M& t: a; y7 e$ g3 Q
i++;& u3 d, f5 h1 E! c
ch=fgetc(fp);
) I& ~6 s$ [) M( `$ {5 z}6 [7 p5 ^; l4 B6 O
m=30;n=20; Y& C& ?% ?, L# t( h3 e& I
for(i=0;i<600;i++). Q- I$ @4 D+ o# q
{, x2 n) m7 O" c9 n! Z& e
j=i/30; k=i%30;5 F+ T% V: Z8 v7 N; U
if(buffer==''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''&&!len){ m=i; len=TRUE; }# N1 J# d: o6 V* `# z7 i
if(k==0&&buffer==''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''&&!wid){ n=j; wid=TRUE; }; [ m& n7 A, G1 N
switch(buffer)' J. J* w- Q) b0 V3 R4 b& N, e
{7 N' r) h1 I( c1 T3 z
case ''''''''''''''''''''''''''''''''0'''''''''''''''''''''''''''''''': Maze[j][k]=0; break;
! T! c# N1 j6 f, n* \- Rcase ''''''''''''''''''''''''''''''''1'''''''''''''''''''''''''''''''': Maze[j][k]=1; break;
J V# F8 f+ g2 Gcase ''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''': Maze[j][k]=2; break;
8 s! A6 u R5 x1 ^% i, V: ^" _case ''''''''''''''''''''''''''''''''3'''''''''''''''''''''''''''''''': Maze[j][k]=1;% {# y1 F9 v, e8 x& V
StartPlace.x=k;
9 V% g1 ?: b/ C$ A. WStartPlace.y=j;
7 c4 q+ _4 A0 m% g) u' nb_start=TRUE;
5 D1 s0 [5 h& l: [break;( I) z J( B4 u' x B$ @/ H
case ''''''''''''''''''''''''''''''''4'''''''''''''''''''''''''''''''': Maze[j][k]=1;! ]( G1 s( a! F' ]4 B2 O
EndPlace.x=k;
4 b6 F+ O X6 D# @: ^EndPlace.y=j;
* y- \; D& ?1 zb_end=TRUE;5 h1 B; Y' |) t
break;: M! J) b0 z6 U, o& U3 ?/ S
default : break;+ V1 |2 \, y# `/ R$ o5 R
}
& x' Z0 j" C" d' b6 w# m}- M5 Q" }' U1 u% t j0 x- T
fclose(fp);3 Y" ]& R9 I+ n( A5 G
clrscr();+ Q# J' ?; E6 U1 S. x( ?
for(i=0;i<30;i++)
7 ^6 P( L4 q% B2 z: {& T; I% Hfor(j=0;j<20;j++)
5 H8 |% t9 f/ \: q( U2 M0 K{
# ~: [4 m+ O" R; c3 \3 B5 Ymaze[j].td=Maze[j];
# k* y% U E3 _2 cmaze[j].foot=0;
5 u6 S0 b9 [7 k" {maze[j].mark=0;5 X) d# d. l! P. B% I2 T
if(Maze[j]==0)
" j% X) q, A3 u- \4 b{
# j8 j: E- l' `' ]0 l. ~gotoxy(2*i+2,j+2);
- N$ a$ I' ~' x1 h8 G, Oputch(''''''''''''''''''''''''''''''''#'''''''''''''''''''''''''''''''');
/ r, `. i9 O; \% u; h}
& k% g H1 J7 E. C# |3 }3 [1 K9 {}
" k! B5 _4 I% t8 t- S$ lgotoxy(2*StartPlace.x+2,StartPlace.y+2);
: `4 V/ j! k( r( c ?# ?5 \putch(''''''''''''''''''''''''''''''''S'''''''''''''''''''''''''''''''');
& Q3 v0 Z4 [4 B' {/ egotoxy(2*EndPlace.x+2,EndPlace.y+2);
9 _$ c2 V3 t3 |% V1 |( ^; }0 Uputch(''''''''''''''''''''''''''''''''E'''''''''''''''''''''''''''''''');
8 K1 o7 s3 i: Z x" ]% t. o1 kreturn OK;
( s! X5 Z4 a7 A; U' I. W# d1 |}
. I9 p2 @7 z6 v6 b2 h fStatus SaveMaze(char *filename)
) W( M I. K& @8 I& ~ p4 D/* The maze has been saved. */, ^, t4 X) u L6 e8 P
{: k% i& e8 h5 v3 ~5 X; x# n
FILE *fp;
1 _& y, n: T1 X* {8 C# L7 tchar *buffer;9 z3 a: w' W) f v. u' Z# U
int i,j,k;4 j$ x H% A% d, a$ f: O; u
fp=fopen(filename,"wb");! _! m, S1 B' J$ v$ b
buffer=(char *)malloc(600*sizeof(char));
2 s/ J& ]! O" O% R4 h [% U' h' hfor(i=0;i<600;i++). M' y: C G" C! ^9 z5 x! k- A
{- r) J S) u2 `" K1 V6 k- m* I# j
j=i/30; k=i%30;
3 _2 r1 Z+ u% P$ [ Nswitch(Maze[j][k]); @% j' c1 {5 B9 _0 i! B9 o# F
{) k P/ A8 ], q7 o7 `( C
case 0: buffer=''''''''''''''''''''''''''''''''0''''''''''''''''''''''''''''''''; break; _0 _0 E% E; v) n9 D% v, q
case 1: buffer=''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''; break;" L8 i) H4 V2 W9 I6 T5 x
case 2: buffer=''''''''''''''''''''''''''''''''2''''''''''''''''''''''''''''''''; break;
" U8 E0 D4 V: Q: edefault : Error("Write"); break;; x4 \. ?/ E4 c
}
2 V! i8 N( U0 Rif(k==StartPlace.x&&j==StartPlace.y) buffer=''''''''''''''''''''''''''''''''3'''''''''''''''''''''''''''''''';/ P+ D2 X( H! ~& C
if(k==EndPlace.x&&j==EndPlace.y) buffer=''''''''''''''''''''''''''''''''4'''''''''''''''''''''''''''''''';
* I% u4 @& `5 P9 V R3 H}
- S8 o$ I7 T' {- cfwrite(buffer,600,1,fp);/ l; S1 X5 {9 B. \
free(buffer);
2 p# E5 @! H. @ ~5 E0 e# xfclose(fp);& R- {* _- j+ W, D8 X
return OK;
- P$ F( a# ^" p9 S}
2 z$ E [1 t! h% Zvoid Error(char *message)
/ W$ R+ Y: E$ z; m2 c! @" {: ]5 @{
' ^, ?4 d5 H! s) t! @( `9 G/ zclrscr();% l7 S4 T& H+ x- j
fprintf(stderr,"Error:%s\n",message);) o) w6 z* A( j0 ^
exit(1);
& i" N$ ]9 j; C) s" e} /* Error */+ c/ h# X8 p7 }' W! A( |
8 _* b# X; q, F1 d
Status InitStack(Stack *s)
A) `% [+ ]! C* l2 u M/* The stack s has been created and is initialized to be empty. */
" r4 [5 D+ e$ r0 }{" b" H9 @0 N& ?- L
s->base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));, i U. L$ A9 Z" ]
if(!s->base) Error("Overflow");
9 P" U! _8 o- W0 I' u/ e" zs->top=s->base;. a' g8 K* U1 M) v2 i) x* F7 L
s->stacksize=STACK_INIT_SIZE;6 x" {. e, X+ N! ?7 ?& r ]
return OK;0 h- A" B! |) x) c9 G7 N7 n# O
} /* InitStack */
* y8 |0 f. X, k& WStatus DestroyStack(Stack *s)
4 l. X5 x) _* y( ^/* The stack s has been destroyed. */
% w! o8 |2 ~+ E. M{
/ Z9 g4 n( a% C7 f- w1 _* Z Gs->top=NULL;
) J: M! ]# @* b6 ?# Y# _s->stacksize=0;
& E1 {& C9 G% T7 K# nfree(s->base);$ z2 I# W' a$ V: }
s->base=NULL;% g: u2 _) d. X+ q+ z
return OK;( t- E9 O8 a* {5 E0 B* c; G
} /* DestroyStack */
4 D7 X5 @5 Y" p; F- E yStatus ClearStack(Stack *s)+ ^# V. Y, l0 w
/* The stack has been clear to be maximum. */
; q' e: C+ ]( X' a6 C( G{: C# ^5 P" M5 j% @" J# H
s->top=s->base;! s p* W) _8 A. h5 C
s->stacksize=STACK_INIT_SIZE;
, H/ I. D2 p2 @4 ureturn OK;
# H$ z6 o5 q: [. @1 c! n2 y} /* ClearStack */: B; @# t: I. y% o2 Z) N* h( M
Boolean StackEmpty(Stack *s)+ r( f5 Z A2 `2 L" e
/* Check if the stack s is empty. */
9 V' n" z: b$ r{; ? `& b' z- @: t; ^# k
if(s->top==s->base) return TRUE;- Y! G; N$ M. P% N3 ~
else return FALSE;& J1 G1 O1 o% O) k& J0 ~; i
} /* StackEmpty *// V6 d/ i$ x9 z! P9 l" _. U+ d* C
int StackLength(Stack *s)
: K: T4 {" H# M- N2 C' I3 ]0 S/* Gain the length of the stack s. */* c% C& ^3 t# R$ H3 T$ v! z
{
5 c4 N8 p# R* D kif(s->top>s->base) return (int)(s->top-s->base);
( f0 P: Y! q: d1 v& Felse return 0;
7 Q7 ~& n- }/ l6 T) r( T} /* StackLength */0 d* W& J6 X* H3 t1 k
Status Push(Stack *s,SElemType e)
; v- }* p% u% ~& |, v! d' L5 Z2 H6 n/* The element e has been pushed into the stack s. */
2 X0 m6 w) d8 k4 F9 F5 Y{3 r. n$ r1 f# L# g9 ^# r! `
if(s->top-s->base>=s->stacksize)6 c- J+ M* e& a2 T) l% I! @
{
. B% J4 D4 `. G+ ?; y' \6 j4 y$ [s->base=(SElemType *)realloc(s->base,1 N3 w7 E0 O. k7 [, H
(s->stacksize+STACKINCREMENT)*sizeof(SElemType));4 A( ^. `8 f# ?! b( [
if(!s->base) Error("Overflow");
' L/ z8 n& Z7 }' H: ms->top=s->base+s->stacksize;
$ J, D8 \7 L: b9 Ls->stacksize+=STACKINCREMENT;
" e8 C0 G* x; D; K/ M}# ^9 ?3 ?# l+ _: e/ e; A% D
*s->top++=e;; B! G- |( M. k
return OK;
6 E( w, |5 l) d4 v2 K: f: S} /* Push */9 T X3 g- ~& G. Q: t( N0 D
SElemType Pop(Stack *s,SElemType e)
& ~, p! L+ L$ e/ p# a4 A/* The element e has been removed from the stack s. */, A0 s: k+ F8 t/ |' O/ N3 h' \
{
$ D3 q8 M+ e2 p2 cif(s->top==s->base) Error("
op");
9 V: {6 W+ v- E1 `( ae=*--s->top;
( H" D2 ~( n/ T/ N0 ?$ m/ Kreturn e;
( a' j, S: ?6 \% d, Y: h( O} /* Pop */
+ M0 g+ D3 H) sStatus GetTop(Stack *s,SElemType *e)( y( _2 h4 J+ D+ `7 ?
/* The element e has got to the top of the stack s.*/
' }9 E. y5 M( w& K+ J0 a: N{
/ @: r% v, x( B+ p' _8 f6 kif(s->top==s->base) Error("GetTop"); u: Z4 U$ N/ J6 \ i
*e=*(s->top-1);
2 Q( b3 ]# H) m d* E7 {& Wreturn OK;9 t" ?) |" l* D% j; ?1 W/ t
} /* GetTop */4 ~% _1 {) d& ~. \; x5 }% {
/* Traverse the stack s using ''''''''''''''''''''''''''''''''visiting'''''''''''''''''''''''''''''''' function. */. Z ^: [ a1 d3 v9 N0 Y
/* Status StackTraverse(Stack *s,Status (* visit)(SElemType *se))
8 ?* O- _, L7 D# t4 T{
8 s! d' O7 N7 B# p( V% hSElemType p;& ]& Q6 ?2 Q+ i& y* y5 K
int result;, h7 |9 B. D7 k/ t0 `$ o) O
if(s->top==s->base) return ERROR;
* H1 d! P! a, i. R4 gp=s->base;
0 A1 X5 y$ B5 Xwhile(!(p==s->top))$ f7 V3 @8 a. v( b' Q
{8 M5 }& Q2 J f7 a+ K* q% Q
result=(*visit)(p);' g8 q4 ?2 Z( o$ L. R- G
p++; t1 S4 y+ j0 I* q
}: M6 t% ~8 T2 N
return OK;
4 p* b0 `! {3 I} */& m* I9 |2 E. @5 Y
Boolean Pass(PosType curpos)
! J: \0 j1 `# _$ V. F. j/* Check if the current position can be passed. */- x# T! l% r+ ]* X/ V2 @: O
{4 F3 u( C' d2 E7 X: V; u4 u
if(maze[curpos.x][curpos.y].td==1&&. G7 H- I6 |; i; j" p, k0 @
maze[curpos.x][curpos.y].foot==0&&maze[curpos.x][curpos.y].mark==0)
( _7 y/ |+ Z6 S7 {) Q* x1 E! ureturn TRUE;
) y; c& d9 L2 Q8 Xelse return FALSE;
! \' q7 v& Z& |* L+ ]1 C8 x7 N" b} /* Pass */
: x! m3 C! B* [+ D; Q! Y9 g& Wvoid MarkPrint(PosType seat)$ Y4 x, a. G" W. Z
/* Mark the position seat. */
+ L5 c9 q" p l/ H5 \ {{# n& X: O# A2 _/ C2 J7 d: R
maze[seat.x][seat.y].mark=-1;
( O7 V1 u, m- v6 T7 o& |! a3 }/* Marking ''''''''''''''''''''''''''''''''-1'''''''''''''''''''''''''''''''' symbolize the current position cannot be put. */# {; Q2 k. e8 ~% r! T R
} /* MarkPrint */% O2 J" U+ m, D- b5 O; i: `6 }
void FootPrint(PosType curpos)
- M9 K5 _' O% t N f+ p/* The foot of the curpos of the maze has been set ''''''''''''''''''''''''''''''''true''''''''''''''''''''''''''''''''. */0 V- Z) ?# d1 {/ u( w
{+ A B7 [% p& H& |( j& {2 q X
maze[curpos.x][curpos.y].foot=1;4 @* M5 e8 o- k4 q5 j
} /* FootPrint */
+ X2 L5 ~* g. }. y" dPosType NextPos(PosType seat,int di)& D: Y+ H" ^* ^& K; }, n
{$ F+ y* O6 a& A4 e3 j
switch(di)
* v& I" P5 \# P! I{
: t: G( u/ N/ Z! j+ m) n& _0 tcase 1: seat.y++; return seat; /* Eastward */
1 S2 }% M' x0 F( hcase 2: seat.x++; return seat; /* Southward */9 x( a/ U4 B' w3 o# @, ^) _" U
case 3: seat.y--; return seat; /* Westward */6 b: [% g# _1 y3 ?" S* J/ E: R
case 4: seat.x--; return seat; /* Northward */3 ?8 |# \9 `2 N y% A2 @; g2 B
default: seat.x=0; seat.y=0; return seat;
( B6 q6 Z* D8 Q4 A$ ]/ e9 l}" k) N. [/ A" n8 z* W ~
} /* NextPos */
5 C, Y5 G9 P$ R0 G0 k, O& Y! D
0 ]2 _% A; V+ P$ i) e! z& B/* The key to the program. */3 y0 W4 h M) G6 W- @ q
/* Pre: The maze array & the startplace & the endplace., F- [' m; h4 M+ D8 z! Y# q
Post: Find the one traverse of the maze and perform the mazepath.$ N% c; {" {7 `& R3 d
Uses: The ADT stack class.
* W1 }6 c' s6 G# w/ g5 j) h*/ I7 U; n6 {2 W2 t. F
Status MazePath(PosType start,PosType end)
6 {- T) K/ H$ K{
- z' K6 X3 X' Q! l6 R6 b4 oPosType curpos;
' b/ q- L! S5 `6 g! Eint curstep;4 A- V5 M, T( S$ G! B& \1 V/ B3 @. ]
SElemType e;2 R* c; ?( Y! V0 M( g( i- T
Stack *s,stack;" t& B N4 E, G: B
stack.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));+ B+ d$ B) R" S L' R# l" u" `
if(!stack.base) Error("Overflow"); i. ^: {' v5 k0 [( X
stack.top=stack.base;
% f9 y3 M. Y: L7 s" K2 qstack.stacksize=STACK_INIT_SIZE;
/ ^6 |( j# P# Z6 b. e2 R3 L, cs=&stack;
; y5 @. k" T# R3 Acurpos=start;
) Y5 o- ?$ t4 m: p( s9 Icurstep=1;
& R5 a# g+ K: {! g8 \" G' X7 ]do
) {# d) s( Y0 F' J{
1 a1 i( v2 H4 K, v/ K+ gif(Pass(curpos))& k; b Q6 X, y
{8 G' k& Q+ J/ f* f+ T
FootPrint(curpos);
# {" H9 K" f, Ee.ord=curstep; e.seat=curpos; e.di=1;! a* @1 P! W0 {; Y- Q
gotoxy((curpos.y+1)*2,curpos.x+2);5 x# u( V6 t& S4 q
putch(''''''''''''''''''''''''''''''''@'''''''''''''''''''''''''''''''');, j: z& g5 U. f8 Z& F
delay(8000); /* pospone time. */* o9 r' A$ s" I! H! `" |+ U( ~$ y
Push(s,e);
( Z0 U9 r1 @% g5 x. u* X+ ~if(curpos.x==end.x&&curpos.y==end.y) /* Proceed recursively. */
9 Q; ~( X* ~$ [' B' t, h9 o! Z{
7 ? X' {! a) C5 p0 ?# P% [DestroyStack(s);( n6 Z. [' _- Q6 d! C
return TRUE;
7 L4 f2 w8 F1 p/ _4 U9 M+ h& a}
$ @+ w6 h' t8 |curpos=NextPos(curpos,1); /* Try next position. */+ [/ d! I- |# u6 ?8 y
curstep++;( a1 w0 S' j, e6 |2 N* P* m* W. d7 Z
} |8 C2 _+ H/ k( h6 {* \
else, A# ? A' E- j0 V( U L
{* H, Q* o6 K0 A' A( Q) X) X# U
if(!StackEmpty(s))
! F% i" Y5 P1 e9 B( a, f# ]{
$ u Z. ~' c, a/ z, }' d$ J! C) Be=Pop(s,e); /* Removed e from s. */) h/ c3 X8 ?, p9 t6 E) X
while(e.di==4&&!StackEmpty(s)) /* Four directions have been checked4 `/ g7 C8 n( y8 v; y' w+ N& V
and s is not empty. */
2 @# T" C+ p0 _) l5 D- v{
4 r% g& C# R0 y) B9 U5 {2 ^! Y7 UMarkPrint(e.seat);8 u# a( L6 B- d/ m* \, e% e
gotoxy((e.seat.y+1)*2,e.seat.x+2);: L" ~" q, M2 `. @( f' ]$ y; a8 B) D
putch(''''''''''''''''''''''''''''''''@'''''''''''''''''''''''''''''''');' l, G) L: O$ ^& \' t; m
delay(8000); /* Pospone time. */& F4 Q5 o e7 E6 S3 ]7 O! U
gotoxy((e.seat.y+1)*2,e.seat.x+2);
8 v. J. B4 ^: a+ lputch('''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''');0 o# s' a% y5 w" N6 F- x
e=Pop(s,e); /* Remove e from s. */
5 Y3 n* a1 Q, Y: N( l0 Pcurstep--;
, `) ~* K a7 i; I" I2 H}9 E H$ `7 f7 {, K' ?& n0 D
if(e.di<4) /* The current position hasnot been checked. */
3 m, }" k- N, ]( K; t3 K, P{9 r ]7 u O r6 F
e.di++;
' ]3 ?+ p/ ^; c/ A5 TPush(s,e); /* Insert e into s. */5 E% r+ o0 c2 G6 Y
curpos=NextPos(e.seat,e.di); /* Try next position. */" m+ r: A5 ^, F8 Q3 L; V
}
5 W9 n6 A' q' X3 Z( Q8 o" r}1 {# y ]9 E0 |6 d, Y$ m. \
}7 D1 d7 u+ k! _6 u3 E, M5 ^0 R! ?
}) n5 R0 p/ x0 o0 a U5 B# o
while(!StackEmpty(s));0 r- I; c8 Y. K/ C8 W! y
DestroyStack(s);5 ~1 R0 y! [0 |" s6 \. h$ X
return FALSE;' K. b& V/ U, k
} /* MazePath */
8 m+ d7 c: U1 S- E) _# Ivoid main()
0 o* f7 F( `& w8 p{2 F9 ?2 i8 o& M9 _! W: V* M6 p" J
PosType start,end;
! G0 T' q3 m( ^CreatMaze();
$ p0 E; U/ u+ ~% R% @, d2 d7 `start.x=StartPlace.y;
9 {8 v1 h( k5 r7 {; j9 o+ Sstart.y=StartPlace.x;3 o8 D1 @" ^7 V' Q' s2 t; \
end.x=EndPlace.y;
- l/ Q7 j+ K. N; o/ ]end.y=EndPlace.x;
+ @, \1 G/ U8 _6 N+ a2 R `if(MazePath(start,end))
" a* p; S: X& X9 A6 G! A{
9 H# ]9 c6 l. D0 D, v, r7 v cgotoxy(2,22);
. G- d" Q9 L2 f; d4 `: r( jprintf("
ath found\n");$ E8 r/ z, p/ g' e6 p
}" F. k3 C3 i: e8 {4 L
else
7 ^0 O6 I+ D) h5 ^ M& O i" V{
: |* E$ f1 m' d, R) |8 Lgotoxy(2,22);
/ v6 y6 c4 D8 p: {2 a& H1 Xprintf("
ath not found\n");
; R% k) k- K5 t }- c4 @3 k6 Z} f( L& J0 S! J7 X
getch();' h4 d& c0 [ M, X- |1 G% D
clrscr();5 i+ B" U: r2 @5 u- n! t) b& Q
} </P></DIV>
作者: 韩冰 时间: 2004-10-4 02:36
<
><b><FONT color=#000000>.:.:上海黑暗之龙--麻将原代码:.:.</FONT></b></P><DIV 626px; HEIGHT: 132px" align=left><
align=left>部分图片未上传
/ e# S+ _; Y: N0 }6 O/*天宇软件
7 d x. Z9 t& [% ^9 ]; U: B作者:上海黑暗之龙
' `! u/ ]: k! W& Z- u2002/10/30
7 z. N$ j$ h6 s8 k4 Z麻将原代码*/
& t4 e' w1 v1 D8 d#include "dos.h"
- C4 ` R: r* q5 d& J, E#include "stdio.h"
# o0 g5 O0 q9 h: x#include "graphics.h"" ~& d( \0 H5 ?2 @3 s
#include "bios.h"$ h1 i( P& M* q# w
#include "conio.h"
3 a+ }. x( r! P" m. d, J#include "stdlib.h", A5 ?1 N/ p/ _+ M) p: P* G
unsigned char far *video_buffer=(char far *)0xA0000000L;8 ~: W# b* `+ g
#define VGA256 0x13 /*图形模式13h*/
# Z* I) N ]! _$ p" _7 c#define TEXT_MODE 0x03 /*普通文本模式*/
, p/ b! l: | R4 J#define SETVGA Set_Video_Mode(VGA256)
$ z2 C2 D7 ]7 {0 n$ H1 O8 l7 H k#define OUTVGA Set_Video_Mode(TEXT_MODE)
2 P6 R& k. d0 ]* t0 v#define BYTE unsigned char
% [/ f/ Z" [* e& Z6 ?' h' j! K) V#define WORD unsigned int
- `9 ]* h( S& p9 k3 C! k#define DWORD unsigned int, `$ c% P5 r6 D( Y) a% X
#define ESC 283 J- A3 m- m, F' X. k
#define LEFT 19200
& y, x2 m- C: |& s5 p# `#define RIGHT 19712
& H* Z- n: |9 j6 o! S#define H 9064
2 [$ }* E( `. W#define ENTER 7181, Q( t# t. h' ]: d8 c) B" y3 Z4 x& {# c
unsigned long int z=54400,zz=0,zy=0,zyy=0,z1=0,zl=10140;
7 A0 E& k. V/ Q) y8 K/ ~6 k* m, ~int key=0,keyy=0,sing=0,sing1=0,second=0,threes=0;- M% _8 f. {6 V6 U
struct chi# n W1 r# x2 z& i7 H: t# P
{! }- g$ Q7 i6 _6 Z/ `: j
int lg;
" [3 }! g& y) b7 ^; E2 i% hint lgg;) J# V" e: J$ F
}ch[13];+ Y: K# c4 P$ K6 N D7 u$ B! @: T
struct mj
( L- P$ u A( \" L) N" G{ char *name; /*名字*/1 r2 {/ @7 Z/ {0 O9 M
int data1; /*是否已出,无用了*/- t, P* n6 Z4 {- U/ F' p4 j& i) x
int data2; /*是否在手中,1为自己,2为对方*/0 |5 c0 q, i( F* U# |
int number; /*同一个花色的第几张,共4张*/
( a1 f$ ~- ~, Q& v1 D9 z1 `}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,* @$ y0 ]( t) H/ a* F. y
"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,3 c% h; f ~* J3 p) k
"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,* N5 l3 E/ b6 R5 T1 j$ x" T
"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,
5 C& T6 a3 u% B"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,
8 f3 \$ h5 ~8 C( l3 @"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,
+ v" M$ t: l2 a0 ^, G"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,3 _" }9 |; c6 p" U
"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,) }! @7 T! v, ]7 V5 k; L8 u( B
"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,
0 I4 ]$ g0 |2 {4 H ]0 _2 ?"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,
& H0 c& j6 Z$ w$ q/ B# h"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 {1 a) w, m1 f1 {# X* N6 f/ [5 k"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,' ^/ S" l- [8 @ s& ~- z
"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,% }8 T" h: ^2 q8 J: y( P+ S
"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 r/ v7 O+ L d" M/ @( [
"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,, U2 y$ `9 V* r, i* E# m
"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,% G$ r& E% ^0 ? U
"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,
/ c9 ^7 J: l" Q; f0 M& ?9 O"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,
2 Z% }( b6 f6 v; L/ b"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,
) s( Q# j* Z- [8 U" P! g8 K# ^"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,9 w2 t8 r2 V- Q$ ], L0 P+ O- A
"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,2 b/ O/ B* e0 J) h. Y2 R8 g' v
"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,. d5 `# L) j9 G0 k, Q
"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,8 M! e5 Z/ v7 n7 O, 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,3 q2 C ` ]$ q; H0 d+ M
"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,0 S' Z# d% h. z z. ~: K
"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,' O k( z0 |" w' _: g0 M% a% M
"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,7 P3 N9 u$ L4 `, ^) c9 l
"34.bmp"};
( [; z& s0 b: astruct every! b0 A9 [" a! ^. O A4 [
{ int *k; /*名字*/
: D8 `* t U, S, E; Dint oneorfour; /*同一张牌的第几张*/$ O6 a( \! T2 k, P
int number; /*第几张牌136*/9 k6 e, c; p0 N# X: D
int p;1 q) a. }1 L: _
int g;
( U: \- a9 i8 p8 t" D5 \4 Vint c;- ~: a: K W; i$ s! D1 w$ g
int d[2];, |' w7 @% H/ S1 R/ W3 n
};
. ^; c: C- X$ j5 rstruct me
7 d7 W- ]( F6 g* X3 y. {! ~{ int m; /*定义有几张牌,开始有13张随着游戏的进行,会越来越小*/7 y0 Z: e, M3 o/ V/ T
int p; /*乓对方*/$ X7 t$ r7 @: I% H' m% f
int c; /*吃对方*/( e5 Y% f: [& o3 R* W
int g; /*杠*/
3 m- S/ q6 G$ C ]5 Z8 _4 E2 V2 e( X% q, T' C
struct every pp[14]; /*存放手上的牌*/2 C+ k5 l% m! ]+ y4 M% M- R
}me;
j0 Y m3 A' i+ B: Q9 Estruct computer
) q; l$ G0 Z& b5 R N, b9 l- ?7 s{ int m;
& U7 R2 a0 N, ^% x7 sint p;
) Z$ w4 e6 w: r/ K6 xint c;
4 s1 D# G! A0 A9 M2 C5 C# hint g;
1 M' Q: {9 G |# R- s% M9 K2 Sstruct every pp[14];% P5 z0 r1 J* p# ?* R
}computer,comp;
3 X; V2 ?; z, X( t' x9 w; B3 _. L* y; a
/* 设置调色板 */
7 d$ o# Q% _4 [- g% L. @ hvoid Set_Palette(int Color,BYTE r,BYTE g,BYTE b): g% J( @" Q5 C: G2 h! \' r6 J
{
/ q' ]9 L9 T8 j5 w ^' youtportb(0x3c8,Color); /*0x3c8写端口 写色号*/
9 P4 u6 \& }- _. qoutportb(0x3c9,r); /*0x3c9数据端口 R、G、B的比例*/" O# h, a) c; O
outportb(0x3c9,g);( p# D; Q) i2 w6 |5 z3 B
outportb(0x3c9,b);
: L: Y( B! u+ U% f m}
' n3 F- d0 q. @/*0x3c7读端口 0x3c6计算机调色板寄存器调用端口*/
8 m% t; s% q3 C! m% V2 p/* 设置显示模式的函数 */
1 i3 I' h1 ~0 I1 G1 Avoid Set_Video_Mode(int mode)6 @% \7 h+ C0 [) ~/ n2 o
{! F7 W( |+ e t5 q$ v1 o1 z6 @8 T
union REGS inregs,outregs; /*定义输入和返回寄存器*/
( w6 Q1 o- Q9 _5 kinregs.h.ah=0; /*ah存放功能号0h表示进入视频模式*/1 O- x, Y3 W4 j% y5 t9 d
inregs.h.al=(unsigned char)mode; /*al存放要设定的视频模式*/% Y, _5 A# v9 o: v. ?( ^7 J) X! t
int86(0x10,&inregs,&outregs); /*通过10h中断设定显示模式int86()包含在dos.h*/. E5 _7 [$ E5 ~6 j; k# k: @* l
}! R3 l! y/ e7 v0 J& Q; J
void v_line(int y0,int y1,int x,unsigned int color)! j0 k( ^0 z* r/ y. ]! |
{ unsigned int address,n,temp;0 n# Y. s5 K# ^- O9 a6 |
if(y0>y1)( u5 t8 |/ Z) r' ]/ E" q% N
{" J; Y* H; u9 `5 |1 q
temp=y1;
% K5 }& w8 _; Ty1=y0;
% l3 _4 W M. P' cy0=temp;; e: y! Q5 v. o# F( M% K
}- G/ j* [% O. l! {) T( @3 V
address=320*y0+x;
9 G7 H( ^* c; E# [6 `. rfor(n=0;n<=y1-y0;n++)
6 d: M7 i `! S2 S2 M- i; k/ y{
, O3 r! x6 u) X6 Z: f3 G7 Gvideo_buffer[address]=color;
& S' `% q" W. c# p3 V4 Faddress+=320;
5 h5 [/ M7 [: k' ~( a7 X3 j}
0 h8 }& I7 V: B' k}
! f: `; q3 Q" U/ |void h_line(int x0,int x1,int y,unsigned int color)
, }( G5 B" \5 O6 v! S$ d{ unsigned int address,n,temp;
@, N: v8 k, u d9 }- lif(x0>x1)
7 ^$ x1 a1 D* ~- f' a{
0 ^4 ?6 R2 X7 z- n( T. Jtemp=x1;
) `& U8 o. \( P( ]0 xx1=x0;
1 I; `: e. Y4 X0 r' Kx0=temp;
3 U2 c. _8 E& G8 \ F}8 a: w* w" w5 c; p. N' M
address=320*y+x0;; U' {. o% Q2 u
for(n=0;n<=x1-x0;n++)0 o L# J. A$ N5 Z8 K
{
# q M% p: m8 E7 B( W1 ]video_buffer[address]=color; p0 x& E4 ]9 o# O; M4 o+ V! a
address+=1;% K. a# t4 C$ j) N, t6 }( ~
}
8 Y9 e4 G K( P( U}
3 w! B& B: M6 l4 d( S0 Bvoid p_pixel(int x,int y,unsigned int color)$ H. A5 w/ U6 u" _
{ video_buffer[y*320+x]=color;
( ^ L/ T' N/ A6 w- p) U}
1 f0 Z6 B# k, Y" Qvoid s_square(int x,int y,int side,int color). @* ~7 [3 u+ M. e: H
{
- M- X9 J% J* h! o- z6 n# zh_line(x,x+side,y,color);
0 k0 Z& A" t% O2 w& w2 b* H' xh_line(x,x+side,y+side,color);
6 j1 v+ z7 t6 A/ _6 a5 B- ~v_line(y,y+side,x,color);8 Y* D4 Y, h& E9 v- }7 a1 t# h9 Y
v_line(y,y+side,x+side,color);9 B- \) V4 P6 \- m4 t' b
}( l. u8 D) [* T" D0 N
void r_rectangle(int x1,int y1,int x2,int y2,int color)
( K% W- f2 n6 M+ R{
+ B1 {* v! l9 k: _! @2 H$ N% O, uh_line(x1,x2,y1,color);+ y3 v* h- l' r; ~, A
h_line(x1,x2,y2,color);0 w- R! D0 ?+ r& W% T* R3 o
v_line(y1,y2,x1,color);- `! b0 W; @3 _
v_line(y1,y2,x2,color);# E c1 [& V! h
}, Y5 I# h x/ y' z$ R' i* i. A
void fillRectangle(int x1,int y1,int x2,int y2,int color). B/ g$ s0 ~" W
{
3 t. r+ z8 `$ E* {3 {! [" pint i;$ C. k7 W3 A. w7 b
for(i=y1;i<=y2;i++)
( g: z2 u8 z) R{
: l2 C, F6 \8 M$ Zh_line(x1,x2,i,color);: O( d+ S$ a( @9 b5 Z( X1 C8 Q
}9 K0 B3 b' L7 @" V! h/ K- z2 V
} T4 {( d! S% B2 M9 ?2 s: E
void showbmp(int l). b9 j) S% w( @( l$ d) @
{ FILE *bmp;9 d# m+ t Z; K: D3 j4 A6 L" _
int i,x,y;9 E) q0 V& s# ]5 p
BYTE palette[256][3];& e2 e; @( N" f; {
bmp=fopen(me.pp[l].k,"rb");5 ~# Y C* K1 q4 ?# K4 F
fseek(bmp,54,SEEK_SET);
! Z* R2 _( X& ` S# k6 X& hfor(i=0;i<256;i++)% Q4 j: k- F/ a5 G9 I0 C! ?' c F
{
9 j1 W9 F" ?" |* Y }palette[2]=fgetc(bmp)>>2;( W0 e0 g5 P2 j' F; A
palette[1]=fgetc(bmp)>>2;+ l* }( @* `$ l; |: ^; s F# I5 \" b
palette[0]=fgetc(bmp)>>2;
! Z5 H7 ?0 M) Xfgetc(bmp);
, d" l9 f* X' S7 Q4 F) HSet_Palette(i,palette[0],palette[1],palette[2]);* K( L. d! R% z+ |# T) f; n! f8 g- L
}
. Y) _7 s# `. t" S3 J4 m6 }for (y=0;y<30;y++)7 S/ h* G1 g2 V3 @) h3 y2 }
for(x=0;x<20;x++)% |1 p+ A( v" I1 ]
pokeb(0xa000,y*320+x+z+zz+z1,fgetc(bmp));
- D% {$ ]+ q/ D* Dfclose(bmp);" {$ \' l2 P* |7 o4 ?( i; W2 Y/ W1 }
}
# @! I* w0 L6 h. n/ v% Ivoid showbmpd(int l)
' x* L2 c. x5 ^8 R{ FILE *bmp;
5 S/ u& {9 N6 t+ Q% P' ^# s- kint i,x,y;
( @1 x/ W- a. K1 g8 A. I- W, hBYTE palette[256][3];+ c. i3 `5 ^5 E8 I7 g" i
bmp=fopen(me.pp[l].k,"rb");6 W) D7 A% l) k8 [4 H* W. S
fseek(bmp,54,SEEK_SET);" C3 P; S% L5 A1 L) Y' b# P
for(i=0;i<256;i++)2 D" B! b. c$ p5 T$ g$ T, x
{
7 d `* L3 \3 g( A" `, xpalette[2]=fgetc(bmp)>>2;) H1 J3 E1 B0 l) v2 y/ s- y" d* h% _
palette[1]=fgetc(bmp)>>2;
7 z" O" `# W2 E& n9 Kpalette[0]=fgetc(bmp)>>2;2 d5 O0 V* z2 a* o
fgetc(bmp);" T$ X, Q( h( P6 @3 @/ d* L$ W8 }
Set_Palette(i,palette[0],palette[1],palette[2]);
& ]( {+ M4 U# Y$ M( C& _5 \1 u2 |* _}7 ^/ O0 Q$ d' ]2 q+ b- W: p6 d
for (y=0;y<30;y++)
- _6 `; l4 t$ z5 }5 e' Q/ Afor(x=0;x<20;x++)
y5 r; W( f4 u( f- Y/ U( S. Spokeb(0xa000,y*320+x+zyy,fgetc(bmp));* u% Q5 s/ L1 h4 C* p. ]* v8 M2 s
fclose(bmp);% i- p3 ~' \( |' V/ A5 v% Q9 ]
}
3 G+ j. h" u4 F3 T1 `% L+ E) {( B6 bvoid showybmp(int ll)7 z, i6 F8 x( _
{ FILE *bmp;
. {9 w1 J' v( Z4 Tint i,x,y;. @* D V0 j! d
BYTE palette[256][3];7 V& T6 L4 D* \# [; ]2 u3 _3 ]$ B
bmp=fopen(computer.pp[ll].k,"rb");
. } i( s5 v/ x* c! ffseek(bmp,54,SEEK_SET);- L, }1 `2 x9 F3 _5 B
for(i=0;i<256;i++), E9 g( Q& p# s0 c" @
{! M; O4 o9 x. o! y& w+ u* Q$ L
palette[2]=fgetc(bmp)>>2;
G& J$ m2 k+ hpalette[1]=fgetc(bmp)>>2;6 {3 {7 w# p( G4 n
palette[0]=fgetc(bmp)>>2;
E( @! K( L3 \& ufgetc(bmp);
' r; n9 K2 g) R3 V) S7 X8 E8 TSet_Palette(i,palette[0],palette[1],palette[2]);
; M9 h, j& v" i- A& j}1 J* w# t# B+ T
for (y=0;y<30;y++)" |" T, D7 B: `2 {5 W8 Y
for(x=0;x<20;x++)/ W8 ]9 Z; u' b1 K6 n
pokeb(0xa000,y*320+x+zy,fgetc(bmp));% m. B: \ R" V" n% ~& ~
fclose(bmp);0 T: N. M5 e! k8 [
}& I* r+ l- i2 R2 g( T+ b' R" b3 d
void showcbmp(int ll)$ Z5 x. K/ n5 J% M5 W
{ FILE *bmp;- I# f# L& b4 g. I9 B! @1 C) K
int i,x,y;
( H" T5 y! m/ `7 L. ^6 u' zBYTE palette[256][3];
$ {! i7 a! ~/ Q" t% dbmp=fopen(computer.pp[ll].k,"rb");& R1 [5 v: c0 U
fseek(bmp,54,SEEK_SET);" h7 |/ B" O& D6 ~$ Y) R v, x' M
for(i=0;i<256;i++)
. v- ^" e Q% i) a4 @{
* _- k8 z/ q, i$ I; \; Hpalette[2]=fgetc(bmp)>>2; g! M5 o1 |5 F5 Z5 r9 [
palette[1]=fgetc(bmp)>>2;& Y) L- t2 d* O2 t
palette[0]=fgetc(bmp)>>2;+ f8 C2 V0 B2 R0 D1 C3 W
fgetc(bmp);
3 r0 w+ _/ L/ a: t3 Z5 R ySet_Palette(i,palette[0],palette[1],palette[2]);
! v0 k; {' e% d- `5 q7 B}( [$ o; m- x0 d! r. K) P
for (y=0;y<30;y++) b( T' @' h( X' u
for(x=0;x<20;x++)# C# o4 \1 T; w' M6 G
pokeb(0xa000,y*320+x+zyy,fgetc(bmp));
6 P9 y" U7 O) l5 {) Y0 F6 ~fclose(bmp);; V F! y8 m9 |2 T
}; l" n. w# H# I' }) F9 U
void bmpp(int number)
' R. g" A0 m8 h{ FILE *bmp;
" u) \+ C: Z( [5 m1 Kint i,x,y;0 v* M2 S2 W1 o* h- f
BYTE palette[256][3];
4 p" k4 k/ y: i$ @0 n+ F1 N# qbmp=fopen(m[number].name,"rb");5 B2 K+ w( t& n% K' T5 P! m
fseek(bmp,54,SEEK_SET);9 ?" F0 i( m+ r4 O+ Q* @ ?
for(i=0;i<256;i++)5 b2 i* a1 |5 t# K8 m0 T6 L
{
( j$ Z9 e/ W0 S* T2 | z! I& Lpalette[2]=fgetc(bmp)>>2;1 M3 u' ~& P+ a/ I
palette[1]=fgetc(bmp)>>2;1 T% `7 Q; K, m# u8 t3 r( o
palette[0]=fgetc(bmp)>>2;
6 z4 G: d0 P5 e# u p) {fgetc(bmp);
7 H' A f* d; j% n8 ^5 aSet_Palette(i,palette[0],palette[1],palette[2]);
/ b7 q. [& h4 I# W4 u6 i4 f}
- A; {/ _' E7 G3 S+ Kfor (y=0;y<30;y++)- ]& t* Q0 X" P1 |' o' U
for(x=0;x<20;x++)
/ Y. c5 r; v! R* x5 y* ppokeb(0xa000,y*320+x+zl,fgetc(bmp));$ n; b7 y; I+ q& s
fclose(bmp);
7 F7 b: f+ W4 H& Z! v/ M2 t9 ]}5 x8 b* K" e" b, v
void comlipai() /*整理电脑的牌*/
' ?( T& g8 f4 j1 Y{ int n,j,u;9 e9 M# r/ Z: v! r) k# [1 @& R
int *lingshi;
$ g% r% y7 Z$ I8 U+ V/ B( Yfor(n=0;n<computer.m;n++)( R1 K% C* f* A
for(j=n;j<computer.m;j++)9 f- X; i" P$ @6 N. d
{, A0 d; |, ?- T# E0 c
if(computer.pp[n].number>computer.pp[j+1].number)
) v3 m" n) H" h# ~4 q4 A# U* t+ \{- ~3 L+ h. {5 V- L( E! h) G8 s
lingshi=computer.pp[n].k;& t4 r3 x5 R1 K+ o3 t: D6 w$ i
computer.pp[n].k=computer.pp[j+1].k;
/ {/ B: `, S, J0 S8 F9 ~computer.pp[j+1].k=lingshi;% P* j4 r3 \4 F( O( R9 O
u=computer.pp[n].oneorfour;/ F: W/ u/ I1 V! W, A5 t- D
computer.pp[n].oneorfour=computer.pp[j+1].oneorfour;$ J$ N) s/ O1 [- Y+ W
computer.pp[j+1].oneorfour=u;2 u7 o q- Q; U( ^
u=computer.pp[n].number;3 @- h* Z4 y" ?
computer.pp[n].number=computer.pp[j+1].number;
& _3 D' p3 @- _/ ^computer.pp[j+1].number=u;
% E x& p G/ l}
4 [+ O5 U4 Y: k$ ]else$ w- Z w7 k* K( k# B' }/ `
if(computer.pp[n].number==computer.pp[j+1].number)
/ _" X/ p" I6 s% j2 |" \' A' F8 q! t( ~if(computer.pp[n].oneorfour>computer.pp[j+1].oneorfour)$ G# A; r1 V2 r
{
B0 V) y2 C0 o1 X- Clingshi=computer.pp[n].k;
' _2 y6 A* z* v0 d3 Q& q6 s: `computer.pp[n].k=computer.pp[j+1].k;( N: D8 I; E! z9 O
computer.pp[j+1].k=lingshi;
! K" h( g' a6 ou=computer.pp[n].oneorfour;
/ B& N# j9 r( x3 Xcomputer.pp[n].oneorfour=computer.pp[j+1].oneorfour;
0 t, Q, a2 L+ v; @ r$ f& A1 N$ icomputer.pp[j+1].oneorfour=u;( Y% a2 s, H" l, h3 Z* j2 \
u=computer.pp[n].number;
% w. H/ d7 P1 W1 l% ~6 W' Ucomputer.pp[n].number=computer.pp[j+1].number;8 N ]$ H, E& m9 a9 w
computer.pp[j+1].number=u;. [& J& V0 A J8 X! m6 \! C
}$ d4 I1 l/ v8 U3 t2 c$ f7 M
}7 ]; J& ^& J! u: g; c6 a9 r# [
}
( H7 z( E% Z' l1 R3 o* D0 [) yvoid melipai()
) J6 G/ K' D# h{ int n,j,u;
% `) m" k) K+ y7 N) u7 N: pint *lingshi;) r& h5 k0 D, u. Z* p
for(n=0;n<me.m;n++)
8 i/ }; o* v. T( |) m8 p2 @for(j=n;j<me.m;j++)6 R' _ i. W% ?) ?0 [
{
* f6 P U) r2 c) k5 Z' ^if(me.pp[n].number>me.pp[j+1].number)' x: j5 C3 K k& h+ i7 b& m# N W6 ~
{( J: h6 i$ {9 N( W: w. q$ ^) z" t
lingshi=me.pp[n].k;
: _9 r" d$ Y7 @" n5 Mme.pp[n].k=me.pp[j+1].k;1 F+ ^3 a z+ ?
me.pp[j+1].k=lingshi;+ t+ \. B( I& G* u4 ]" n2 L1 P
u=me.pp[n].oneorfour;
* B) M6 y- s% M1 xme.pp[n].oneorfour=me.pp[j+1].oneorfour;
; O. e( X) u" r& ]4 ?1 ^me.pp[j+1].oneorfour=u;! a. M. X9 ^- f
u=me.pp[n].number;( K4 L# Y& y J" c
me.pp[n].number=me.pp[j+1].number;
' |/ ~+ K7 m' @1 \3 l: Kme.pp[j+1].number=u;8 L1 w. N& w; J4 ?5 b V7 i
}
" J4 Y# {0 L, j) ~6 p% v' p5 W6 ielse
$ y0 _# N" l# |if(me.pp[n].number==me.pp[j+1].number)
7 H' Q7 d+ p1 J* p! z+ R0 ~if(me.pp[n].oneorfour>me.pp[j+1].oneorfour)
' A3 \ V5 R+ K3 C8 v2 }9 o{
7 c' e' j) o9 Rlingshi=me.pp[n].k;, w2 G4 Z2 \3 v! ]" C8 S8 O
me.pp[n].k=me.pp[j+1].k;/ g$ i: `- T. H* w
me.pp[j+1].k=lingshi;- t v1 u5 d# U( S* z3 K
u=me.pp[n].oneorfour;6 r3 [ d* ^9 a* h: @: l6 q
me.pp[n].oneorfour=me.pp[j+1].oneorfour;
& L/ X, ^0 N' tme.pp[j+1].oneorfour=u;
. I% m8 e# {! w& K% O0 eu=me.pp[n].number;
9 D/ C% l' p/ o: _$ V7 u: p" Q' _me.pp[n].number=me.pp[j+1].number;
' m0 n& g# c) eme.pp[j+1].number=u;3 ~$ D' l# Y& P2 ?4 d0 z
}
2 V4 g/ t. A! k# Q}7 ~; E5 H2 Z- h. Y
}! `" F+ g N$ n
void rgzn(int c) /*本程序涵数的核心针对电脑的牌*/ `' u* ], A, q+ }% ?( A, n( b
{ int b=0,lg,lgg,logo,logoo,pg=0,gp=0,cs=0,f=0;' w' B+ S9 _5 |* _+ |6 `2 ~, D6 A
if(me.pp[c].number<=35 && me.pp[c].number>=0)
& U, W* r0 m: H+ J# d{- N0 y$ R( S/ a. p% a) p- a
logo=1;* H F3 R$ Z* A, P7 c) I5 M& Q$ L5 k
if(me.pp[c].number<=3 && me.pp[c].number>=0)
7 v8 ~. b7 T9 h) H' }5 o+ q/ Clogoo=1;# N' @- U7 I. K
else if(me.pp[c].number<=7 && me.pp[c].number>=4)
* V; I' e; c, f8 Alogoo=2;# h5 T4 P- j2 r4 ^4 ?
else if(me.pp[c].number<=11 && me.pp[c].number>=8)
, p" _7 E7 B$ c: P: H7 m: I( d0 [logoo=3;
7 m. _9 w1 Z' l6 x8 ~" Q! c/ d8 ?else if(me.pp[c].number<=15 && me.pp[c].number>=12)! M; r. i" Y/ x8 n ~# s
logoo=4;
( H; A5 ]6 d7 ielse if(me.pp[c].number<=19 && me.pp[c].number>=16)2 S, j; K0 l7 l) C3 I( t
logoo=5;7 g4 t: T4 e6 z. w( R
else if(me.pp[c].number<=23 && me.pp[c].number>=20)
4 [" Q: m/ f, _9 Klogoo=6;
8 _2 v5 \2 `+ }2 delse if(me.pp[c].number<=27 && me.pp[c].number>=24)1 x) a* X) P0 I
logoo=7;
' A8 y% J7 n6 ^& belse if(me.pp[c].number<=31 && me.pp[c].number>=28)
1 x- C& ]2 r' S5 J: X/ w6 }logoo=8;
8 S# K: c0 p7 L; j5 melse if(me.pp[c].number<=35 && me.pp[c].number>=32)
; U" Z; B d9 B9 a' \. tlogoo=9;, I9 Q2 ?6 G5 X9 s
}0 f7 B+ m& O8 o: f
else if(me.pp[c].number<=71 && me.pp[c].number>=36)
1 K, z) b4 u! y& Q! G{
$ f7 i% Y+ e: c( N" _8 Glogo=2;
( x' P/ z* }+ C5 u' c. L vif(me.pp[c].number<=39 && me.pp[c].number>=36)
' P3 Q* |3 W# T0 d; Ologoo=1;" ~5 ]8 j( _: |5 ?+ |
else if(me.pp[c].number<=43 && me.pp[c].number>=40)
4 N" Q3 \3 q% \3 G7 a$ ]logoo=2;( l$ W* G9 w1 e6 }9 I: k
else if(me.pp[c].number<=47 && me.pp[c].number>=44)7 o6 s5 V* w- o8 S
logoo=3;
! [& L, @4 F a$ ]* Y- E3 b0 Eelse if(me.pp[c].number<=51 && me.pp[c].number>=48)0 W( F8 F0 K6 Q3 B
logoo=4;
3 N4 [7 y9 G7 ]/ |$ a1 s! \! lelse if(me.pp[c].number<=55 && me.pp[c].number>=52)
3 A& [/ x9 n( z: nlogoo=5;3 [5 s5 K9 _0 a" t8 s3 d
else if(me.pp[c].number<=59 && me.pp[c].number>=56)
0 R* \" Y: J% m- `% _4 s, `+ Tlogoo=6;
( b# g. |# P4 zelse if(me.pp[c].number<=63 && me.pp[c].number>=60)
- q6 m8 d8 {; x6 R" ?( Zlogoo=7;5 q" g9 ?$ @" w5 n; R. e
else if(me.pp[c].number<=67 && me.pp[c].number>=64)$ t* u4 U3 Q6 ~* V [& k
logoo=8;
" F' X2 a0 \! D' ^9 Gelse if(me.pp[c].number<=71 && me.pp[c].number>=68)
0 m6 A1 q3 E! h4 Vlogoo=9;
: i( V! N% C+ w}% R3 I$ U; z9 r7 f% a# d
else if(me.pp[c].number<=107 && me.pp[c].number>=72) q9 j6 q2 K5 y z: g1 u
{9 T" h! E: k/ y" c6 N
logo=3;2 d V' \ c' |$ Q2 j
if(me.pp[c].number<=75 && me.pp[c].number>=72)
0 X0 l' B2 f* X- ~* { C3 L( klogoo=1;' ?. t( n# J, m7 k" x7 b
else if(me.pp[c].number<=79 && me.pp[c].number>=76): j3 e) k: ?: X
logoo=2;; r" X* O. ]0 `! X. ^7 |( }
else if(me.pp[c].number<=83 && me.pp[c].number>=80)0 ~; ^" }3 T, y$ ?, A1 G" e. y
logoo=3;
7 ~8 d& _% C8 U* w$ V4 Y) Zelse if(me.pp[c].number<=87 && me.pp[c].number>=84)
# o' g6 U8 R' m" v% G Elogoo=4;
* p% ]8 a, y& i1 }9 h2 selse if(me.pp[c].number<=91 && me.pp[c].number>=88). M. {# d6 m7 K8 r0 h5 J
logoo=5;$ L8 p% o8 q+ S* v8 g. ^
else if(me.pp[c].number<=95 && me.pp[c].number>=92)
6 ]0 [+ I5 l7 m. r. [/ E5 F! R5 ologoo=6;8 s5 P8 R( J4 g
else if(me.pp[c].number<=99 && me.pp[c].number>=96)
3 A) \& ]+ I* [1 I+ Q& L) L7 qlogoo=7;3 B9 R5 _6 d, p% }; Q* t- B2 b
else if(me.pp[c].number<=103 && me.pp[c].number>=100)6 Y- A% p) |8 ~0 G R/ t
logoo=8;: e3 h0 |- B, i: X q$ D$ K
else if(me.pp[c].number<=107 && me.pp[c].number>=104)$ L. @: F9 J" \8 V& C
logoo=9;
& ^6 m5 f& F: t/ `- m; O$ c9 W}
; e7 e4 y; o8 @& V; Yelse if(me.pp[c].number<=135 && me.pp[c].number>=108)) v; Y2 r; D/ ?3 m- v( W. [! K
{
9 Y7 _! }2 ^) v9 |logo=4;
1 d a' x3 S- v$ \0 rif(me.pp[c].number<=111 && me.pp[c].number>=108)2 g$ Q7 j5 c/ R" H9 W- }8 @
logoo=1;
' _& G& m" v4 W! nelse if(me.pp[c].number<=115 && me.pp[c].number>=112)
9 l7 l, i1 ] v& L+ dlogoo=2; [( _2 ~1 J$ g/ F& ]5 I
else if(me.pp[c].number<=119 && me.pp[c].number>=116)$ {' q" W6 u y% {
logoo=3;
Q1 V' s7 ]1 e% T; V! {! R7 W velse if(me.pp[c].number<=123 && me.pp[c].number>=120)
0 d& O- v6 Q% m) e7 o5 V# l5 flogoo=4;: R! C. a9 P \: o& m& c* N
else if(me.pp[c].number<=127 && me.pp[c].number>=124)
$ t5 N% Z% y G1 \- Ologoo=5;
2 u8 ]1 N7 B& S- w7 ^5 F9 ]) felse if(me.pp[c].number<=131 && me.pp[c].number>=128)
# F# H: G h, r$ O( m6 b% U* z& m7 V8 E! Glogoo=6;% n+ X- i5 e+ T
else if(me.pp[c].number<=135 && me.pp[c].number>=132)
( i* B6 `/ `$ C) plogoo=7;
: _ `# Q6 N# O" F}
4 e& `& Z8 x- E/ u/ [3 R$ D) }while(b<=computer.m)! J. n- u5 ]& n, Y& X
{0 c9 y( @) ]- k
if(computer.pp.number<=35 && computer.pp.number>=0) /*假定电脑经过分析后出了第一张牌*/7 H+ {5 o2 M Y) m' ?" Y
{
0 d$ x, b7 n* ]2 N8 t& Rlg=1;) Y, Z! E9 c) D. j$ K! i7 a
computer.pp.d[0]=1;
! `3 f+ j& \1 [( r1 O! M* {if(computer.pp.number<=3 && computer.pp.number>=0)1 ^! H1 V9 n( ~0 P& P
{
1 y. q, R+ @3 C% j! Blgg=1;9 ~3 R: ^4 C6 R% O* I
computer.pp.d[1]=1;
: P5 u* u1 ?3 }6 a}
# Q3 s2 u/ b D4 S" t' l; @, Selse if(computer.pp.number<=7 && computer.pp.number>=4)" n: f2 U$ z' u# g S, v
{" B1 Z4 c: G" l! c/ _, Z2 h
lgg=2;
# i% S- k% b7 ?. J% lcomputer.pp.d[1]=2;
7 o( B; f' h, o: X8 R" u8 _}
9 V* z. Q3 g6 r4 K9 `else if(computer.pp.number<=11 && computer.pp.number>=8)
7 x9 j! {+ N6 i6 N{" V, S6 T/ i# I0 @5 Q f
lgg=3;8 s* B+ ?0 m$ W# F2 ~9 c r
computer.pp.d[1]=3;4 a# y @3 k% \! \' q
}
: n, D+ r8 U2 H. T. P2 |: melse if(computer.pp.number<=15 && computer.pp.number>=12)
- j/ u- m' W4 ]! |1 `% P6 @{) W/ c* u5 Z( ?) h# f3 G
lgg=4;
( B" T t1 c7 k$ y. Z2 Rcomputer.pp.d[1]=4;. ~1 d: F- m6 y- B4 \
}
, j: H/ u( ?# q9 w( Xelse if(computer.pp.number<=19 && computer.pp.number>=16)
b, f) b) ^: Y6 i8 k* n' m{
3 B4 v4 X$ M0 W% p3 |1 vlgg=5;3 B( g8 T j/ @" }; J
computer.pp.d[1]=5;
7 D1 y6 T6 o) l1 u5 f}" j3 Q5 o4 m! F3 j) c5 U
else if(computer.pp.number<=23 && computer.pp.number>=20)
5 ~: Z/ Q' Y9 ^5 g{
- b+ i8 v- ?) c/ H" k- Flgg=6;
6 S; A+ L4 U3 \% Hcomputer.pp.d[1]=6;
! p& ~' v0 K8 w# \) b w}
" f- |! m+ e+ V: W0 P# ^ Q* |else if(computer.pp.number<=27 && computer.pp.number>=24)+ s3 f( o# u" z
{$ _* K4 R% Z0 w4 t. p! g* r
lgg=7;
+ _: l/ k* x4 |* J5 i. Ucomputer.pp.d[1]=7;
0 |' O) K2 f1 P1 @: }}
: P$ }' M, P! B/ Q& [3 telse if(computer.pp.number<=31 && computer.pp.number>=28)
" Q/ e5 F3 m, d' F" y2 [$ C/ N{: a- w7 q7 G1 ~( K3 S
lgg=8;
; V7 ?: Z( ]8 v3 G$ k( Mcomputer.pp.d[1]=8;2 j* h& a, P" p$ z! i
}
# d/ H3 E( N0 V8 a( K* G! ]else if(computer.pp.number<=35 && computer.pp.number>=32)
% N2 {4 x& A% {* |6 E{
2 }% _( w' S7 o, M0 l% } Zlgg=9;
) G0 A/ d6 ]* lcomputer.pp.d[1]=9;
8 G5 g; ]) w* Y5 L}$ r- ?' j- j1 z
}/ d! V! U: @4 w, u3 H
else if(computer.pp.number<=71 && computer.pp.number>=36)8 `% H* ~* Z U M( N- M
{& O: _9 q6 e0 _# E; {- h5 s3 }
lg=2;8 M( c# c. c4 o5 n9 o$ }
computer.pp.d[0]=2;; J; W B! h6 j
if(computer.pp.number<=39 && computer.pp.number>=36)
, V- u7 M7 R9 w4 x# B) M6 _, B6 }{
5 L! d R3 s; Q1 o/ [lgg=1;
, m( M' n, z/ b5 v/ v3 P1 ~& xcomputer.pp.d[1]=1;1 q1 @" P# J) B7 j! X- H1 k0 g' }
}" ~1 G& ]! M3 \( N$ G( B- F& t" I
else if(computer.pp.number<=43 && computer.pp.number>=40)
|/ ]1 j; o2 L9 |0 |{
6 E2 G, T) r' V5 V& ~lgg=2;+ a \' Z" `% x4 S5 o7 l2 e
computer.pp.d[1]=2;
2 n; G v* D0 T0 B6 P* ~}3 L6 [3 v! X& |! u9 I0 i
else if(computer.pp.number<=47 && computer.pp.number>=44)% e" _- ^+ u2 M, a* F; n; d
{6 H. u9 E' l* \3 l/ L- ]- w0 q
lgg=3;
) I: q4 D1 E+ t! ~computer.pp.d[1]=3;
) c+ k& b0 N) W, i}3 S% j6 Y$ g0 w A1 X D( b+ t, V" _( X
else if(computer.pp.number<=51 && computer.pp.number>=48)
/ d. Y; A7 v: R% S5 X2 R* Q, d1 \{
" `$ G8 j$ e4 Y3 I4 G. Rlgg=4;* ^: H4 d( \# ? J) Z; a2 `4 t
computer.pp.d[1]=4;
' q/ V1 }, W2 Q) P% J( a) r}
2 S- R( a6 j- H2 v" ?6 [else if(computer.pp.number<=55 && computer.pp.number>=52)( c9 j1 C" @9 o/ u
{
; A) r/ U1 V6 ^ l/ blgg=5;8 c7 m0 P, X/ E7 ^, `3 ]/ K8 E0 ^
computer.pp.d[1]=5;
2 O) ?, [7 \: ?* p; O% F: z}
8 H: b& K: z) b% K1 x' ?( F) relse if(computer.pp.number<=59 && computer.pp.number>=56)
+ I! R( f, @) j1 k( U2 M% q{" g/ B' \. Y& e& d
lgg=6;
- W- q& Z8 l. E4 scomputer.pp.d[1]=6;0 h O/ @0 O" X, J, C- ^
}, b' g) m" @% [4 ]! ]
else if(computer.pp.number<=63 && computer.pp.number>=60)
; ?0 ~6 V; K7 k2 u6 V7 [{
: F7 z* X, e5 @ ? q) `& K, Llgg=7;
( Z( W: f9 Q$ u& J+ x# l% ^computer.pp.d[1]=7;, b9 f( ]* \( w- ~( [+ f% }
}
% z. _% E$ }7 d% telse if(computer.pp.number<=67 && computer.pp.number>=64)
* [' I5 J9 Z8 ?{
5 A6 i8 K& T8 \6 v$ f; Elgg=8;9 Q: @4 O# k; B; i. A- _
computer.pp.d[1]=8;# J# J( x+ p7 x0 A8 n
}
l# W) M, j* C/ Lelse if(computer.pp.number<=71 && computer.pp.number>=68)
; d8 a) n: x8 [1 X! ~0 v8 f{
2 P" W, V) N' g& t& M- c% ~3 v* Zlgg=9;
: i& U! W; H4 l- y- m8 Ucomputer.pp.d[1]=9;
: Q. A$ N( m: j+ b6 H% w1 k& P1 ~}
0 Z- p \( w" |$ O}6 v9 K8 e, a% s* B, N
else if(computer.pp.number<=107 && computer.pp.number>=72)' y1 x4 k0 h' n3 p0 l! q
{
2 X. T! S% e; klg=3;
5 e4 n4 ?5 |- e, b. u, Xcomputer.pp.d[0]=3;0 ~9 R* V2 @2 j3 Z K
if(computer.pp.number<=75 && computer.pp.number>=72)
& ]2 w7 X; u3 I- W{
, I1 c; P$ f' w$ e, ^$ p. c, ~lgg=1;
5 d: Z# T0 Z X' Y0 ^- y8 i/ Ecomputer.pp.d[1]=1;0 g, E1 [5 [. z. X- p" `
}; l, S4 g* C U6 P* y9 p( e
else if(computer.pp.number<=79 && computer.pp.number>=76)0 Q% A0 V% k1 S
{
o1 H+ D+ y& _5 a% N4 t$ [lgg=2;2 `* s0 O' O& S
computer.pp.d[1]=2;
) ~5 ^, W Z b8 O) ]. y. N P}- n6 f M( G. ]) H7 Q7 W4 U
else if(computer.pp.number<=83 && computer.pp.number>=80)$ H9 W, r# G, S! e- d7 i) o7 J
{
7 e ?) N1 T/ T3 Zlgg=3;
$ J. i" Q! i3 |. L6 c% f2 |computer.pp.d[1]=3;
& o% a1 G/ T0 E$ A& g}8 Z) i/ k. e6 s) \4 @; T
else if(computer.pp.number<=87 && computer.pp.number>=84)4 n* G$ V8 N( I- D8 O+ \$ k; `
{
6 c. S- S+ {: q- }% }! g [9 [- Flgg=4;
6 p5 k. ]0 S/ i1 ?# T: Z' h8 ncomputer.pp.d[1]=4;
2 I$ \- @: H5 B' U& U# K$ F7 j5 @8 j8 a}
! g2 I( Y: `- W5 t6 Gelse if(computer.pp.number<=91 && computer.pp.number>=88)9 X! D- T# V1 V1 a# Y6 d
{, o5 F+ w a! g2 V/ A
lgg=5;* O4 X' Z$ N5 f3 K2 b
computer.pp.d[1]=5;
' c A. [$ z+ a6 f) V}
! N2 s# |; m g7 }: Q5 l [else if(computer.pp.number<=95 && computer.pp.number>=92)7 `2 K# p2 ?2 r9 n
{
: ?/ U. O# G6 [9 Algg=6;6 f5 T, S6 j7 Q7 O1 A1 _# J
computer.pp.d[1]=6;
' L- K5 Y2 M# ~7 }5 G2 R}
6 J. q8 F0 `: Y, Oelse if(computer.pp.number<=99 && computer.pp.number>=96)+ p2 T; F3 y5 z! w1 t
{
$ I6 a2 K2 ]9 t. klgg=7;" h# _) W$ `3 R- t
computer.pp.d[1]=7;" I' J& A: G B1 P5 [5 J- `
}
- o5 a8 b, o8 j( F* r* ^/ celse if(computer.pp.number<=103 && computer.pp.number>=100)
% G, m2 V. _' L2 D5 o+ q; c{
( _7 c! ]; y# Vlgg=8;
% @/ h w/ X! R1 ccomputer.pp.d[1]=8;) G/ D$ S6 A* V7 f: Y+ b
}
2 \; Z( t* s9 Oelse if(computer.pp.number<=107 && computer.pp.number>=104)
, v1 F& }. X3 d6 k. a. Y0 [* q{( L$ V9 r- M4 d1 E! Z
lgg=9;( x& ~) S% l6 W: d1 W) C( W
computer.pp.d[1]=9;
/ b; l/ u+ T0 }( S9 q% W, ?9 W}
1 P) a, F8 C, x: A& U! s}
8 u. v# [, D W: ]0 s \9 M! {: e! Nelse if(computer.pp.number<=135 && computer.pp.number>=108)
) g! |3 I% f, q8 k( W& B{, r. r2 o) d( d1 ]. a
lg=4;
: S d) I& i' S+ E# `2 Tcomputer.pp.d[0]=4;% Z9 V) y; b: \4 Q% G
if(computer.pp.number<=111 && computer.pp.number>=108)- Z* B5 i1 ~5 J+ U7 F$ R8 A* ^
{* o4 e) ^3 @( z3 i7 Y
lgg=1;: Q. B' |; {3 j; E; @
computer.pp.d[1]=1;& A7 e, R1 F, G0 d* h+ u: n; K
}% @7 A/ Q% O, F5 S/ r0 `
else if(computer.pp.number<=115 && computer.pp.number>=112)! B+ }* y: Y1 Z, h5 x
{* M9 U I1 o. d/ g) \) ^
lgg=2;0 o! X9 _4 n$ D- \2 k
computer.pp.d[1]=2;
$ e! Z+ D8 C% ~- k- i, S1 b3 [}6 v/ p0 @; D5 ]+ S; q
else if(computer.pp.number<=119 && computer.pp.number>=116). A# o: b8 U0 n2 X
{7 w6 m" P* G- d1 L* B) R: l
lgg=3;
5 I! X. p8 S/ E' @1 icomputer.pp.d[1]=3;9 p9 t- g& S, W
}
! \0 k4 R+ [; N8 relse if(computer.pp.number<=123 && computer.pp.number>=120)
* c: p' o7 }. R, \( f9 P, X0 h{
' X H5 Q6 W" C! W$ F+ _lgg=4;
; s. k* I5 P L$ f b0 j7 }computer.pp.d[1]=4;" F9 {. l) M/ p8 ]
}0 g: q* i6 S7 s) m0 R$ a7 I2 W: a
else if(computer.pp.number<=127 && computer.pp.number>=124)" i+ E& a) d3 O; G. r
{
* g- I; O+ O7 J1 T; o6 |lgg=5;# r% k. C i' P: v- ]% M" V9 P2 \: Z& F0 L
computer.pp.d[1]=5;6 g6 R7 q" U- W1 ]1 z/ d/ i
}. w _$ M5 ]9 A _) L
else if(computer.pp.number<=131 && computer.pp.number>=128)/ }( g; @9 l5 ~9 P
{. c2 j+ e5 I( o7 B$ \
lgg=6;; v- @! J7 r9 p; l, s
computer.pp.d[1]=6;- T, r/ w' [% @+ ~# k+ l
}
& x" w0 R- J7 t/ Nelse if(computer.pp.number<=135 && computer.pp.number>=132)+ B5 D6 k& _# j% a$ [
{
/ l/ r3 _4 u1 N6 Q- llgg=7;% i' X+ ~7 V; }, ~* w5 U
computer.pp.d[1]=7; t8 e1 n. _- V3 [
}
) j# n4 _8 t. K# V2 ?}
) |( I$ V7 x r* h: M1 Q
! J9 n6 ^2 o$ Z/ E( r: v2 \ lif(logo==lg) /*如果相等的话,那再进一步的判断,乓杠的判断*/
) ?0 W/ E6 p3 k$ Zif(logoo==lgg)
2 J" ]# m3 w! D, } N1 q" mpg++;
. I) U: z' v7 A$ I6 o, ]/ Ych.lg=lg; /*保存电脑手里的每张牌的信息*/- G7 [( U; [4 h T4 P
ch.lgg=lgg;
0 h0 ~0 X" \. A7 g* ?% ]. alg=0;
4 F0 J3 I- }' M! h1 l; @$ [, Klgg=0;- l, S" k- a- n1 q6 _# w9 @) J# h
b++;7 U: g: O6 W- ?; V$ A* c/ n
}0 a: P# l4 \! A; P
if(pg==2) /*乓*/1 R: |3 o' M8 }* P
{
1 j, }" V! v' x! j4 ]
6 O. b5 C0 L% t; Ysing=1;7 q) x0 I) y" N8 T) ^5 I# l
b=computer.m;8 b$ _. g) e: f/ z; B1 a8 }
while(b!=-1) n+ L* q' V J5 e
{
1 c) r0 n1 `3 b" B: D, j6 O- s+ Rif(strcmp(me.pp[c].k,computer.pp.k)==0)
& h' A# n9 g# U' Tcomputer.pp.p=1;" i! k, i! w" L! ?
2 }6 n6 X" n2 }' ?% b8 U; @b--;
/ t' B3 c- l' L7 |. Y) @. M4 N}5 g! B- `% n' D/ ~/ o) o. ~- `
}, K( z9 p6 |8 n6 K% F1 X4 b
if(pg==3) /*杠*/( O3 J: x) y% d! M
{
8 w0 ^: p" ]) D7 T0 `( H/ P% |: J% T6 Q" @; G% \7 O
sing=2;# @- U, a: Y+ p# p
b=computer.m;. i% q- Q# u* j
while(b!=-1)' v; O. x# r6 m ]- M. N7 S
{
( L9 Y6 e1 o* Y. g8 z) Pif(strcmp(me.pp[c].k,computer.pp.k)==0)
- g8 j% E+ J2 W/ Acomputer.pp.g=1;3 J$ r7 v; T5 ?, ~# ~0 G4 U
b--;; d. I1 c4 q, J
}) ]8 ]3 |9 ~5 B( R
}+ `: Q# o( U9 ~- T2 P d
f=0;% B- r, x& L! k% a2 k* v
while(f<computer.m) /*吃的判断*/9 G1 l; S0 C5 N$ X9 A2 M( [
{ if(ch[f].lg==logo && ch[f].lg!=4)
2 C G, }+ b. i6 z{
$ H* U; j- [9 }) P# D$ L6 v* Bif(ch[f+1].lgg-ch[f].lgg==1) /*顺吃*/
. O u" m2 N1 ^9 _$ x$ P4 B+ u" Jif(ch[f].lgg-logoo==1): G! H( N; g4 N j$ j) A
{8 Y+ {+ _6 \2 w! Q- I
gp++;( J2 J, S! U" u5 V1 H
computer.pp[f].c=1;
3 P- g! a) ~% O, }: R9 |computer.pp[f+1].c=1;
" x( r. w* C- g: P- \3 x}5 U. F2 T3 C' \7 m# F7 ~/ z0 k# T3 @
if(ch[f].lgg-ch[f+1].lgg==-1) /*逆吃*/
6 I& B# L* Z4 J( Yif(ch[f+1].lgg-logoo==-1)
6 Z: k* q3 L+ `{
9 F- G3 p( B% Qgp++;9 y6 d; r5 ^/ ^3 ?( D
computer.pp[f].c=1;7 S2 B' D9 y. l- ?4 i9 n. I" o
computer.pp[f+1].c=1;
3 n0 i" f( P6 f4 T% I}
! h7 c( A, _) S: x6 p$ jif(ch[f].lgg-logoo==-1) /*中吃*/
7 o, j8 W+ U' n( t' m' C: @/ Eif(ch[f+1].lgg-logoo==1)
1 Z4 U0 Y. w0 y; Q/ K# U{
2 }- [4 x0 {6 @- O8 w2 Y$ T" J( b% c# |gp++; G1 f$ V/ K, d8 _3 [! }2 x6 D
computer.pp[f].c=1;
i E. U7 \/ b& Z! c6 \* Qcomputer.pp[f+1].c=1;8 @' \) f; I% b
}% }; H- l/ B% S% P. Z
if(gp==1)1 \8 k/ r6 ?# V; o; s
break;
* F q! U4 Y5 x( B9 p# v4 P% f0 v}
' V T' r, K1 Y: r" Xf++;+ C4 h" @8 H7 }0 t& t: O) C2 \9 u
}
8 Y; m* {2 H+ _6 Z+ S$ t0 Uif(gp==1)
, R; G2 q6 R! S8 w: m{sing=7;
! S) n+ n& E3 _" V' `" j
, r/ a; Q, N3 t: i- p}
9 w+ m5 n; z( tpg=0;/ N1 |7 g& Y/ D# G8 g8 o( I& \
gp=0;! v$ u9 T- g8 ?4 B- F
b=0;
/ ~9 i2 D4 P, `& I( M}8 x! r) Y5 O6 h
void rgznme(int c) /*本程序涵数的核心针对我的牌*/; z/ c H1 D, \: u1 X
{ int b=0,lg,lgg,logo,logoo,pg=0,gp=0,cs=0,f=0;1 D& F+ F% O% V) P; L& G1 w
if(computer.pp[c].number<=35 && computer.pp[c].number>=0)
2 ^+ e& B' A6 b) o# U{8 f+ k E# }9 }: E3 F; z
logo=1;* C1 p7 ]$ d s7 P9 X
if(computer.pp[c].number<=3 && computer.pp[c].number>=0)7 z- b3 v- Y8 T/ X
logoo=1;
" ?; Y( k1 K6 n, d; m; Lelse if(computer.pp[c].number<=7 && computer.pp[c].number>=4)
6 q! d" J: o& Q2 A4 V9 e: a2 clogoo=2;9 q) E/ i# o/ [% L6 A, w z% z4 B
else if(computer.pp[c].number<=11 && computer.pp[c].number>=8)2 k6 Q+ E9 p) m2 C; a! g' \1 B
logoo=3;( x6 W5 e- @9 [; i# S+ `) s
else if(computer.pp[c].number<=15 && computer.pp[c].number>=12), \' J0 q2 g# C) }' r4 \' k, ^6 F
logoo=4;0 w2 U: T- v2 k0 i: n% C1 k, v
else if(computer.pp[c].number<=19 && computer.pp[c].number>=16)+ [+ c$ E7 V3 F5 [
logoo=5;
5 n' ~% J% w# D# yelse if(computer.pp[c].number<=23 && computer.pp[c].number>=20)
$ B6 C8 N* w0 Z! Y6 G7 O1 tlogoo=6;
" c3 l/ X( x e: q% `$ Pelse if(computer.pp[c].number<=27 && computer.pp[c].number>=24)
1 g' P$ i- I8 b: ]" Llogoo=7;
+ `6 {# }0 L$ @& n! u! D% H9 Velse if(computer.pp[c].number<=31 && computer.pp[c].number>=28)
2 i- Z9 X. Z5 ]logoo=8;
8 `8 Q/ `0 S! `8 M* [- C) G2 N8 h4 Xelse if(computer.pp[c].number<=35 && computer.pp[c].number>=32)
, H% b. U) H( Y6 Mlogoo=9;
8 i8 ~" h9 D1 z+ t- w, E$ j}$ R2 }$ k" ^; Z9 N, _9 O; R) k
else if(computer.pp[c].number<=71 && computer.pp[c].number>=36)
+ q6 \% r8 K! I& n6 X" P& e{* m. k1 n- d' B: u5 @
logo=2;
% ?/ v3 [$ L; r. q% g7 Z% aif(computer.pp[c].number<=39 && computer.pp[c].number>=36)" p0 @( q5 ?6 p' }: v" }: |
logoo=1;8 |$ y6 p4 I! Z" I* S" M' I
else if(computer.pp[c].number<=43 && computer.pp[c].number>=40)
" X5 T- R& H, H% L5 e" O5 {$ N) llogoo=2;
/ U( K+ a( u& B- t0 T k0 \( [. kelse if(computer.pp[c].number<=47 && computer.pp[c].number>=44)! E- O3 `( K: ^5 e9 h
logoo=3;
9 E) K3 h2 @* x+ |else if(computer.pp[c].number<=51 && computer.pp[c].number>=48)
+ r3 D Y- i! z, l( e% ulogoo=4;% w$ D7 `6 g# g4 i0 M
else if(computer.pp[c].number<=55 && computer.pp[c].number>=52)
+ A) L& n# y2 Y6 E) Zlogoo=5;" N. ^6 N$ K: J7 p* `
else if(computer.pp[c].number<=59 && computer.pp[c].number>=56): s+ b$ U, V1 F2 B- w
logoo=6;0 `' `( `+ a- \7 N" L& K
else if(computer.pp[c].number<=63 && computer.pp[c].number>=60). _5 J' b% b! G7 D0 R Y
logoo=7;( u! X( z- E! m0 U1 }9 g
else if(computer.pp[c].number<=67 && computer.pp[c].number>=64)
2 ]7 x- e' B, v: Tlogoo=8;" ]9 V% Z& @/ W; R1 w
else if(computer.pp[c].number<=71 && computer.pp[c].number>=68)
3 v) U# f' m/ Dlogoo=9;/ s0 K" a# c" a/ Y5 C- w8 A
}
7 `+ B5 f6 z$ |: a$ @7 o" N# J1 P" Velse if(computer.pp[c].number<=107 && computer.pp[c].number>=72)) _$ N5 W" n* J' s
{
) ~+ ~2 `, S: I6 ~: l) W: S' xlogo=3;
+ r: N. z2 n: v0 l% hif(computer.pp[c].number<=75 && computer.pp[c].number>=72)
k9 E: @. `( L! I8 B) i9 V m, Alogoo=1;
4 p- B0 B0 H/ @. J4 K* relse if(computer.pp[c].number<=79 && computer.pp[c].number>=76)
+ G: z9 Y0 F- t! Zlogoo=2;! y# r0 J$ f+ Y! }; n" p
else if(computer.pp[c].number<=83 && computer.pp[c].number>=80): o# S8 r f7 y1 r
logoo=3;% l: z. B6 w8 p
else if(computer.pp[c].number<=87 && computer.pp[c].number>=84)
! n. u* |& F) P$ v' T' s' y; V- x# _7 Ilogoo=4;) v* Y7 p* L# Y) r
else if(computer.pp[c].number<=91 && computer.pp[c].number>=88)! L: [( n1 ~& Z" c
logoo=5;2 b5 R! S4 ^' D+ X; z
else if(computer.pp[c].number<=95 && computer.pp[c].number>=92)) s8 S0 v. M$ Q" p& v
logoo=6;
: g* B" N$ D# Selse if(computer.pp[c].number<=99 && computer.pp[c].number>=96)
" P9 p9 u V8 u9 Jlogoo=7;: r' a# W4 c" u( K: ?
else if(computer.pp[c].number<=103 && computer.pp[c].number>=100)
! J$ Z5 O4 R5 e/ B2 X& w$ Y0 clogoo=8;# b# b9 ]% q( D/ K, r8 }6 F
else if(computer.pp[c].number<=107 && computer.pp[c].number>=104)
8 ~- P( i, V7 U3 r0 i4 I5 ~3 zlogoo=9;
1 y. t3 H1 u: c3 O9 [" D}
/ i4 C5 D9 X, O# L6 `/ Qelse if(computer.pp[c].number<=135 && computer.pp[c].number>=108)
% d) H0 w) e4 b7 x' \{* U' l7 \# S/ `( z% G
logo=4;- Q' ]+ i, F5 }/ O, y4 H1 j/ z* h& h
if(computer.pp[c].number<=111 && computer.pp[c].number>=108)
+ c- m% d L7 T2 e' q( q2 Ulogoo=1;
2 V, r/ c# E- E/ R+ Z9 ]7 Nelse if(computer.pp[c].number<=115 && computer.pp[c].number>=112)
4 ~7 L0 d9 X, W) Xlogoo=2;
5 o. U9 i9 E. G9 ~) M4 welse if(computer.pp[c].number<=119 && computer.pp[c].number>=116)
U) x0 p; i# H* {8 V: K& ulogoo=3;4 @" v% {" j* _" i% N( p+ n: N
else if(computer.pp[c].number<=123 && computer.pp[c].number>=120)( l# Y7 l) E9 T3 u, P" g* h
logoo=4;8 K8 z8 s7 g. m: {
else if(computer.pp[c].number<=127 && computer.pp[c].number>=124)" `: F& n, G L8 [% I, {( d* v
logoo=5;6 K( V5 \/ ~5 T6 `( ^ b
else if(computer.pp[c].number<=131 && computer.pp[c].number>=128)7 M6 U T- T) B
logoo=6;
7 q- i5 D/ P @else if(computer.pp[c].number<=135 && computer.pp[c].number>=132)0 y' U) P6 \+ g2 a$ Y; s7 A$ c0 R
logoo=7;
3 O" h l7 {$ m8 \+ g/ }}
; a- P& ]2 r1 p* |while(b<=me.m)
% e' K2 y1 J( G1 X. U+ q0 T{9 a. `/ p% H$ s
if(me.pp.number<=35 && me.pp.number>=0) /*我分析后出了第一张牌*/- |: v* k" Z6 @2 i7 w$ B% _) F0 @. f
{; u3 |/ |) z: d7 d' D) a' [
lg=1;0 H7 \5 l* I% @% Q# o$ C- r
me.pp.d[0]=1;- h5 c) O. l6 o6 D
if(me.pp.number<=3 && me.pp.number>=0)
# R$ ]; A2 A; j5 j$ n9 l9 Z{5 Z T9 y, R0 M1 q' L: o$ l! ]
lgg=1;2 j6 i( X& N' ^: u1 q5 @7 \
me.pp.d[1]=1;
; @5 A; u- j4 O7 g7 O; S}
9 r/ i0 }) x, Q" e- s, telse if(me.pp.number<=7 && me.pp.number>=4)
Q8 B# b& C7 l0 E{ m- I3 z& s: x" B. b
lgg=2;' L+ B& }6 Q5 w, H- ?
me.pp.d[1]=2;' M5 Q1 H) K# g+ ]7 S1 D
}
) |+ q# c4 b0 V& Xelse if(me.pp.number<=11 && me.pp.number>=8)5 d- D( {8 _" q4 {1 r+ Q3 M+ ?
{$ ]! e: x8 z% o* k5 ]) e- J2 R
lgg=3;9 l3 E4 V* l5 ]# @6 H& r9 H
me.pp.d[1]=3;) Z9 v- Z* w2 K# p
}
/ `; J& l" ^3 e2 C1 Xelse if(me.pp.number<=15 && me.pp.number>=12)2 t& V0 B5 n) q
{
u) X+ \/ G2 Nlgg=4;
+ ^5 E% z8 r6 p0 E3 X, f' Ome.pp.d[1]=4;) `+ H" L* ?8 `5 _0 i0 n+ D) K
}
! i1 _1 U7 n: D% xelse if(me.pp.number<=19 && me.pp.number>=16)
5 Z: l1 x X* f# q{9 G" c; x: B$ }
lgg=5;% \3 D$ N2 [4 ~" k2 H2 P
me.pp.d[1]=5;
9 v* K; ^$ o g( L( V' i, J}
! w) Y( o* V7 C( {2 Velse if(me.pp.number<=23 && me.pp.number>=20)
4 f' [' y; d" f9 ?+ Z+ C' Z' S4 T{
8 ]' j+ n j0 R5 P6 H7 p5 f% ilgg=6;
- ^ ~( D& E9 Z4 [, Tme.pp.d[1]=6;
, D! _! M- u5 s3 q P W}" G* V9 x7 }" o
else if(me.pp.number<=27 && me.pp.number>=24)
0 W3 c5 w' d3 M{
' u# y( N2 v3 f3 b6 {lgg=7;
) k& G& r0 f2 Y. B6 m2 l* a2 {7 x3 Yme.pp.d[1]=7;
( O0 q2 N& \" J" F6 I3 q}/ n `3 s) Q; @5 h) ]
else if(me.pp.number<=31 && me.pp.number>=28)
* b1 y% I% ?8 q{1 f( T9 n$ O6 o( A
lgg=8;
+ q: g* ?& A- E& q# G) G; H' Vme.pp.d[1]=8;+ q) o2 B1 s0 k: e% \: i! e
}8 h) D/ p! _3 i* ?6 H: l
else if(me.pp.number<=35 && me.pp.number>=32)0 [8 ?* @( H( ~7 w& a; k
{- @- t- W5 N0 ?* {7 ^# R
lgg=9;
( Q/ J' s) @6 t" z0 x* s: gme.pp.d[1]=9;0 J# N5 c1 }7 _* V S
}
$ R. f& S# u+ g0 T" N}8 X, w2 c E) F1 P/ C
else if(me.pp.number<=71 && me.pp.number>=36)
% I* r* Y+ E) b% J$ c' ?{& q( w4 ^3 V3 \5 B8 N) [7 X% d
lg=2;
" X+ ~# S! v. Y; a; yme.pp.d[0]=2;
2 {* [ p2 t* \& W( [& vif(me.pp.number<=39 && me.pp.number>=36)
# X/ n% v7 d1 K7 G B{% S1 r8 C# ]6 P1 A1 g8 E8 }
lgg=1;, [$ c1 z8 t1 S- t1 S8 c Q& w
me.pp.d[1]=1;
. Y0 b# g1 V9 K) z}! N; ]' \7 u2 A# ^8 M- m; x! v
else if(me.pp.number<=43 && me.pp.number>=40)
: B, F% Y, j3 l3 @* Y4 L{8 o% d" p+ C0 r, T6 N0 P8 b: Z4 l
lgg=2;
% L: g& \' `+ ?- z; J6 B6 ^me.pp.d[1]=2;+ Q+ R: e U {: @5 I5 b9 I9 N! i
}) N- S5 |. B2 t5 _- ?
else if(me.pp.number<=47 && me.pp.number>=44)
! r5 a, v: b$ p# p2 F{) |- W9 b8 ^; |" X
lgg=3;
6 S$ V/ O0 p! y7 ~' nme.pp.d[1]=3;9 ?& |9 M$ B( g& z: O% }: n$ f
}
- Z6 x5 s. N( D- [9 M; X4 Belse if(me.pp.number<=51 && me.pp.number>=48)
$ w+ W& R% ]3 {2 m H{
6 `" Q M; l) [; g6 \lgg=4;$ ?) V% X5 n3 e/ \* ^
me.pp.d[1]=4;
5 i. {2 w) u2 F3 b/ L}4 V( g+ G0 z% b L+ C1 ?) r
else if(me.pp.number<=55 && me.pp.number>=52)
3 I1 v4 E1 v& g% B1 N5 X6 b{
; A/ e/ [1 d& E3 s- j2 Q6 f5 `lgg=5;2 Q& P& t# l, j
me.pp.d[1]=5;
% g5 n: c4 A/ `0 D& }}5 @4 o0 z+ S0 R9 }" ?
else if(me.pp.number<=59 && me.pp.number>=56)
9 D4 r9 W) `' K1 A{
7 ?/ t( a; u* P. nlgg=6;
. M. d2 B9 p+ g2 q9 Y& y4 N' Eme.pp.d[1]=6;* D; J/ |' G, x0 @/ @4 x
}
% E3 E% z( t5 ^9 `" n# B oelse if(me.pp.number<=63 && me.pp.number>=60), I+ X: V+ E* @
{9 O1 [8 r3 ?5 G) [
lgg=7;- [& ]0 b% \6 J9 ^$ |. J, _
me.pp.d[1]=7;
5 a3 v- \5 H. D" h}& i6 J* u; E2 l, y" z- H/ i
else if(me.pp.number<=67 && me.pp.number>=64)
. `2 M+ t, ^. ]* R{
; S$ {+ W9 g% v2 J% e- Jlgg=8; C9 J! O$ B* f0 t% @7 c
me.pp.d[1]=8;8 z0 G& x/ S; i% }: w' @0 w
} v* `- W1 a5 d0 F
else if(me.pp.number<=71 && me.pp.number>=68)% D7 D/ I2 Q& f3 E5 f# _7 D
{8 `; b5 v: H; k8 d- e
lgg=9;
! q, E3 L/ S" vme.pp.d[1]=9;
9 Z# d& F* G7 }}
( k% I. ]6 z8 A, }}( p1 z4 Q- [! E0 U$ H0 G
else if(me.pp.number<=107 && me.pp.number>=72): O7 n. ^" P% g! v6 ]
{
$ `% E& u M& l8 l/ \7 I/ Vlg=3;! Z2 T, V$ U4 b' F0 t
me.pp.d[0]=3;
! e' |( Y- E- qif(me.pp.number<=75 && me.pp.number>=72)
' K; G) L! f' C{6 ^; d/ g( X i& l; i& ]
lgg=1;
]' \, b9 f! I5 z& ime.pp.d[1]=1;
2 J3 S, V3 u6 ?/ B4 a/ }+ H}& z1 v$ s6 |8 b; p) k
else if(me.pp.number<=79 && me.pp.number>=76)8 R; |/ z8 ~3 @. [
{
u: n$ Z. f; |; d) D8 c8 plgg=2;; R& o* Z) u8 r7 k) k
me.pp.d[1]=2;) [3 F! ]1 B5 k6 J' K
}
5 X0 Z% p5 I; R" U3 U5 E9 Oelse if(me.pp.number<=83 && me.pp.number>=80)
. E" \- z( b6 H8 M" g{
& h7 q% `4 A! @9 d8 nlgg=3;: Q3 A3 O! U2 b% J. S
me.pp.d[1]=3;
$ e4 B5 c: y9 X2 w6 z' C}% F: g" c! }. W1 G
else if(me.pp.number<=87 && me.pp.number>=84); F9 v* y9 n& X
{/ U$ L: [1 b% q) y+ ~. Z
lgg=4;
; l9 [' m5 ^, c) I+ T) G2 `me.pp.d[1]=4;# r- `3 h, L! V# n
}5 n, K& P- a/ s( y+ T, O8 ~" c0 }
else if(me.pp.number<=91 && me.pp.number>=88)4 T i9 a* i1 C2 E- L
{- |3 ~1 |3 d8 D# x9 I) q* j T
lgg=5;3 D" {' }, d) {; P6 D, L
me.pp.d[1]=5;
2 P7 H. P1 C3 L0 T}
' ^# h2 _5 K( S9 H( j+ ?9 |else if(me.pp.number<=95 && me.pp.number>=92)' {+ r" h% B( b) u
{4 }# C( X& u9 y2 Z. T% b' g
lgg=6;* B9 S8 Z3 X+ v
me.pp.d[1]=6;/ d( ~4 L& Q) T: Y
}
! K: q, ?& K" Z3 c; R' Y6 {) A+ qelse if(me.pp.number<=99 && me.pp.number>=96)
) Y) m$ R- e% w% }{; {: ~3 w z [1 K
lgg=7;% Q+ k+ \6 v8 ^" ]/ t+ [. w' j
me.pp.d[1]=7;
, k9 z3 I+ Q1 n) ], p) D! Q, l1 w V}
) f2 Y7 l! M/ h7 D5 x- ~else if(me.pp.number<=103 && me.pp.number>=100)