写了一天写出个这玩意 好为难啊白瞎学了一个月
来源:互联网 发布:linux maven 打包war 编辑:程序博客网 时间:2024/05/17 01:05
#include <stdio.h>
#include <Windows.h>
#include <conio.h>
#include <time.h>
void food();
void add();
void food();
void print();
void move();
void right();
void left();
void up();
void down();
int a,b,a3,b3;
int a1,b1;
int len = 1;
bool over = false;
bool eat = false;
bool inter = false;
int ctimes = 500;
int map[15][25] =
{
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
};
struct Snake
{
int a2;
int b2;
Snake* next;
};
Snake m_head = {0,0,0};
//吃掉或者撞墙碰到自己
void Judge(Snake* obj)
{
Snake* p = obj;
if(p->a2 == a3&&p->b2== b3)
{
eat = true;
len++;
}
else
{
p = p->next;
for(int i=0;i<(len -2);i++)
{
if((p->a2 == a)&&(p->b2 ==b))
{
over = true;
break;
}
p++;
}
}
}
//把这个点带入到
void add(Snake* obj)
{
obj->next = m_head.next;
m_head.next = obj;
Judge(obj);
}
//申请一个位置
void Spaces()
{
Snake* obj1 = (Snake*)malloc (sizeof(Snake));
obj1->a2 = a;
obj1->b2 = b;
add(obj1);
if(!eat)
{
Snake* p= &m_head;
for(int i = 0;i<len;i++)
{
p = p->next;
}
map[p->a2][p->b2] = 0;
free(p);
}
else
{
eat = false;
food();
while (inter)food();
inter = false;
ctimes-=20;
}
}
//生成一个豆子
void food()
{
bool inter = false;
srand(time(NULL));
a3 = 1 + (rand() % 13);
b3 = 1 + ((rand() *11) % 23);
map[a3][b3] = 2;
Snake *p = m_head.next;
for(int i = 0;i<len;i++)
{
if((a3 == p->a2)&&(b3 == p->b2))
inter = true;
}
}
//打印地图
void print()
{
printf("* Copyright (c) 2016,12,22\n* All rights \n* 作 者:ministory \n* 完成日期:2016 年 12 月 22 日\n* 版 本 号:v1.0 \n* 问题描述:编程序,输出一个贪吃蛇程序 \n*问题很多,求大神指教!\n");
for(int x = 0;x < 15;x++)
{
for(int y = 0;y < 25;y++)
{
if(map[x][y] == 0)printf(" %c ",46);
if(map[x][y] == 2)printf(" %c ",4);
if(map[x][y] == 1)printf(" %c ",'#');
}
printf("\n");
}
}
//控制向上走
void up()
{
if(1!=map[a-1][b])
{
a1=a;
b1=b;
a=a-1;
map[a][b] = 2;
}
else over = true;
}
//控制向下走
void down()
{
if(1!=map[a+1][b])
{
a1=a;
b1=b;
a=a+1;
map[a][b] = 2;
}
else over = true;
}
//控制向左走
void left()
{
if(1!=map[a][b-1])
{
a1=a;
b1=b;
b=b-1;
map[a][b] = 2;
}
else over = true;
}
//控制向右走
void right()
{
if(1!=map[a][b+1])
{
a1=a;
b1=b;
b=b+1;
map[a][b] = 2;
}
else over = true;
}
//移动蛇的方向
void move()
{
char ch = 's';
char ch1 = ch;
while(!over)
{
while(kbhit()!=0)
{
ch = getch();
if(isascii(ch))continue;
ch = getch();
}
if (ch == 'w'||ch == 72||ch == 's'||ch == 80||ch == 'a'||ch == 75||ch == 'd'||ch == 77) ch1 = ch;
if(ch1 == 'w'||ch1 == 72)up();
if(ch1 == 's'||ch1 == 80)down();
if(ch1 == 'a'||ch1 == 75)left();
if(ch1 == 'd'||ch1 == 77)right();
system("cls");
print();
Spaces();
Sleep(ctimes);
}
}
//整个蛇身坐标
int main()
{
a = b = 1;
Spaces();
food();
print();
move();
return 0;
}
#include <Windows.h>
#include <conio.h>
#include <time.h>
void food();
void add();
void food();
void print();
void move();
void right();
void left();
void up();
void down();
int a,b,a3,b3;
int a1,b1;
int len = 1;
bool over = false;
bool eat = false;
bool inter = false;
int ctimes = 500;
int map[15][25] =
{
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
};
struct Snake
{
int a2;
int b2;
Snake* next;
};
Snake m_head = {0,0,0};
//吃掉或者撞墙碰到自己
void Judge(Snake* obj)
{
Snake* p = obj;
if(p->a2 == a3&&p->b2== b3)
{
eat = true;
len++;
}
else
{
p = p->next;
for(int i=0;i<(len -2);i++)
{
if((p->a2 == a)&&(p->b2 ==b))
{
over = true;
break;
}
p++;
}
}
}
//把这个点带入到
void add(Snake* obj)
{
obj->next = m_head.next;
m_head.next = obj;
Judge(obj);
}
//申请一个位置
void Spaces()
{
Snake* obj1 = (Snake*)malloc (sizeof(Snake));
obj1->a2 = a;
obj1->b2 = b;
add(obj1);
if(!eat)
{
Snake* p= &m_head;
for(int i = 0;i<len;i++)
{
p = p->next;
}
map[p->a2][p->b2] = 0;
free(p);
}
else
{
eat = false;
food();
while (inter)food();
inter = false;
ctimes-=20;
}
}
//生成一个豆子
void food()
{
bool inter = false;
srand(time(NULL));
a3 = 1 + (rand() % 13);
b3 = 1 + ((rand() *11) % 23);
map[a3][b3] = 2;
Snake *p = m_head.next;
for(int i = 0;i<len;i++)
{
if((a3 == p->a2)&&(b3 == p->b2))
inter = true;
}
}
//打印地图
void print()
{
printf("* Copyright (c) 2016,12,22\n* All rights \n* 作 者:ministory \n* 完成日期:2016 年 12 月 22 日\n* 版 本 号:v1.0 \n* 问题描述:编程序,输出一个贪吃蛇程序 \n*问题很多,求大神指教!\n");
for(int x = 0;x < 15;x++)
{
for(int y = 0;y < 25;y++)
{
if(map[x][y] == 0)printf(" %c ",46);
if(map[x][y] == 2)printf(" %c ",4);
if(map[x][y] == 1)printf(" %c ",'#');
}
printf("\n");
}
}
//控制向上走
void up()
{
if(1!=map[a-1][b])
{
a1=a;
b1=b;
a=a-1;
map[a][b] = 2;
}
else over = true;
}
//控制向下走
void down()
{
if(1!=map[a+1][b])
{
a1=a;
b1=b;
a=a+1;
map[a][b] = 2;
}
else over = true;
}
//控制向左走
void left()
{
if(1!=map[a][b-1])
{
a1=a;
b1=b;
b=b-1;
map[a][b] = 2;
}
else over = true;
}
//控制向右走
void right()
{
if(1!=map[a][b+1])
{
a1=a;
b1=b;
b=b+1;
map[a][b] = 2;
}
else over = true;
}
//移动蛇的方向
void move()
{
char ch = 's';
char ch1 = ch;
while(!over)
{
while(kbhit()!=0)
{
ch = getch();
if(isascii(ch))continue;
ch = getch();
}
if (ch == 'w'||ch == 72||ch == 's'||ch == 80||ch == 'a'||ch == 75||ch == 'd'||ch == 77) ch1 = ch;
if(ch1 == 'w'||ch1 == 72)up();
if(ch1 == 's'||ch1 == 80)down();
if(ch1 == 'a'||ch1 == 75)left();
if(ch1 == 'd'||ch1 == 77)right();
system("cls");
print();
Spaces();
Sleep(ctimes);
}
}
//整个蛇身坐标
int main()
{
a = b = 1;
Spaces();
food();
print();
move();
return 0;
}
0 0
- 写了一天写出个这玩意 好为难啊白瞎学了一个月
- 写了个小玩意,欢迎试用
- 写了一天的文档,好累!!
- 写了两天这玩意有点舍不得时间
- 好惊讶,坚持了一个月~
- 一个月没有上来写东西了
- 第一天学html写了个注册界面
- 博客第一天,写了个app准备上线
- 这一个月太忙了
- 程序写了5年了,做个一个总结
- 16个月了。。。
- 工作快2个月了,写一下总结
- 看了一个月资料,写一篇论文读书心得
- 看了一个月资料,写一篇论文读书心得
- 看了一个月资料,写一篇论文读书心得
- 看了一个月资料,写一篇论文读书心得
- 看了一个月资料,写一篇论文读书心得
- 看了一个月资料,写一篇论文读书心得
- 在centos nginx 环境下 搭建 letsencrypt
- Leetcode Insertion Sort List
- 《第一行代码》第十章-Pull解析方式
- Tomcat热部署的实现原理
- Unity Editor 编辑器扩展 十 Handle控件
- 写了一天写出个这玩意 好为难啊白瞎学了一个月
- ISD9160学习笔记08_结项总结
- Android studio 中NameValuePair跟BasicNameValuePair 不能正常导包问题
- SpringMVC的工作原理
- 关于java下载excel,pdf等demo
- android逆向基础的几个步骤
- ITRS_modeling_lithography
- MySQL运维(2) 外网访问MySQL
- How to cross-compile Chromium for ARM