商人过河C语言程序编程Word文档格式.docx
《商人过河C语言程序编程Word文档格式.docx》由会员分享,可在线阅读,更多相关《商人过河C语言程序编程Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
tputcup1120"
*要大于或等于随从的人数,否则随从会杀掉商人抢走货物。
tputcup1220"
tputcup1320"
*游戏操作:
tputcup1420"
*
(1)依次输入过河的商人和随从人数;
tputcup1520"
*
(2)非法输入按键将重新开始。
tputcup1620"
*--------------------------------------------------------------------------------------------*\n"
tputcup1720"
printf("
*\n"
system("
tputcup17113"
tputcup1820"
tputcup18113"
tputcup1920"
tputcup19113"
tputcup2020"
tputcup20113"
tputcup2120"
tputcup21113"
tputcup2220"
tputcup22113"
tputcup2320"
tputcup23113"
tputcup2420"
tputcup24113"
tputcup2520"
tputcup25113"
tputcup2620"
tputcup26113"
tputcup2720"
tputcup27113"
tputcup2820"
**********************************************************************************************\n"
}
chara[6];
//此岸
charb[6];
//彼岸
voidprint_state(chara[],charb[])//打印渡河状态
inti,j,ab,aa,ba,bb;
//ab此岸商人数,aa此岸随从数bb彼岸商人数,ba,彼岸随从数
aa=ab=ba=bb=0;
basic_interface();
system("
tputcup1840"
此岸商人数:
\n"
tputcup1940"
此岸随从数:
tputcup1873"
彼岸商人数:
\n"
tputcup1973"
彼岸随从数:
for(i=0;
i<
6;
i++)//计算此岸商人数和随从数
{
if(a[i]=='
B'
)
ab++;
elseif(a[i]=='
A'
aa++;
}
tputcup1853"
printf("
%d\n"
ab);
//输出此岸商人数
tputcup1953"
aa);
//输出此岸随从数
for(j=0;
j<
j++)//计算彼岸商人数和随从数
if(b[j]=='
bb++;
elseif(b[j]=='
ba++;
tputcup1886"
bb);
//输出彼岸商人数
tputcup1986"
ba);
//输出彼岸随从数
if(ab==0&
&
aa==0&
bb==3&
ba==3)//判断是否渡河成功
{
tputcup2340"
printf("
恭喜你!
你已成功帮助商人安全过河!
按任意键退出...\n"
tputcup300"
getchar();
exit(0);
}
voidprocess()
inti,j,go_b,go_a,back_b,back_a,ab,aa,bb,ba;
//go_b,过去商人数,go_a,过去随从数,back_b,回来商人数,back_a,回来随从数,
charch;
Start:
basic_interface();
tputcup2040"
请按任意键开始游戏(按Q键退出)..."
ch=getchar();
if(ch=='
Q'
||ch=='
q'
for(i=0;
3;
i++)
a[i]='
;
for(i=3;
b[i]='
0'
print_state(a,b);
while
(1)
//过去
for(ab=0,aa=0,i=0;
i++)//计算此岸的商人数和随从数
if(a[i]=='
ab++;
elseif(a[i]=='
aa++;
tputcup2143"
输入去彼岸商人的人数:
tputcup2243"
输入去彼岸随从的人数:
tputcup2165"
scanf("
%d"
&
go_b);
//输入去彼岸的商人数
tputcup2265"
go_a);
//输入去彼岸的随从数
if(go_b<
0||go_b>
ab||go_a<
0||go_a>
aa||go_a+go_b<
1||go_a+go_b>
2)//输入不合法
system("
tputcup2440"
输入有误!
!
按任意键重新开始..."
getchar();
gotoStart;
for(i=1;
=go_b;
i++)//过河后两边的状态
for(j=0;
j++)
if(a[j]=='
)
{
a[j]='
break;
}
i++)
for(j=0;
if(b[j]=='
b[j]='
=go_a;
for(aa=0,ab=0,i=0;
i++)//统计过河后a岸的商人数和随从数
if(a[i]=='
for(ba=0,bb=0,i=0;
i++)//统计过河后b按的商人数和随从数
if(b[i]=='
ba++;
elseif(b[i]=='
bb++;
}
if((ab==3)||(bb==3)||(ab==aa)||(bb==ba))//可以继续下一步的条件
print_state(a,b);
else
商人被杀,按任意键重新开始...\n"
//回来
for(bb=0,ba=0,i=0;
i++)//统计对岸的商人数和随从数
tputcup2443"
输入回此岸商人的人数:
tputcup2543"
输入回此岸随从的人数:
tputcup2465"
back_b);
tputcup2565"
back_a);
if(back_b<
0||back_b>
bb||back_a<
0||back_a>
ba||back_a+back_b<
1||back_a+back_b>
2)//判断输入是否合法
tputcup2640"
printf("
按任意键重新开始...\n"
=back_b;
i++)//返回后的状态
=back_a;
i++)//计算返回后此岸的商人数和随从数
i++)//计算返回后彼岸的商人数和随从数
if((ab==3)||(bb==3)||(ab==aa)||(bb==ba))//判断是否会进一步继续进行
{
print_state(a,b);
else
system("
tputcup24,40"
tputcup30,0"
gotoStart;
voidmain()
process();