CGame/Order.h

115 lines
3.6 KiB
C
Raw Normal View History

2020-08-31 16:13:49 +00:00
//
// Order.h
// CGame
//
// Created by Eric on 16/7/23.
// Copyright © 2016年 Bakantu Eric. All rights reserved.
//
#ifndef Order_h
#define Order_h
int show_map(lnd *p_lnd);
int o_conquer(lnd *p_lnd, cty *p_cty);
int o_sldadd(lnd *p_lnd, cty *p_cty);
int o_movesld(lnd *p_lnd, cty *p_cty);
int show_map(lnd *p_lnd){
int m_x = p_lnd->x;
while (p_lnd != NULL){
if (m_x == p_lnd->x) {
if (p_lnd->belong != NULL) printf (" $#$ 人口: %.0f 产能t: %.2f 属于:%s $#$ ",p_lnd->people,p_lnd->product,p_lnd->belong->name);
else printf (" $#$ 人口: %.0f 产能t: %.2f 属于: 空 $#$ ",p_lnd->people,p_lnd->product);
}
else{
m_x = p_lnd->x;
printf("\n");
if (p_lnd->belong != NULL) printf (" $#$ 人口: %.0f 产能t: %.2f 属于:%s $#$ ",p_lnd->people,p_lnd->product,p_lnd->belong->name);
else printf (" $#$ 人口: %.0f 产能t: %.2f 属于: 空 $#$ ",p_lnd->people,p_lnd->product); }
p_lnd = p_lnd->n_lnd;
}
printf("\n");
return 0;
}
int o_conquer(lnd *p_lnd, cty *p_cty){
int b_x,b_y,d_x,d_y,snum;
printf("clear");
printf("-----------------------------------------------------------------\n");
printf("请输入本土坐标:(x)");
scanf("%d",&b_x);
printf("请输入本土坐标:(y)");
scanf("%d",&b_y);
printf("请输入敌坐标:(x)");
scanf("%d",&d_x);
printf("请输入敌坐标:(y)");
scanf("%d",&d_y);
printf("请输入投入兵力:");
scanf("%d",&snum);
printf("-----------------------------------------------------------------\n");
fflush(stdin);
lnd *b_lnd, *d_lnd;
b_lnd = find_lnd(p_lnd, b_x, b_y);
d_lnd = find_lnd(p_lnd, d_x, d_y);
if (srhpow(p_cty,p_lnd) < p_cty->power)
if (d_x == b_x+1 || d_x == b_x-1 || d_x == b_x)
if (d_y == b_y +1 || d_y == b_y-1 || d_y == b_y)
if (b_lnd != NULL && p_lnd != NULL && snum >= 75){
if (!conquer(b_lnd, d_lnd, snum)) printf("占领目标成功\n");
getchar();
}
return 0;
}
int o_sldadd(lnd *p_lnd, cty *p_cty){
int x, y;
lnd *ps_lnd;
double rat = 0;
printf("------------------------------------------------------------------\n");
printf("输入征兵土地坐标:(x)");
scanf("%d",&x);
printf("输入征兵土地坐标:(y)");
scanf("%d",&y);
printf("输入征兵率:");
scanf("%lf",&rat);
printf("------------------------------------------------------------------\n");
fflush(stdin);
ps_lnd = find_lnd(p_lnd, x, y);
if (p_cty == ps_lnd->belong) {
if(!sldadd(ps_lnd->belong, ps_lnd, rat)) printf("征兵成功!\n");
getchar();
}
return 0;
}
int o_movesld(lnd *p_lnd, cty *p_cty){
int f_x, f_y, d_x, d_y, snum;
lnd *pf_lnd, *pt_lnd;
printf("------------------------------------------------------------------\n");
printf("输入出发土地坐标:(x)");
scanf("%d",&f_x);
printf("输入出发土地坐标:(y)");
scanf("%d",&f_y);
printf("输入目的土地坐标:(x)");
scanf("%d",&d_x);
printf("输入目的土地坐标:(y)");
scanf("%d",&d_y);
printf("请输入兵力:");
scanf("%d",&snum);
printf("------------------------------------------------------------------\n");
fflush(stdin);
pf_lnd = find_lnd(p_lnd, f_x, f_y);
pt_lnd = find_lnd(p_lnd, d_x, d_y);
if (p_cty == pf_lnd->belong && p_cty == pt_lnd->belong){
if (!sldmove(pf_lnd, pt_lnd, snum)) printf("移动兵力成功!\n");
getchar();
}
return 0;
}
#endif /* Order_h */