



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include <stdio.h>#include <stdlib.h>#include <string.h>void basic_interface()/基本界面system("clear");system("tput cup 5 20");printf("=n ");system("tput cup 6 20");printf("*n");system("tput cup 7 20");printf("*_欢迎使用商人过河游
2、戏!_*n");system("tput cup 8 20");printf("*n");system("tput cup 9 20");游戏说明*n");system("tput cup 10 20");printf("* 三个商人带着三个随从和货物过河,船每次最多只能载两个人,要求在过河期间,任一岸上商人的人数*n");system("tput cup 11 20");printf("* 要大于或等于随从的人数,否则随从会杀掉商人抢走货物。*
3、n");system("tput cup 12 20");printf("*n");system("tput cup 13 20");printf("*游戏操作 :*n");system("tput cup 14 20 ");printf("*( 1)依次输入过河的商人和随从人数; *n");system("tput cup 15 20");printf("*( 2)非法输入按键将重新开始。*n");system("
4、tput cup 16 20");printf("*-*n");system("tput cup 1720");printf("*n");system("tput cup 17113");printf("*n");system("tput cup 1820");printf("*n");system("tput cup 18113");printf("*n");system("tput cup 1
5、920");printf("*n");system("tput cup 19113");printf("*n");system("tput cup 2020");printf("*n");system("tput cup 20113");printf("*n");system("tput cup 2120");printf("*n");system("tput cup 21113");p
6、rintf("*n");system("tput cup 2220");printf("*n");system("tput cup 22113");printf("*n");system("tput cup 2320");printf("*n");system("tput cup 23113");printf("*n");system("tput cup 2420");printf("*
7、n");system("tput cup 24113");printf("*n");system("tput cup 2520");printf("*n");system("tput cup 25113");printf("*n");system("tput cup 2620");printf("*n");system("tput cup 26113");printf("*n");sys
8、tem("tput cup 2720");printf("*n");system("tput cup 27113");printf("*n");system("tput cup 28 20"); printf("*n");char a6;/此岸char b6;/彼岸void print_state(char a,char b)/ 打印渡河状态int i,j,ab,aa,ba,bb;/ab此岸商人数, aa此岸随从数bb彼岸商人数,ba,彼岸随从数aa=ab=ba=bb=0;b
9、asic_interface() ;system("tput cup 18 40");printf("system("tput cup 19 40");printf("system("tput cup 18 73");printf("system("tput cup 19 73");printf("此岸商人数: n");此岸随从数: n");彼岸商人数 : n");彼岸随从数: n");for(i=0;i<6;i+)/计算此岸商人
10、数和随从数if(ai='B')ab+;else if (ai='A')aa+;system("tput cup 18 53");printf("%dn",ab);/输出此岸商人数system("tput cup 19 53");printf("%dn",aa);/输出此岸随从数for(j=0;j<6;j+)/计算彼岸商人数和随从数if(bj='B')bb+;else if(bj='A')ba+;system("tput cup 18 8
11、6");printf("%dn",bb);/输出彼岸商人数system("tput cup 19 86");printf("%dn",ba);/输出彼岸随从数if(ab=0 && aa=0 && bb=3 && ba=3)/ 判断是否渡河成功system("tput cup 23 40");printf(" 恭喜你!你已成功帮助商人安全过河!按任意键退出 .n");system("tput cup 30 0");get
12、char();system("clear");exit(0);void process()int i,j,go_b,go_a,back_b,back_a,ab,aa,bb,ba;/go_b, 过去商人数, go_a, 过去随从数, back_b, 回来商人数, back_a, 回来随从数,char ch;Start:basic_interface();system("tput cup 20 40");printf(" 请按任意键开始游戏(按 Q键退出) ."); ch=getchar();if(ch='Q'|ch=
13、39;q')system("clear");exit(0);for(i=0;i<3;i+)ai='B'for(i=3;i<6;i+)ai='A'for(i=0;i<6;i+)bi='0'print_state(a,b);while(1)/ 过去for(ab=0,aa=0,i=0;i<6;i+)/计算此岸的商人数和随从数if(ai='B')ab+;else if(ai='A')aa+;system("tput cup 21 43");printf
14、("输入去彼岸商人的人数:n");system("tput cup 22 43");printf("输入去彼岸随从的人数:n");system("tput cup 21 65");scanf("%d",&go_b);/输入去彼岸的商人数getchar();system("tput cup 22 65");输入去彼岸的随从数getchar();if(go_b<0 | go_b>ab | go_a<0 | go_a>aa |go_a+go_b<
15、;1 |go_a+go_b>2)/输入不合法system("tput cup 24 40");printf("输入有误!按任意键重新开始.");getchar();goto Start;for(i=1;i<=go_b;i+)/过河后两边的状态for(j=0;j<6;j+)if(aj='B')aj='0'break;for(i=1;i<=go_b;i+)for(j=0;j<6;j+)if(bj='0')bj='B'break;for(i=1;i<=go_a;
16、i+)for(j=0;j<6;j+)if(aj='A')aj='0'break;for(i=1;i<=go_a;i+)for(j=0;j<6;j+)if(bj='0')bj='A'break;for(aa=0,ab=0,i=0;i<6;i+)/统计过河后 a 岸的商人数和随从数if(ai='A')aa+;else if(ai='B')ab+;for(ba=0,bb=0,i=0;i<6;i+)/统计过河后 b 按的商人数和随从数if(bi='A')ba+;
17、else if(bi='B')bb+;if(ab=3) |(bb=3) | (ab=aa) | (bb=ba)/ 可以继续下一步的条件print_state(a,b);elsesystem("tput cup 24 40");printf("商人被杀,按任意键重新开始.n");system("tput cup 30 0");getchar();goto Start;/ 回来for(bb=0,ba=0,i=0;i<6;i+) /统计对岸的商人数和随从数if(bi='B')bb+;else if(bi
18、='A')ba+;system("tput cup 24 43");printf("输入回此岸商人的人数:n");system("tput cup 25 43");printf("输入回此岸随从的人数:n");system("tput cup 24 65");scanf("%d",&back_b);system("tput cup 25 65");scanf("%d",&back_a);if(back_b
19、<0 | back_b>bb | back_a<0 | back_a>ba | back_a+back_b<1 | back_a+back_b>2) /判断输入是否合法system("tput cup 26 40");printf("输入有误!按任意键重新开始.n");system("tput cup 30 0");getchar();goto Start;for(i=1;i<=back_b;i+)/返回后的状态for(j=0;j<6;j+)if(bj='B')bj='0'break;for(i=1;i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金融中介员工合同范本
- 微水泥施工合同范本
- 出售废旧木房合同范本
- 订购超市卡合同范本
- 广告安装施工合同范本
- 旅行社知识培训课件
- 厂房买卖合同范例附件
- 上市企业用工合同范例
- 华源股合同范例
- 代理店铺经营合同范例
- 幼小衔接课件科学-认识昆虫模板
- 腋窝入路腔镜甲状腺手术
- 2024年贵州省黔东南州中考英语一模试卷
- 新学位法专题讲座课件
- 小学科学湘科版六年级下册全册同步练习含答案
- (2024年)传染病培训课件
- 供应商环境与社会责任管理制度
- 三年级下册混合计算400题及答案
- 第15练 非连续性文本阅读【含答案解析】【分层培优拓展】 七年级语文上册 重点知识提升专练(部编版)
- 如何做经营分析会
- 消防安全与火灾事故案例
评论
0/150
提交评论