| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1801 人关注过本帖
标题:求助大佬 这个输出是什么原因呢??/
只看楼主 加入收藏
coutprintf
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2019-5-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
求助大佬 这个输出是什么原因呢??/
程序代码:
#include<stdio.h>
#include<stdlib.h>//system
#include<windows.h>//sleep
#include<conio.h>//kbhit getch


 

 void HideCursor()
{
    CONSOLE_CURSOR_INFO cursor_info={1,0};
    SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);    
}

 

 

 

 int main()

 { int i,j,position_width,position_height;

 int bullet_x,bullet_y;

 int enemy_x,enemy_y;

 int width,height;

 int d,enemy_xx;

 enemy_xx=1;

 int speed=0;

 char input;

 d=0;

 width=33;

 height=20;

 position_width=width/2;

 position_height=height/2;
  enemy_x=position_width-1;

 enemy_y=position_height-1;

 bullet_x=0;

 bullet_y=0;

 

 while(1)

 {  HideCursor();
    system("cls");
   for(i=0;i<height;i++)
    {for(j=0;j<width;j++)
          {
          if((i==position_height)&&(j==position_width))
           printf("*");
           if((i==bullet_y)&&(j==bullet_x))
           { printf("|");
          }
          if((i==00)&&(j==29))
          printf("得分=%d",d);
          if((i==enemy_y)&&(j==enemy_x))
           printf("@");     
          else
          printf(" ");
         }
          printf("\n");
      }
      
         if(speed<10)
         speed++;
         if(speed==2)
         { 
         enemy_x=enemy_x+enemy_xx;
          speed=0;
         }
         
         if((enemy_y==bullet_y)&&(enemy_x==bullet_x))
             {
             d=d+1;
         enemy_y=rand()%19;
          enemy_x=rand()%32;
             } 
        if(bullet_y>-1)
           bullet_y--; 
         if(width==position_width)
              position_width=width-1;
         if(height==position_height)
              position_height=height-1;
         if((enemy_x>width)||(enemy_x<0)) 
              enemy_xx=-enemy_xx;

            
          
          
         if(kbhit())
         { input=getch();
           if(input=='a')
            position_width--;
           if(input=='d')
           position_width++;
           if(input=='w')
            position_height--;
           if(input=='s')
           position_height++;
          if(input=='j')
          {
          bullet_x=position_width;
          bullet_y=position_height-1;
          } 
         }
         
        if((enemy_x==position_width)&&(enemy_y==position_height))
        {
            break;
        }
         
         
         
         
         } 
     system("cls");
     printf("game over");
     
     
     
     

 } 








搜索更多相关主题的帖子: 原因 include int input printf 
2019-05-02 17:33
coutprintf
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2019-5-2
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册

 我想设置@自动移动 但是    if(speed==2)
         {
         enemy_x=enemy_x+enemy_xx;
          speed=0;
         }
 时 @就出屏消失 了
 speed==3 或者==1时 就是好的
==2时就出屏了
2019-05-02 17:37
liuxiao63
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2019-5-2
收藏
得分:0 
我只能说有心无力!
2019-05-02 17:42
coutprintf
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2019-5-2
收藏
得分:0 
2019-05-03 17:01
coutprintf
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2019-5-2
收藏
得分:0 
2019-05-04 09:59
打大龙
Rank: 2
等 级:论坛游民
威 望:1
帖 子:8
专家分:64
注 册:2019-4-14
收藏
得分:20 
speed=1,每次循环执行enemy_x = enemy_x + enemy_xx;
speed=2,每2次循环执行enemy_x = enemy_x + enemy_xx;
speed=3,每3次循环执行enemy_x = enemy_x + enemy_xx;

if ((enemy_x > width) || (enemy_x < 0))
            enemy_xx = -enemy_xx;
        
这一段是用来判断增量符号,当speed=2,enemy_x > width时,每2次循环enemy_xx符号变了2次,所以增量一直是正的,enemy_x一直在增加,@当然打印不出来了
2019-05-04 11:28
coutprintf
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2019-5-2
收藏
得分:0 
回复 6楼 打大龙
谢谢 大佬解答 = =
2019-05-06 20:50
快速回复:求助大佬 这个输出是什么原因呢??/
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031733 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved