📄 puke.c
字号:
mans++;
if (next==9) next=i+1;
else if(rnd(100)%2) next=i+1;
}
}
if (wei.type==5)
{
if (step<30)
{
if (rnd(100)%50==0) return next;
if(max<max_sets && rnd(100)%3) return max+(rnd(20)-1)*100;
else return max;
}
return next;
}
if (wei.type==4)
{
if (step<30)
{
if (rnd(100)%40==0) return next;
if(max<max_sets && rnd(100)%2) return max+(rnd(40)-1)*50;
else return max;
}
return next;
}
if (wei.type>1)
{
if (step<30)
{
if (max>2000 && rnd(100)%3) return next;
if (rnd(100)%20==0) return next;
if(max<max_sets && rnd(100)%2) return max+(rnd(30)-1)*50;
else return max;
}
return next;
}
if (wei.type)
{
if (step<30)
{
if (max>100 && rnd(100)%3) return next;
if (max>1500 && rnd(100)%2) return 0;
if(step>3 && rnd(100000)%(mans+step+max/10) && mans>1) return 0;
if (rnd(100)%10==0) return next;
if (mans==1 && rnd(100)%5) return next;
if(max<max_sets && rnd(100)%4==0) return max+(rnd(10)-1)*50;
else return max;
}
return next;
}
if (step<30)
{
if (max>100 && rnd(100)%3) return next;
if (max>1000 && rnd(100)%5) return 0;
if(step>2 && rnd(100000)%(mans+step+max/10) && mans>1) return 0;
if (rnd(100)%8==0) return next;
if (mans==1 && rnd(100)%5) return next;
if(max<max_sets && rnd(100)%8==0) return max+(rnd(10)-1)*50;
else return max;
}
return next;
}
u8 puke_check_win(u8 *man_sta)
{
u8 i;
u8 count=0;
for (i=0;i<4;i++)
{
if (man_sta[i]) count++;
}
if (count<2) return 1;
else return 0;
}
u16 puke_man_set(u16 max,u8 *man_sta)
{
u8 sel;
u8 done=1;
u16 sets=max;
char mes[100];
char names[3][10]={"張飛","關羽","劉備"};
CS_BackupScreenMem(&gScreen,20,40,220,60,VSAVE,MODE_3);
Q_box(5,140,110,159,RGB(30,30,30));
cwrite(5,140,RGB(0,15,5),"STRAT鍵退出遊戲");
while (1)
{
CS_ReadKey();
if (CS_IsKeyDown(KEY_A)) {sets=max;break;}
else if (CS_IsKeyDown(KEY_B))
{
Q_box(20,40,219,59,RGB(30,30,30));
r_box(21,41,218,58,RGB(0,15,5),0);
cwrite(23,45,RGB(0,15,5),"確定要放棄嗎?A-YES B-NO");
done=1;
while (1)
{
CS_ReadKey();
if (CS_IsKeyDown(KEY_A))
{
CS_RestoreScreenMem(&gScreen,20,40,220,60,VSAVE,MODE_3);
return 0;
}
if (CS_IsKeyDown(KEY_B)) break;
}
}
else if(CS_IsKeyDown(KEY_R))
{
Q_box(20,40,219,59,RGB(30,30,30));
r_box(21,41,218,58,RGB(0,15,5),0);
cwrite(23,45,RGB(0,15,5),"A-確定 B-取消 R-碼加 L-碼減");
done=1;
while(1)
{
CS_ReadKey();
if (CS_IsKeyDown(KEY_A))
{
CS_RestoreScreenMem(&gScreen,20,40,220,60,VSAVE,MODE_3);
return sets;
}
if (CS_IsKeyDown(KEY_B)) {done=1;break;}
else if (CS_IsKeyDown(KEY_R) && sets<max_sets) {sets+=50;done=1;}
else if (CS_IsKeyDown(KEY_L) && sets>=max+50) {sets-=50;done=1;}
if (done)
{
Q_box(5,140,110,159,RGB(30,30,30));
mes[0]='\0';
str_cat(mes,"下注:");
num_to_str(sets,mes+5);
cwrite(5,140,RGB(0,15,5),mes);
done=0;
}
}
}
else if(CS_IsKeyDown(KEY_L))
{
Q_box(20,40,220,60,0);
Q_box(20,40,219,59,RGB(30,30,30));
r_box(21,41,218,58,RGB(0,15,5),0);
cwrite(23,45,RGB(0,15,5),"A-張飛 L-關羽 R-劉備 B-取消");
done=0;
while (1)
{
CS_ReadKey();
if (CS_IsKeyDown(KEY_B)) {done=2;break;}
else if (CS_IsKeyDown(KEY_A)) {done=1;sel=0;}
else if (CS_IsKeyDown(KEY_L)) {done=1;sel=1;}
else if (CS_IsKeyDown(KEY_R)) {done=1;sel=2;}
if (done)
{
done=0;
if (man_sta[sel]==0)
{
Q_box(20,40,220,60,0);
Q_box(20,40,219,59,RGB(30,30,30));
r_box(21,41,218,58,RGB(0,15,5),0);
mes[0]='\0';
str_cat(mes,names[sel]);
str_cat(mes,"已經下場,不能比試");
cwrite(23,45,RGB(0,15,5),mes);
while (1)
{
CS_ReadKey();
if (CS_IsKeyDown(KEY_A)) break;
}
Q_box(20,40,220,60,0);
Q_box(20,40,219,59,RGB(30,30,30));
r_box(21,41,218,58,RGB(0,15,5),0);
cwrite(23,45,RGB(0,15,5),"A-張飛 L-關羽 R-劉備 B-取消");
}
else
{
CS_RestoreScreenMem(&gScreen,20,40,220,60,VSAVE,MODE_3);
return sel+1;
}
}
}
}
else if(CS_IsKeyDown(KEY_START))
{
Q_box(20,40,220,60,0);
Q_box(20,40,219,59,RGB(30,30,30));
r_box(21,41,218,58,RGB(0,15,5),0);
cwrite(23,45,RGB(0,15,5),"您真的要退出遊戲嗎?A-YES B-NO");
while (1)
{
CS_ReadKey();
if (CS_IsKeyDown(KEY_A))
{
CS_RestoreScreenMem(&gScreen,20,40,220,60,VSAVE,MODE_3);
return max_sets+100;
}
else if (CS_IsKeyDown(KEY_B)) {done=1;break;}
}
}
if (done)
{
Q_box(20,40,220,60,0);
Q_box(20,40,219,59,RGB(30,30,30));
r_box(21,41,218,58,RGB(0,15,5),0);
cwrite(23,45,RGB(0,15,5),"A-跟牌 B-放棄 R-加碼 L-比試");
done=0;
}
}
CS_RestoreScreenMem(&gScreen,20,40,220,60,VSAVE,MODE_3);
return sets;
}
void puke()
{
struct puke_mes mem[4*3];
struct puke_wei wei[4];
u8 puke_sta[14];
u32 money[4]={800000,900000,1500000,80000};
u8 can_see[4]={0,0,0,1};
u8 man_sta[4]={1,1,1,1};
u8 i;
u8 win;
u32 sets;
u16 max;
u16 bet;
u8 step;
u8 man;
char names[4][10]={"張飛","關羽","劉備","玩家"};
char mes[100];
return;
Q_box(0,0,239,159,RGB(30,30,30));
r_box(2,6,108,54,RGB(30,0,0),0);
r_box(2+120,6,108+120,54,RGB(30,0,0),0);
r_box(2+120,6+65,108+120,54+65,RGB(30,0,0),0);
r_box(2,6+65,108,54+65,RGB(0,15,5),0);
cwrite(5,58,RGB(0,15,5),"張飛:");
cwrite(5+120,58,RGB(0,15,5),"關羽:");
cwrite(5+120,58+65,RGB(0,15,5),"劉備:");
cwrite(5,58+65,RGB(0,15,5),"玩家:");
again:
puke_cash(puke_sta);
for (i=0;i<4;i++) show_money(money[i],i+1);
new_pukes(mem,puke_sta);
//puke_show_mes("游戏开始啦!");
for (i=0;i<4;i++)
{
wei[i]=get_puke_type(mem+i*3);
can_see[i]=0;
man_sta[i]=1;
money[i]-=50;
}
can_see[3]=1;
max=50;
step=0;
sets=200;
show_money_sets(sets);
while (1)
{
for (i=0;i<4;i++)
{
if (man_sta[i]==0) continue;
if (puke_check_win(man_sta))
{
win=i;
goto next;
}
if (i==3)
{
bet=puke_man_set(max,man_sta);
if (bet==max_sets+100) return;
}
else bet=puke_play(wei[i],i+1,max,step,man_sta);
if (bet==0)//放弃
{
mes[0]='\0';
str_cat(mes,names[i]);
str_cat(mes,"放弃了.");
puke_show_mes(mes);
man_sta[i]=0;
member_puke(mem+i*3,i+1,can_see[i],0);
}
else if (bet>10)
{
mes[0]='\0';
str_cat(mes,names[i]);
str_cat(mes,"下了");
num_to_str(bet,mes+8);
str_cat(mes,"赌注");
puke_show_mes(mes);
money[i]-=bet;
sets+=bet;
max=bet;
}
else
{
if (bet==4)
{
can_see[i]=1;
member_puke(mem+i*3,i+1,1,1);
}
else if (i==3)
{
can_see[bet-1]=1;
member_puke(mem+(bet-1)*3,bet,1,1);
}
mes[0]='\0';
str_cat(mes,names[i]);
str_cat(mes,"與");
str_cat(mes,names[bet-1]);
str_cat(mes,"比試.");
str_cat(mes,names[i]);
if (puke_cmp(wei[i],wei[bet-1]))
{
str_cat(mes,"戰勝!");
member_puke(mem+(bet-1)*3,bet,can_see[bet-1],0);
man_sta[bet-1]=0;
}
else
{
str_cat(mes,"戰敗.");
member_puke(mem+i*3,i+1,can_see[i],0);
man_sta[i]=0;
}
puke_show_mes(mes);
money[i]-=max;
sets+=sets;
}
show_money(money[i],i+1);
show_money_sets(sets);
}
step++;
}
next:
if (win!=3) member_puke(mem+win*3,win+1,1,1);
money[win]+=sets;
mes[0]='\0';
str_cat(mes,"本局");
str_cat(mes,names[win]);
str_cat(mes,"勝利,贏得");
num_to_str(sets,mes+17);
str_cat(mes,"金幣.");
puke_show_mes(mes);
show_money(money[win],win+1);
sets=0;
goto again;
//for
//for (i=0;i<4;i++) member_puke(mem+i*3,i+1,1);
}
/*void mytest()
{
u8 i;
struct puke_mes test;
u8 puke_sta[42];
Q_box(0,0,239,159,RGB(30,30,30));
okk:
//Q_box(0,0,239,159,RGB(30,30,30));
while (1)
{
CS_ReadKey();
if (CS_IsKeyDown(KEY_A)) break;
}
puke_cash(puke_sta);
Q_box(0,0,239,159,RGB(30,30,30));
for (i=0;i<12;i++)
{
wait(rnd(300)+CS_Rand()%50);
test=get_puke(puke_sta);
paint_puke(2+15*i,15,test,1);
}
goto okk;
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -