商人过河C语言程序编程.docx

上传人:b****4 文档编号:4456733 上传时间:2022-12-01 格式:DOCX 页数:11 大小:16.26KB
下载 相关 举报
商人过河C语言程序编程.docx_第1页
第1页 / 共11页
商人过河C语言程序编程.docx_第2页
第2页 / 共11页
商人过河C语言程序编程.docx_第3页
第3页 / 共11页
商人过河C语言程序编程.docx_第4页
第4页 / 共11页
商人过河C语言程序编程.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

商人过河C语言程序编程.docx

《商人过河C语言程序编程.docx》由会员分享,可在线阅读,更多相关《商人过河C语言程序编程.docx(11页珍藏版)》请在冰豆网上搜索。

商人过河C语言程序编程.docx

商人过河C语言程序编程

#include

#include

#include

voidbasic_interface()//基本界面

{

system("clear");

system("tputcup520");

printf("==============================================================================================\n");

system("tputcup620");

printf("**\n");

system("tputcup720");

printf("*^_^欢迎使用商人过河游戏!

^_^*\n");

system("tputcup820");

printf("**\n");

system("tputcup920");

printf("*游戏说明:

*\n");

system("tputcup1020");

printf("*三个商人带着三个随从和货物过河,船每次最多只能载两个人,要求在过河期间,任一岸上商人的人数*\n");

system("tputcup1120");

printf("*要大于或等于随从的人数,否则随从会杀掉商人抢走货物。

*\n");

system("tputcup1220");

printf("**\n");

system("tputcup1320");

printf("*游戏操作:

*\n");

system("tputcup1420");

printf("*

(1)依次输入过河的商人和随从人数;*\n");

system("tputcup1520");

printf("*

(2)非法输入按键将重新开始。

*\n");

system("tputcup1620");

printf("*--------------------------------------------------------------------------------------------*\n");

system("tputcup1720");printf("*\n");system("tputcup17113");printf("*\n");

system("tputcup1820");printf("*\n");system("tputcup18113");printf("*\n");

system("tputcup1920");printf("*\n");system("tputcup19113");printf("*\n");

system("tputcup2020");printf("*\n");system("tputcup20113");printf("*\n");

system("tputcup2120");printf("*\n");system("tputcup21113");printf("*\n");

system("tputcup2220");printf("*\n");system("tputcup22113");printf("*\n");

system("tputcup2320");printf("*\n");system("tputcup23113");printf("*\n");

system("tputcup2420");printf("*\n");system("tputcup24113");printf("*\n");

system("tputcup2520");printf("*\n");system("tputcup25113");printf("*\n");

system("tputcup2620");printf("*\n");system("tputcup26113");printf("*\n");

system("tputcup2720");printf("*\n");system("tputcup27113");printf("*\n");

system("tputcup2820");

printf("**********************************************************************************************\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");printf("此岸商人数:

\n");

system("tputcup1940");printf("此岸随从数:

\n");

system("tputcup1873");printf("彼岸商人数:

\n");

system("tputcup1973");printf("彼岸随从数:

\n");

for(i=0;i<6;i++)//计算此岸商人数和随从数

{

if(a[i]=='B')

ab++;

elseif(a[i]=='A')

aa++;

}

system("tputcup1853");

printf("%d\n",ab);//输出此岸商人数

system("tputcup1953");

printf("%d\n",aa);//输出此岸随从数

for(j=0;j<6;j++)//计算彼岸商人数和随从数

{

if(b[j]=='B')

bb++;

elseif(b[j]=='A')

ba++;

}

system("tputcup1886");

printf("%d\n",bb);//输出彼岸商人数

system("tputcup1986");

printf("%d\n",ba);//输出彼岸随从数

if(ab==0&&aa==0&&bb==3&&ba==3)//判断是否渡河成功

{

system("tputcup2340");

printf("恭喜你!

你已成功帮助商人安全过河!

按任意键退出...\n");

system("tputcup300");

getchar();

system("clear");

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();

system("tputcup2040");

printf("请按任意键开始游戏(按Q键退出)...");

ch=getchar();

if(ch=='Q'||ch=='q')

{

system("clear");

exit(0);

}

for(i=0;i<3;i++)

a[i]='B';

for(i=3;i<6;i++)

a[i]='A';

for(i=0;i<6;i++)

b[i]='0';

print_state(a,b);

while

(1)

{

//过去

for(ab=0,aa=0,i=0;i<6;i++)//计算此岸的商人数和随从数

{

if(a[i]=='B')

ab++;

elseif(a[i]=='A')

aa++;

}

system("tputcup2143");

printf("输入去彼岸商人的人数:

\n");

system("tputcup2243");

printf("输入去彼岸随从的人数:

\n");

system("tputcup2165");

scanf("%d",&go_b);//输入去彼岸的商人数

getchar();

system("tputcup2265");

scanf("%d",&go_a);//输入去彼岸的随从数

getchar();

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");

printf("输入有误!

按任意键重新开始...");

getchar();

gotoStart;

}

for(i=1;i<=go_b;i++)//过河后两边的状态

{

for(j=0;j<6;j++)

if(a[j]=='B')

{

a[j]='0';

break;

}

}

for(i=1;i<=go_b;i++)

{

for(j=0;j<6;j++)

if(b[j]=='0')

{

b[j]='B';

break;

}

}

for(i=1;i<=go_a;i++)

{

for(j=0;j<6;j++)

if(a[j]=='A')

{

a[j]='0';

break;

}

}

for(i=1;i<=go_a;i++)

{

for(j=0;j<6;j++)

if(b[j]=='0')

{

b[j]='A';

break;

}

}

for(aa=0,ab=0,i=0;i<6;i++)//统计过河后a岸的商人数和随从数

{

if(a[i]=='A')

aa++;

elseif(a[i]=='B')

ab++;

}

for(ba=0,bb=0,i=0;i<6;i++)//统计过河后b按的商人数和随从数

{

if(b[i]=='A')

ba++;

elseif(b[i]=='B')

bb++;

}

if((ab==3)||(bb==3)||(ab==aa)||(bb==ba))//可以继续下一步的条件

{

print_state(a,b);

}

else

{

system("tputcup2440");

printf("商人被杀,按任意键重新开始...\n");

system("tputcup300");

getchar();

gotoStart;

}

//回来

for(bb=0,ba=0,i=0;i<6;i++)//统计对岸的商人数和随从数

{

if(b[i]=='B')

bb++;

elseif(b[i]=='A')

ba++;

}

system("tputcup2443");

printf("输入回此岸商人的人数:

\n");

system("tputcup2543");

printf("输入回此岸随从的人数:

\n");

system("tputcup2465");

scanf("%d",&back_b);

system("tputcup2565");

scanf("%d",&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)//判断输入是否合法

{

system("tputcup2640");

printf("输入有误!

按任意键重新开始...\n");

system("tputcup300");

getchar();

gotoStart;

}

for(i=1;i<=back_b;i++)//返回后的状态

{

for(j=0;j<6;j++)

if(b[j]=='B')

{

b[j]='0';

break;

}

}

for(i=1;i<=back_b;i++)

{

for(j=0;j<6;j++)

if(a[j]=='0')

{

a[j]='B';

break;

}

}

for(i=1;i<=back_a;i++)

{

for(j=0;j<6;j++)

if(b[j]=='A')

{

b[j]='0';

break;

}

}

for(i=1;i<=back_a;i++)

{

for(j=0;j<6;j++)

if(a[j]=='0')

{

a[j]='A';

break;

}

}

for(ab=0,aa=0,i=0;i<6;i++)//计算返回后此岸的商人数和随从数

{

if(a[i]=='B')

ab++;

elseif(a[i]=='A')

aa++;

}

for(bb=0,ba=0,i=0;i<6;i++)//计算返回后彼岸的商人数和随从数

{

if(b[i]=='B')

bb++;

elseif(b[i]=='A')

ba++;

}

if((ab==3)||(bb==3)||(ab==aa)||(bb==ba))//判断是否会进一步继续进行

{

print_state(a,b);

}

else

{

system("tputcup24,40");

printf("商人被杀,按任意键重新开始...\n");

system("tputcup30,0");

getchar();

gotoStart;

}

}

}

 

voidmain()

{

process();

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1