编程-有没有人帮我转换一下这代码???

问题描述

有没有人帮我转换一下这代码???

好像听说goto gett;相当于while语句,能不能帮我转换一下下面的代码,看得不是很懂。。

解决方案

是跳转的意思,把gett;标签下面的代码收拢成一个函数 gotoMethod(),然后在goto的地方写上
gotoMethod();
break;
即可

解决方案二:

goto gett;在你的代码中相当于break不相当于while

解决方案三:

漏了这张没上传,补上。。。。。。

解决方案四:

goto和while没有必然关系吧,goto语句一般用于跳出很深的循环比较好,否则不建议使用。像你的代码里执行到goto语句时不执行goto后面的语句而跳转到gett标签处

解决方案五:

goto不是跳转的意思?

解决方案六:

 #include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int x,y,i,j;
char *head,*tail,*belly, map[12][30];
char left,right,front,back;
void start()
{
    for (i=0; i!=12; ++i)
    {
        for (j =0; j!=30; ++j)
    {
        if ((i == 0)||(i == 11) || (j == 0) || (j == 29))
                map[i][j] = '9';
           else
                 map[i][j] ='0';
    }
    }
     x=15;
     y = 6;
     head = &map[y][x];
     belly=&map[y][x-1];
     tail=&map[y][x-2];
     *head ='1';
     *belly='3';
     *tail='5';
     front='6';
     back='4';
     left='2';
     right='8';
}
void draw()
{
    for (i=0; i!=12;++i)
   {
    for (j=0; j!=30; ++j)
    {
        switch(map[i][j])
        {
           case '0':printf(" ");break;
           case '9':printf("#");break;
           case '1':printf("O");break;
           case '2':printf(" ");break;
           case '3':printf("=");break;
           case '5':printf("~");break;
           }
    }
      printf("n");
   }
}
void turn(char direction)
{
    switch (direction)
   {
    case '2':--y;break;
    case '8':++y;break;
    case '4':--x;break;
    case '6':++x;break;
    }
}
void getturn()
{
    char t;
    while (kbhit())
    {
        t=getch();
        if (t==left)
        {
            turn(t);
            left=back;
            back=right;
            right=front;
            front=t;//front=left;不能这样写
            return;
       }
       else if (t==right)
    {
        turn(t);
        right=back;
        back=left;
        left=front;
        front=t;
         return;
    }
   }
   turn(front);
   return;
}
void move()
{
    *tail='2';
    tail=belly;
    *tail='5';
    belly=head;
    *belly='3';
/*  *head ='2';//该位置原来打印'o',现改为打印成' '*/
    head = &map[y][x];//改变指针指向
    *head='1';
}
int main()
{
    start();
    draw();
    while (1)
   {
    usleep(10000000/4);
    getturn();
    move();
    clrscr();
    draw();
    }
    return 0;
}
 #include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define H 16
// 高度high
#define W 24
// 宽度weight
#define N 4
// 难度,步时为(1/N)s
#define UP '2'
#define DOWN '5'
#define LEFT '4'
#define RIGHT '6'
// 自定义方向键…
void move();
void start();
void draw();
void getturn();
void getrand(int &a, int &b);
void turn(char direction);
int judge();
void getfood();
void getrock();
void over();
// 好多自定义函数…
int x, y;
// 蛇头坐标…
// x横坐标即列数,y纵坐标即行数…
int l = 0;// 蛇肚子长
int n, i, j, jg;
int x1, y1;
// 食物和石头的坐标…
char *head, *tail, *tt;
// 指向头尾,tt是临时的尾巴…
char map[H][W];
// 用二维数组存全图…
char *belly[H * W], *food, *rock;// 肚子食物和石头…
char left, right, front, back;
// 本人用的是前后左右移动…
int main()
{
start();
}

void start()// 开始…
{
for (i = 0; i != H; ++i)
for (j = 0; j != W; ++j)
{
if ((i == 0) || (i == H - 1) || (j == 0) || (j == W - 1))
map[i][j] = '9';
else
map[i][j] = '0';
}
x = W / 2, y = H / 2, l = 0;
head = &map[y][x + 1];
belly[l] = &map[y][x];
tail = &map[y][x - 1];
*head = '1';
*belly[0] = '2';
*tail = '3';
left = UP, right = DOWN;
front = RIGHT, back = LEFT;
turn(front);
getfood();
draw();
// 前面都是初始化,现在才开始…
do
{
usleep(10000000 / N);
// 步时为(1/N)s
getturn();
// 读取拐弯方向…
move();// 移动…
jg = judge();
// 判断头移到那了…
clrscr();// 清屏…
draw();// 重绘…
}
while (jg);// v1.2改,用返回值判断游戏是否结束…
clrscr();
return;// 游戏结束就返回,这句有没有都无所谓…
}

void getturn()
{
char t;
while (kbhit())// 判断有无输入值…
{
t = getch();// 有则捕获…
if (t == left)
// 判断方向并拐弯…
{
turn(left);
left = back;
back = right;
right = front;
front = t;
goto gett;
}
else if (t == right)
{
turn(right);
right = back;
back = left;
left = front;
front = t;
goto gett;
}
}
turn(front);
gett:;
while (kbhit())
t = getch();
// 把多输入的吃掉…
}

void getfood()// 来个吃的…
{
getrand(x1, y1);
// 食物要落在空地上…
food = &map[y1][x1];
*food = '4';
// 移指针并赋值…
getrock();
// 顺便来个石头…
// 不喜欢可以去掉…
}

void getrock()
{
getrand(x1, y1);
rock = &map[y1][x1];
// 要是正好石头就在面前只能说是运气不好了……
*rock = '8';
}

void getrand(int &a, int &b)
{
do
{
a = random() % (W - 2) + 1;
b = random() % (H - 2) + 1;
}
while (map[b][a] != '0');
}

void turn(char direction)
// 转向,想不到更好的单词了,直走也算turn…
{
switch (direction)
// 蛇头坐标先走…
{
case UP:
--y;
break;
case DOWN:
++y;
break;
case LEFT:
--x;
break;
case RIGHT:
++x;
break;
}

}

void move()
// 蛇肚子走…
{
tt = belly[l];
// 先临时的尾巴走…
for (i = l; i != 0; --i)// 挪动…
belly[i] = belly[i - 1];
belly[0] = head;
head = &map[y][x];
// 蛇肚子先走才走蛇头…
*belly[0] = '2';
// 蛇肚子2了……
}

int judge()
{
switch (*head)
{
case '2':;
case '8':;
case '9':
over();
return 0;// v1.2改…
// 咬肚子或撞墙死…
// 咬尾巴不算,尾巴马上走了…
break;
case '4':
getfood();
// 吃了还有…
++l;
belly[l] = tt;
// 伸长,真的尾巴就不用动了…
*head = '1';
// 蛇头跟上…
break;
case '0':
*tail = '0';
case '3':
*head = '1';
tail = tt;
*tail = '3';
// 没东西就让真尾巴也跟上…
//v1.1改,解决咬尾巴bug…
break;
}
return 1;
}

void draw()
{
for (i = 0; i != H; ++i)
{
for (j = 0; j != W; ++j)
switch (map[i][j])
{
case '0':
printf("  ");
break;
case '9':
printf("##");
break;
case '8':
printf("¤¤");
break;
// 石头…
case '1':
printf("@@");
break;
case '2':
printf("OO");
break;
case '3':
printf("oo");
break;
case '4':
printf("??");
break;
}
printf("n");
}
}

void over()
// game over!!!
{
printf("tGame over!!!n");
printf("ttAgain?n");
getch();
// 输入任意字符继续…
clrscr();
}
时间: 2024-09-15 08:11:56

编程-有没有人帮我转换一下这代码???的相关文章

编程-有没有人帮我检查下这个代码?

问题描述 有没有人帮我检查下这个代码? #include<stdio.h> #include<stdlib.h> #include<string.h> #define maxsize 5 struct student { int num; char name[30]; int english,computer,math,chinese; int rank; }; float aen,aco,ama,ach;int maxch,maxma,maxen,maxco,minc

求牛人帮我把这段代码改成C#的,谢谢

问题描述 #ifndefUSB_RELAY_DEVICE_H__#defineUSB_RELAY_DEVICE_H__#pragmacomment(lib,"setupapi.lib")#ifdef__cplusplusextern"C"{#endif//#pragmacomment(lib,"setupapi.lib")#ifdef_WIN32#defineEXPORT_API__declspec(dllexport)#else#defineE

msdn library-MSDN Library 查询问题。懂的人帮帮忙

问题描述 MSDN Library 查询问题.懂的人帮帮忙 10C 我是想通过MSDN library 查询window一些API.我已经自己整两三天了,在线查,离线下载也尝试了,但都没搞定.因为最近想学一些MFC.求懂的人指导一下(如果可以,加下我Q 617977267,指导一下我,感激不尽). 顺便问一下,VS2015有集成MSDN library??我发现VS08没有. 解决方案 你这不是已经查询出来了吗?msdn没有什么会不会用的问题,就像字典,没有谁不会用,只有谁看不懂字典里面的解释,

代码-有没有人帮我讲解下jsp的程序呢?实在是看不懂,网上搜索也了解了点

问题描述 有没有人帮我讲解下jsp的程序呢?实在是看不懂,网上搜索也了解了点 希望你们帮我讲讲整个代码的框架?怎么实现的,实在是看不懂,网上搜索也了解了点 解决方案 建议先看servlet,然后再了解jsp 解决方案二: JSP实际上就是是一个servlet程序,只是jsp把这个servlet封装起来,通过PrintWriter的方式,将你的jsp中的内容,以html的元素内容形式返回给页面 解决方案三: 通俗的讲,jsp就是服务端servlet运行代码的一种视图表现形式,你也可以理解为网页,只

仁人帮探索大数据技术

前两期小帮为大家介绍了仁人帮的大数据定义与大数据在仁人帮后台的应用.今天也不跟大家卖关子了,接下来,小帮为大家奉上的是大数据平台技术的探索. 大数据技术,小帮认为可以分成两个大的层面,大数据平台技术与大数据应用技术.要使用大数据,你先必须有计算能力,大数据平台技术包括了数据的采集,存储,流转,加工所需要的底层技术,如hadoop生态圈,数加生态圈. 数据的应用技术是指对数据进行加工,把数据转化成商业价值的技术,如算法,以及由算法衍生出来的模型,引擎,接口,产品等等.这些数据加工的底层平台,包括平

找人帮我搞下东西

问题描述 我朋友搞了一个ASP的很简单的邮箱,他不是搞开发的也不知道是哪搞过来的,邮箱登入不上去,现在请人帮我登上邮箱就行了,论坛不能发附件,哪位有空加我QQ646400899最号晚上9点前来,万分感谢 解决方案 解决方案二:利用组件编写的吧解决方案三:不清楚我没学ASP解决方案四:有钱赚么?解决方案五:该回复于2011-11-03 17:02:07被版主删除解决方案六:这里不是免费给人干活的地方.你自己找个你会的语言做的邮箱就是了.解决方案七:google上找..解决方案八:AD贴!解决方案九

希望有个 java 牛人帮我解决

问题描述 希望有个 java 牛人帮我解决 1.在 java 程序中如何让 String 中的字符串当作程序来运行2.如何通过代码来让. java 文件编译成 class 字节码文件.注 如果可以请附上代码,或者给出思路,小弟会十分感谢.小弟初入此行半年,还没有c 币,希望大家支持下,谢谢 解决方案 我不是牛人,我的理解楼主的第一个问题,是不是想要个Js里的eval()方法,这是别人写的代码,直接上代码.哈哈实现步骤: 1.自定义一个Java类,该Java类中定义一个方法来包含需要被运行的代码.

设计-C语言编程实现FFT,帮帮忙吧

问题描述 C语言编程实现FFT,帮帮忙吧 课题要求: 利用C实现FFT,本程序旨在训练基本编程能力.本设计需按照以下要求进行: (1).?C语言编程产生时域离散信号: (2).?编制基2时域抽取FFT算法.基2频域抽取FFT算法: (3).?对离散信号进行FFT变换,进行频谱分析并和Matlab频谱分析对比: 解决方案 参考:http://wenku.baidu.com/link?url=hZqdMY5CfSTvri7UdSc26d7WREtXm1M40jV21UytswuGJsjMJuIKgE

查询多对多sql语句写法 悬赏190 请人帮帮忙!! 急啊、、

问题描述 查询多对多sql语句写法 悬赏190 请人帮帮忙!! 急啊.. 一个是众酬表,一个是会员表,还有个这两者的中间表. 会员可以参与多个众酬 众酬可以被多个会员参与 1.会员角度:会员登录,要查询当前所有的众酬列表并且标记哪些众酬当前会员已参与 2.众酬角度:进入某个众酬详情可罗列当前参与此众酬的会员列表 解决方案 这取决于众筹表怎么设计 解决方案二: select *,(select count(1) from 众筹会员表 where id=z.id) as canyu from 众筹表