想过七夕?->女朋友陪你玩游戏(C),Python开发必学

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
img

正文

void Displayboard(char board[ROW][COL], int row, int col)

{

int i, j,k;

for (i = 0; i < row; i++)

{

for (j = 0; j < col; j++)

{

if(j<col-1)

printf(" %c |", board[i][j]);

if (j == col-1 )

{

printf(" %c \n", board[i][j]);

}

}

for (j = 0;j<col; j++)

{

if (j <col-1 && i!=row-1)

{

printf(“—|”);

}

}

if (i != row - 1)

{

printf(“—”);

printf(“\n”);

}

}

}

效果如下:

在这里插入图片描述

通过更改ROW和COL的值来展示不同大小的棋盘:

三子棋:

在这里插入图片描述

五子棋:

在这里插入图片描述

七子棋:

在这里插入图片描述

2. 玩家落子


注意:每次落子完要重新打印一次棋盘

当输入坐标错误或者已经有棋子的时候要进行相应的提示

void PlayerMove(char board[ROW][COL], int row, int col)//玩家落子

{

int x, y;

while (1)

{

printf(“请玩家落子>”);

printf(“请输入棋子行列坐标:\n”);

scanf(“%d%d”, &x, &y);

if (x >= 1 && x <= row && y >= 1 && y <= col)

{

if (board[x - 1][y - 1] == ’ ')//数组的真实下标从0开始

{

board[x - 1][y - 1] = ‘*’;

}

else

{

printf(“坐标被占用,请重新输入”);

}

}

else

printf(“输入坐标非法,请重新输入\n”);

Displayboard(board, ROW, COL);

}

}

在这里插入图片描述

3.女朋友落子


注意:这里需要生成随机数,并且引用相应的头文件

void ComputerMove(char board[ROW][COL], int row, int col)

{

int x, y;

printf(“\n”);

printf(“女朋友下棋:\n”);

while (1)

{

x = rand() % row;

y = rand() % col;

if (board[x][y] == ’ ')

{

board[x][y] = ‘#’;

break;

}

}

Displayboard(board, ROW, COL);

}

生成随机数:

在这里插入图片描述

头文件:

在这里插入图片描述

效果如下

在这里插入图片描述

4.判断游戏输赢


结局共有三个:女朋友赢,你赢,平局

根据四种返回值来判段

你赢-- ‘*’

女朋友赢–’#’

平局–‘Q’

继续–‘C’

char isWin(char board[ROW][COL], int row, int col)

{

//1.判断输赢

int i;

for (i = 0; i < row; i++)//判断行是否相等

{

if (board[i][0] == board[i][1] && board[i][0] == board[i][2] && board[i][0] != ’ ')

{

return board[i][0];

}

}

for (i = 0; i < row; i++)//判断列是否相等

{

if (board[0][i] == board[1][i] && board[0][i] == board[2][i] && board[0][i] != ’ ')

{

return board[0][i];

}

}

if (board[2][0] == board[1][1] && board[0][2] == board[2][0] && board[2][0]!=’ ')//判断对角线

{

return board[2][0];

}

if (board[0][0] == board[1][1] && board[0][0] == board[2][2] && board[0][0] != ’ ')

{

return board[0][0];

}

//2.判断平局

if (isFull(board, row, col) == 1)

{

return ‘Q’;

}

else return ‘C’;

}

5.最终效果


平局:

在这里插入图片描述

女朋友赢:

在这里插入图片描述

玩家赢:

在这里插入图片描述

最终的所有的代码如下:

我的gitee–和女朋友玩的三子棋小游戏

猜数字

=================================================================

七夕到了,没有女朋友怎么办?没事~ 写一个小游戏,让女朋友陪你玩猜数字~

在一定数值范围内,游戏随机生成一个数字,玩家输入比随机数大的数字时,程序会提醒,数值大于目标数,反之亦然。通过不断试错,最终找出目标数字。此游戏可以重复玩。

1.设立菜单


设立一个menu(),菜单函数

void menu()

{

printf(“***********”);

printf(“1.play*”);

printf(“0.exit*”);

printf(“***********”);

}

因为游戏可以重复玩,所以需要执行一次,再进行循环。因此选择do…while()语句

#include<stdio.h>

#include<math.h>

void menu()

{

printf(“***********”);

printf(“1.play*”);

printf(“0.exit*”);

printf(“***********”);

}

int main()

{

int t;

do

{

menu();

printf(“请选择:》”);

scanf(“%d”, &t);

switch (t)

{

case 1:

game();

break;

case 0:

printf(“退出游戏”);

break;

default:

printf(“选择错误”);

break;

}

}while(input);

return 0;

}

菜单如图:

在这里插入图片描述

2.生成随机数


💡int rand(void) :返回一个范围在 0 到 RAND_MAX 之间的伪随机数。

💡RAND_MAX :是一个常量,它的默认值在不同的实现中会有所不同,但是值 ≥ 32767。

使用该函数,需要引头文件 #include<stdib.h>

💡 srand 函数是随机数发生器的初始化函数。

它初始化随机种子,会提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的 rand() 函数会出现一样的随机数,如: srand(1); 直接使用 1 来初始化种子。不过为了防止随机数每次重复,常常使用系统时间来初始化,即使用 time函数来获得系统时间,它的返回值为从 00:00:00 GMT, January 1, 1970 到现在所持续的秒数,然后将time_t型数据转化为(unsigned)型再传给srand函数,即: srand((unsigned) time(&t)); 还有一个经常用法,不需要定义time_t型t变量,即: srand((unsigned) time(NULL)); 直接传入一个空指针,因为程序中往往并不需要经过参数获得的数据。

💡需要引用头文件 #include<time.h>

在这里插入图片描述

💡此时生成了随机数,但是如果输入数字的时间过快,可能会输出相同的数字,而且是递增的。

所以srand((unsigned int)time(NULL))位置需要调整到主函数内。即:

int main()

{

int input = 0;

srand((unsigned int)time(NULL));

在这里插入图片描述

💡解决了生成随机数的问题,但是rand()函数生成的数字是0到32767,对于猜数字游戏来说,范围太大。将范围调整成1~100。

想要输出给定范围之内的随机数,需要使用 rand() % (b - a + 1)+ a,显然,rand()% (b - a + 1)的范围是[0,b - a],再加上a之后的范围就是[a,b]下面的代码是生成[0,100]]范围内的随机数。

在这里插入图片描述

3.进行数字判断


void game()

{

int ret = 0;

ret = rand()%100+1;

int guess = 0;

printf(“%d\n”, ret);

printf(“猜数字游戏\n”);

while (1)

{

scanf(“%d”, &guess);

if (guess > ret)

{

printf(“女朋友:猜测过大,请重新猜”);

}

else if (guess < ret)

{

printf(“女朋友:猜测过小,请重新猜”);

}

else

{

printf(“恭喜你,猜对啦!╰(°▽°)╯”):

}

}

}

4.最终效果


#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

void menu()

{

printf(“***********\n”);

printf(“1.play*\n”);

printf(“0.exit*\n”);

printf(“***********\n”);

}

void game()

{

int ret = 0;

ret = rand()%100+1;

int guess = 0;

printf(“猜数字游戏\n”);

while (1)

{

printf(“女朋友:请猜数字>”);

scanf(“%d”, &guess);

if (guess > ret)

{

printf(“女朋友:猜测过大,请重新猜\n”);

}

else if (guess < ret)

{

printf(“女朋友:猜测过小,请重新猜\n”);

}

else

{

printf(“女朋友:恭喜你,猜对啦!╰(°▽°)╯\n”); break;

}

}

}

int main()

{

int input;

srand((unsigned int)time(NULL));

do

{

menu();

printf(“请选择:》\n”);

printf(“\n”);

scanf(“%d”, &input);

switch (input)

{

case 1:

printf(“女朋友:准备开始游戏拉!\n”);

game();

break;

case 0:

printf(“退出游戏\n”);

break;

default:

printf(“选择错误\n”);

break;

}

} while (input);

return 0;

}

在这里插入图片描述

最终的所有的代码如下:

我的gitee–和女朋友玩的猜数字小游戏

是不是感觉超级甜的鸭!!!!!

在这里插入图片描述

扫雷

================================================================

七夕到了,没有女朋友怎么办?没事~ 写一个小游戏,让女朋友陪你玩扫雷~

在这里插入图片描述

首先创建:

game.c的源文件–>游戏函数的实现

test.c的源文件–>测试使用

game.h的头文件–>游戏函数的声明

在这里插入图片描述

一共需要创建两个二维数组:

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
312200539.png)

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
[外链图片转存中…(img-NOdBdCIn-1713249753216)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值