“二十一天好习惯”第一期-19

前言:

今天继续昨天的石头剪刀布的小项目,今天做个升级版,比昨天难度稍微大点,用别的更高级的语句取代了if语句,同时优化了操作界面增加了提示界面,让我们一起看看是怎么做到的把。

代码1(界面设置):

while (1) 
    {
        printf("这个小游戏是——剪刀石头布,\n你要出:\n");
        printf("A:剪刀\nB:石头\nC:布\n");
        scanf("%c", &Gamer);
        switch (Gamer) 
        {
        case 'A': 
            gamer = 4; 
            break;
        case 'B': 
            gamer = 7; 
            break;
        case 'C': 
            gamer = 10; 
            break;
        default:
            printf("你的选择为%c\n选择错误,退出...\n", Gamer);
            system("pause");
            return 0;
            break; 
        }

解析:

这个游戏界面其实非常简单,用一个while语句输出提示词,然后根据玩家输出字母A,B,C代表石头剪刀布,然后用Switch语句来做分支把各个情况的出拳化为一个值便于后面与电脑作比较判断。

代码2(电脑随机种子与判断胜负):

srand((unsigned)time(0));//每一次的seed都不同
        computer = rand() % 3+1;
        result = gamer + computer;
        printf("电脑出了:");
        switch (computer)
        {
        case 3:printf("剪刀\n"); break;
        case 1:printf("石头\n"); break;
        case 2:printf("布\n"); break;
        }
        printf("你出了:");
        switch (gamer)
        {
        case 4:printf("剪刀\n"); break;
        case 7:printf("石头\n"); break;
        case 10:printf("布\n"); break;
        }
        if (result == 6 || result == 10 || result == 11)
            printf("你赢了!");
        else if (result == 5 || result == 9 || result == 13) 
            printf("电脑赢了!");
        else 
            printf("平手");
        system("pause>nul&&cls"); //清屏
    } 

 解析:

同样的这里用Switch语句优化了昨天大量使用if else的情况,使代码更加简洁移动,另外在电脑出拳后会显示当前电脑的出拳情况之后输出胜负情况,更加让人一目了然。最后使用了system("pause>nul&&cls");函数实现清空屏幕的操作,从而完成任务。

小结:

其实今天的升级版相对于昨天最大的区别在于对于if else语句的优化,一个好的程序要避免大量使用if else语句,否则可读性会大大降低。所以代码不仅要完成相应功能最好要简洁易懂,这样在工作才会更高效。今天的分享就到这里,明天准时更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值