游戏开发论坛

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: 在梅边饿

应届生游戏工作好难找。。

[复制链接]

2

主题

17

帖子

28

积分

注册会员

Rank: 2

积分
28
 楼主| 发表于 2006-12-30 17:50:00 | 显示全部楼层

Re:一个应届毕业生的不归路。。。

也有可能是这样的规律:
// PBox.cpp : Defines the entry point for the console application.
/*
方格生成程序 by xmxoxo
  题目:
如下图所示:把该图存于int data[10][10]中,请用代码实现
1  2  3  4  5
22 21 20 19  6
23 24 25 18  7
14 15 16 17  8
13 12 11 10  9

*/

#include "stdafx.h"
#include "stdlib.h"
#include "iostream.h"
#include "iomanip.h"

//最大100
int data[10][10];
int dire[4][2]={{0,-1},
{1,0},{0,1},{-1,0}};

void init()
{
int i,j;
for (i=0;i<10;i++)
{
for (j=0;j<10;j++)
{
data[j]=0;
}
}
}
//生成K方格
void gen(int k)
{
int x,y,n,d,ct,s;
x = -1; //初始坐标 -1,0
y = 0;
d = 1; //初始方向1
n = 1; //要填的数
ct = 0; //转弯计数器
s=0; //标志
while (n<=k*k)
{
//计算下一个位置
x = x + dire[d][0];
y = y + dire[d][1];
//判断超出
if ((x>=k||x<0)||(y>=k||y<0))
{
//,超出则退回原位
x = x -  dire[d][0];
y = y - dire[d][1];
//转方向
d++;
if (d==4){d=0;}
s = 1;
continue;
}
//有数字
if (data[x][y]!=0)
{
//退回原位
x = x -  dire[d][0];
y = y - dire[d][1];
//转方向
d++;
if (d==4){d=0;}
s=1;
continue;
}
//判断下一个位置
//为空,则填入数
if (data[x][y]==0)
{
data[x][y] = n;
n++;
if (s==1)
{
ct++;
if (ct==4){ct=0;}
s=0;
}
//如果是第3次转向
if (ct==3)
{
//填写一个数后立即转下一个方向
d++;
if (d==4){d=0;}
s=1;
}
continue;
}
}
}

//输出
void out(int k)
{
int i,j;
for (i=0;i<k;i++)
{
for (j=0;j<k;j++)
{
cout <<setw(4) << data[j];
}
cout<<endl;
}
}

int main()
{
int m;
while (1)
{
cout<< "请输入2-10之间的数[0退出]:";
cin>>m;
if (m==0)
{
break;
}
if (m<=10||m>=2)
{
init();
gen(m);
out(m);
}
}
return 0;
}

结果:

请输入2-10之间的数[0退出]:5
   1   2   3   4   5
  22  21  20  19   6
  23  24  25  18   7
  14  15  16  17   8
  13  12  11  10   9
请输入2-10之间的数[0退出]:9
   1   2   3   4   5   6   7   8   9
  46  45  44  43  42  41  40  39  10
  47  48  49  50  51  52  53  38  11
  76  75  74  73  72  71  54  37  12
  77  78  79  80  81  70  55  36  13
  64  65  66  67  68  69  56  35  14
  63  62  61  60  59  58  57  34  15
  26  27  28  29  30  31  32  33  16
  25  24  23  22  21  20  19  18  17
请输入2-10之间的数[0退出]:0
Press any key to continue

2

主题

17

帖子

28

积分

注册会员

Rank: 2

积分
28
 楼主| 发表于 2006-12-30 17:54:00 | 显示全部楼层

Re:一个应届毕业生的不归路。。。

去掉对ct的判断,就是“回”字形了
请输入2-10之间的数[0退出]:10
   1   2   3   4   5   6   7   8   9  10
  36  37  38  39  40  41  42  43  44  11
  35  64  65  66  67  68  69  70  45  12
  34  63  84  85  86  87  88  71  46  13
  33  62  83  96  97  98  89  72  47  14
  32  61  82  95 100  99  90  73  48  15
  31  60  81  94  93  92  91  74  49  16
  30  59  80  79  78  77  76  75  50  17
  29  58  57  56  55  54  53  52  51  18
  28  27  26  25  24  23  22  21  20  19
─────────┐
┌───────┐│
│┌─────┐││
││┌───┐│││
│││┌─┐││││
││││─┘││││
│││└──┘│││
││└────┘││
│└──────┘│
└────────┘

2

主题

17

帖子

28

积分

注册会员

Rank: 2

积分
28
 楼主| 发表于 2006-12-30 17:55:00 | 显示全部楼层

Re:一个应届毕业生的不归路。。。

结贴了。。。
问题已经全解答了,谢谢大家

23

主题

63

帖子

68

积分

注册会员

Rank: 2

积分
68
发表于 2006-12-30 17:57:00 | 显示全部楼层

Re:一个应届毕业生的不归路。。。

让我用"虫子理论"解决一下这个问题:
有一只虫子,它最喜欢的事情就是向右走,最害怕的事情就是向左走,因为一旦它向左走了一步,就被强迫必须要向左走到头.所以在它不能向右走的时候,它会尝试向上或者向下走.(到底向上还是向下呢?不用担心,因为它总是"靠边"走,所以上下只有一个方向可以走)
用"虫子理论"衍生出的代码如下:
#include <stdio.h>

typedef enum _Direction
{
        right,
        down,
        left,
        up
}Direction;

int g_array[5][5];
int g_nX = 0, g_nY = 0;
Direction g_dir = right;

void GetNextPos()
{
        if (g_dir == left && (g_nX != 0 && g_array[g_nY][g_nX-1] == 0)        )        //被迫向左
        {       
                g_nX--;
        }
        else if ( g_nX != 4 && g_array[g_nY][g_nX+1] == 0 )                // 向右
        {       
                g_nX++;               
                g_dir = right;
        }
        else if ( g_nY != 4 && g_array[g_nY+1][g_nX] == 0 )                                // 向下
        {
                g_nY++;
                g_dir = down;
        }
        else if ( g_nY != 0 && g_array[g_nY-1][g_nX] == 0 )                                        // 向上
        {
                g_nY--;
                g_dir = up;
                return;
        }
        else                        // 只能向左
        {
                g_nX--;
                g_dir = left;
        }

}
void FillPathArray()
{
        for (int i=0; i<25; i++)
        {
                g_array[g_nY][g_nX] = i+1;               
                if (i == 24) return;
                GetNextPos();
        }
}

int main()
{
        FillPathArray();
        for (int i = 0; i < 5; i++)
        {
                for (int j = 0; j < 5; j++)
                {
                        printf("%4d", g_array[j]);
                }
                printf("\n");
        }

        return 0;
}

31

主题

278

帖子

298

积分

中级会员

Rank: 3Rank: 3

积分
298
发表于 2006-12-30 19:38:00 | 显示全部楼层

Re:一个应届毕业生的不归路。。。

这个问题在考试中遇到,没见过,还是得寒一下

39

主题

170

帖子

170

积分

注册会员

Rank: 2

积分
170
发表于 2006-12-30 22:09:00 | 显示全部楼层

Re: 一个应届毕业生的不归路。。。

  楼主,努力,不久,大门将向你打开。 [em20]

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
发表于 2006-12-31 20:32:00 | 显示全部楼层

Re:一个应届毕业生的不归路。。。

感觉楼主学的挺多的,不过不知道有没有一个重点,或者说有没有打算将来重点在哪方面发展,比较游戏编程除了图形编程,还有其他的内容。

154

主题

4567

帖子

4579

积分

论坛元老

Rank: 8Rank: 8

积分
4579
QQ
发表于 2007-1-1 11:02:00 | 显示全部楼层

Re:一个应届毕业生的不归路。。。

看过24楼的回复,恍然大悟。还能这么想  [em5]

2

主题

17

帖子

28

积分

注册会员

Rank: 2

积分
28
 楼主| 发表于 2007-1-1 11:14:00 | 显示全部楼层

Re:一个应届毕业生的不归路。。。

恩。我方向还是满明确的。。主要针对客户端那一方面
我们这专业跟NIIT合作。。学了一堆J2EE,ASP.net,SQL软件工程师这方面的
总之在学校里,我几乎都在学习。。这2年半过的很充实。。现在进入游戏行业估计还有段距离。我会努力赶上的。
我打算先吃父母的一段日子,认真学上3个月。把基础,技术磨练下,做个好的成品,然后再尝试找游戏工作。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 04:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表