Java训练三

news2024/12/20 2:19:40

一、数独

将1~9的数字放入一个3x3的数组中国,判断数组每行每列以及每个对角线的值相加是否都相同。

package haha;
public class helloworld{
	public static void main(String[] args) {
		int arr[][]= {{1,2,3},{4,5,6},{7,8,9}};
		//每行
		int arr1[]=new int[3];
		for(int i=0;i<3;i++)
		{
			int a=0;
			for(int j=0;j<3;j++)
			{
				a=a+arr[i][j];
			}
			arr1[i]=a;
		}
		//每列
		int arr2[]=new int[3];
		for(int i=0;i<3;i++)
		{
			int b=0;
			for(int j=0;j<3;j++)
			{
				b=b+arr[j][i];
			}
			arr2[i]=b;
		}
		//求和
		int arr3[]=new int[3];
		for(int i=0;i<3;i++)
		{
			arr3[i]=arr1[i]+arr2[i]+arr[i][i];
		}
		if(arr3[0]==arr3[1] && arr3[0]==arr3[2])
		{
			System.out.println("该数组每行每列以及对角线的值相加都相同");
		}
		else
		{
			System.out.println("该数组每行每列以及对角线的值相加不都相同");
		}
		
	}
}

二、矩阵转置

交换二维数组“int[][] array={{91,25,8},{51,14,2},{47,3,67}};”的行、列数据。

package haha;
public class helloworld{
	public static void main(String[] args) {
		int[][] array= {{91,25,8},{56,14,2},{47,3,67}};
		System.out.println("转置前:");
		for(int i=0;i<3;i++)
		{
			for(int j=0;j<3;j++)
			{
				System.out.print(array[i][j]+" ");
			}
			System.out.println();
		}
		
		System.out.println("转置后:");
		for(int i=0;i<3;i++)
		{
			for(int j=0;j<3;j++)
			{
				System.out.print(array[j][i]+" ");
			}
			System.out.println();
		}
	}
}

 三、杨辉三角

使用二维数组实现杨辉三角。

package haha;
public class helloworld{
	public static void main(String[] args) {
		int arr[][];
		arr=new int[10][];		
		for(int i=0;i<10;i++)
		{
			arr[i]=new int[i+1];
		}
		arr[0][0]=1;
		arr[1][0]=1;
		arr[1][1]=1;
		for(int i=2;i<10;i++)
		{
			arr[i][0]=1;
			arr[i][i]=1;
			for(int j=1;j<=i-1;j++)
			{
				arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
			}
		}
		for(int i=0;i<=9;i++)
		{
			for(int j=0;j<arr[i].length;j++)
			{
				if((i==5 && (j==2 || j==3)) || ((i>=6 && i<=8) && (j==2 || j==3 || j==4)) || (i==8 && j==5) || (i==9 && (j==2 ||j==3)) || (i==7 && j==5))
				{
					System.out.print(arr[i][j]+"   ");
				}
				else if(i==9 &&(j==4 || j==5))
				{
					System.out.print(arr[i][j]+"  ");
				}
				else
				{
					System.out.print(arr[i][j]+"    ");
				}
			}
			System.out.println();
		}
	}
}

四、推箱子游戏

编写一个简单的推箱子游戏,使用10x8的二维字符数据表示游戏画面,H表示墙壁,&表示玩家角色,o表示箱子;*表示目的地。玩家可以通过输入A、D、W、S字符控制角色移动,当箱子推到目的地时显示游戏结束。

package haha;
import java.util.Scanner;
import java.util.Arrays;
public class helloworld{
	public static void main(String[] args) {
		/*绘制游戏画面
		System.out.println("--------------------");
		System.out.println("H H H H H H H H H H");
		System.out.println("H &   H           H");
		System.out.println("H   o H   H       H");
		System.out.println("H     H   H H   H H");
		System.out.println("H               H H");
		System.out.println("H       H H H     H");
		System.out.println("H       H *       H");
		System.out.println("H H H H H H H H H H");
		System.out.println("--------------------");
		*/

		//游戏画面
		char arr0[][]= {{'H','H','H','H','H','H','H','H','H','H'},{'H','&',' ','H',' ',' ',' ',' ',' ','H'},
				{'H',' ','o','H',' ','H',' ',' ',' ',' '},{'H',' ',' ','H',' ','H','H',' ','H','H'},
				{'H',' ',' ',' ',' ',' ',' ',' ','H','H'},{'H',' ',' ',' ','H','H','H',' ',' ','H'},
				{'H',' ',' ',' ','H','*',' ',' ',' ','H'},{'H','H','H','H','H','H','H','H','H','H'}};
		System.out.println("--------------------");
		for(int i=0;i<8;i++)
		{
			for(int j=0;j<10;j++)
			{
				System.out.print(arr0[i][j]+" ");
			}
			System.out.println();
		}
		System.out.println("--------------------");
		
		//定义玩家角色的初始位置(索引)
		int m=1; //行索引
		int n=1; //列索引
		
		//从数组中除去玩家角色
		char arr[][]= {{'H','H','H','H','H','H','H','H','H','H'},{'H',' ',' ','H',' ',' ',' ',' ',' ','H'},
				{'H',' ','o','H',' ','H',' ',' ',' ',' '},{'H',' ',' ','H',' ','H','H',' ','H','H'},
				{'H',' ',' ',' ',' ',' ',' ',' ','H','H'},{'H',' ',' ',' ','H','H','H',' ',' ','H'},
				{'H',' ',' ',' ','H','*',' ',' ',' ','H'},{'H','H','H','H','H','H','H','H','H','H'}};
		
		//到达箱子位置之前
		do
		{
			System.out.println("A左移,D右移,W上移,S下移,请输入你的指令:");
			Scanner sc=new Scanner(System.in);
			String q=sc.nextLine();
			char[] chars=q.toCharArray();
			char p=chars[0];
			if(p=='A')
			{
				if(arr[m][n-1]=='H')
				{
					System.out.println("前方是墙壁,走不通!");
				}
				else
				{
					n=n-1;
				}
			}
			else if(p=='D')
			{
				if(arr[m][n+1]=='H')
				{
					System.out.println("前方是墙壁,走不通!");
				}
				else
				{
					n=n+1;
				}
			}
			else if(p=='W')
			{
				if(arr[m-1][n]=='H')
				{
					System.out.println("前方是墙壁,走不通!");
				}
				else
				{
					m=m-1;
				}
			}
			else if(p=='S')
			{
				if(arr[m+1][n]=='H')
				{
					System.out.println("前方是墙壁,走不通!");
				}
				else
				{
					m=m+1;
				}
			}
			else
			{
				System.out.println("输入无效!");
			}
			//绘制游戏画面
			Arrays.fill(arr[m],n,n+1,'&');
			System.out.println("--------------------");
			for(int i=0;i<8;i++)
			{
				for(int j=0;j<10;j++)
				{
					System.out.print(arr[i][j]+" ");
				}
				System.out.println();
			}
			System.out.println("--------------------");
			Arrays.fill(arr[m],n,n+1,' ');
		}while(!(m==2 && n==2));
		System.out.println("拿到箱子啦!");
		
		//拿到箱子后前往目的地
		do
		{
			System.out.println("A左移,D右移,W上移,S下移,请输入你的指令:");
			Scanner sc=new Scanner(System.in);
			String q=sc.nextLine();
			char[] chars=q.toCharArray();
			char p=chars[0];
			if(p=='A')
			{
				if(arr[m][n-1]=='H')
				{
					System.out.println("前方是墙壁,走不通!");
				}
				else
				{
					n=n-1;
				}
			}
			else if(p=='D')
			{
				if(arr[m][n+1]=='H')
				{
					System.out.println("前方是墙壁,走不通!");
				}
				else
				{
					n=n+1;
				}
			}
			else if(p=='W')
			{
				if(arr[m-1][n]=='H')
				{
					System.out.println("前方是墙壁,走不通!");
				}
				else
				{
					m=m-1;
				}
			}
			else if(p=='S')
			{
				if(arr[m+1][n]=='H')
				{
					System.out.println("前方是墙壁,走不通!");
				}
				else
				{
					m=m+1;
				}
			}
			else
			{
				System.out.println("输入无效!");
			}
			//绘制游戏画面
			Arrays.fill(arr[m],n,n+1,'&');
			System.out.println("--------------------");
			for(int i=0;i<8;i++)
			{
				for(int j=0;j<10;j++)
				{
					System.out.print(arr[i][j]+" ");
				}
				System.out.println();
			}
			System.out.println("--------------------");
			Arrays.fill(arr[m],n,n+1,' ');
		}while(!(m==6 && n==5));
		System.out.println("成功到达目的地,游戏结束!");
	}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/788921.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【uniapp学习之】uni-forms必填项校验

代码块 <uni-forms ref"baseForm" :modelValue"baseFormData" label-widthauto :rules"rules"><uni-forms-item label"企业名称" required name"principalName"><uni-easyinput v-model"baseFormData.…

数组中重复的数据(力扣)思维 JAVA

给你一个长度为 n 的整数数组 nums &#xff0c;其中 nums 的所有整数都在范围 [1, n] 内&#xff0c;且每个整数出现 一次 或 两次。 请你找出所有出现 两次 的整数&#xff0c;并以数组形式返回。 你必须设计并实现一个时间复杂度为 O(n) 且仅使用常量额外空间的算法解决此问…

QT实现用户登录注册功能

本文实例为大家分享了QT实现用户登录注册的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下 1、login.h ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #ifndef LOGIN_H #define LOGIN_H #include <QWidget> namespace Ui { c…

git pull无效,显示 * branch master -> FETCH_HEADAlready up to date. pull无效解决方法

报错情况 本地文件夹中删除文件后&#xff0c;git pull无效。显示如下&#xff1a; **** MINGW64 ~/****/haha (master) $ git pull origin master From https://gitee.com/****/haha* branch master -> FETCH_HEAD Already up to date.解决 方法一 命令…

C++ —— STL容器【vector】模拟实现

本章代码gitee仓库&#xff1a;vector模拟实现、vector源码 文章目录 &#x1f608;0. 搭个框架&#x1f604;1. 成员&#x1f47b;2. 构造函数 & 析构函数 & 拷贝构造&#x1f63a;3. 迭代器&#x1f649;4. operator[] & operator&#x1f916;5. 容器的容量 &am…

Vue mixin 混入

可以复用的组件&#xff0c;我们一般会抽离&#xff0c;写成公共的模块。 可以复用的方法&#xff0c;我们一般会抽离&#xff0c;写成公共的函数。 那么 在 Vue 中&#xff0c;如果 某几个组件实例 VueComponent 中、或者 整个 Vue 项目中 都存在相同的配置&#xff0c;那就…

jmeter-断言

断言作用&#xff1a;让脚本自动化执行过程中&#xff0c;能够自动判定执行结果是否正确&#xff0c;需要添加断言 响应断言 添加方式&#xff1a;测试计划–》线程组–》HTTP请求–》(右键添加)断言–》响应断言 案例 请求:https://www.baidu.com 检查&#xff1a;让程序检查…

13.4 【Linux】使用者身份切换

使用一般帐号&#xff1a;系统平日操作的好习惯 尽量以一般身份使用者来操作Linux的日常作业。等到需要设置系统环境时&#xff0c; 才变换身份成为 root 来进行系统管理&#xff0c;相对比较安全。避免作错一些严重的指令&#xff0c;例如恐怖的“ rm -rf / ”。 用较低权限…

OpenTDF数据加密引擎

OpenTDF是Virtru公司的开源项目。 Virtru基于OpenTDF开发了用于google Workspace和Microsoft 365的相关数据安全产品。 简介 virtru公司基于opentdf开发挺多产品的,都是数据安全类产品。 能把opentdf开源,已经非常不容易了。 opentdf的代码看起来还是比较整齐和成熟的。…

flink写入到kafka 大坑解析。

1.kafka能不能发送null消息&#xff1f; 能&#xff01; 2 flink能不能发送null消息到kafka&#xff1f; 不能&#xff01; public static void main(String[] args) throws Exception {StreamExecutionEnvironment env StreamExecutionEnvironment.getExecutionEnvironment(…

mysql 第九章

目录 1.mha 搭建 2.总结 1.mha 搭建 主从同步&#xff1a; 安装 mha 软件&#xff1a; mha 模拟 vip 飘移、master 切换&#xff1a; 2.总结 mha 是一套优秀的 mysql 高可用环境下故障切换和主从复制的软件。mha 解决 mysql 单点的问题。mysql 故障切换过程中&#xff0c;mh…

Linux 学习记录57(ARM篇)

Linux 学习记录57(ARM篇) 本文目录 Linux 学习记录57(ARM篇)一、外部中断1. 概念2. 流程图框 二、相关寄存器1. GIC CPU Interface (GICC)2. GIC distributor (GICD)3. EXTI registers 三、EXTI 寄存器1. 概述2. 内部框图3. 寄存器功能描述4. EXTI选择框图5. EXTI_EXTICR1 &…

Qt Creator mainwindow.obj:-1: error: LNK2019

构建的时候报错&#xff1a; mainwindow.obj:-1: error: LNK2019: 无法解析的外部符号 "public: __thiscall mynotedig::mynotedig(class QWidget *)" (??0mynotedigQAEPAVQWidgetZ)&#xff0c;该符号在函数 "public: void __thiscall MainWindow::mynoteab…

C语言宏替换的注意事项

先思考一个问题&#xff1a; #include <string> #include <Windows.h>namespace ui { int MessageBox(HWND hwnd, const std::wstring &text, const std::wstring &caption,UINT flags) {UINT actual_flags flags;const wchar_t *text_ptr text.c_str();…

推荐 3 个实用的 GitHub 项目

本期推荐开源项目目录&#xff1a; 1. 开源知识库 2. 去中心化的社交平台 3. h2oGPT 01 开源知识库 AFFINE 是 Notion、Miro 等知识库产品的开源替代品&#xff0c;目前已经获得了近 20k 的 Stark。通过 AFFINE 你可以进行写作、绘画、计划管理。 类似于 Notion 的 Block &…

STC12C5A系列单片机片内看门狗的应用

wdt.c #include "wdt.h"void wdt_init(void) {WDT_CONTR 0x24; // 0010 0100 - 1.1377s }void wdt_feed(void) {WDT_CONTR | 0x10; // 喂狗 }wdt.h #ifndef _WDT_H_ #define _WDT_H_#include "stc12c5a60s2.h"// 函数声明 extern void wdt_init(void); …

Ajax 黑马学习

Ajax 资源 数据是服务器对外提供的资源,通过 请求 - 处理 - 响应方式获取 请求服务器数据, 用到 XMLHttpRequest 对象 XMLHttpRequest 是浏览器提供的js成员, 通过它可以请求服务器上的数据资源 let xmlHttpRequest new XMLHttpRequest(); 请求方式 : get向服务器获取数据…

requests---jsonpath在接口自动化中的应用

前言 我们在做接口测试时&#xff0c;大多数返回的都是json属性&#xff0c;我们需要通过接口返回的json提取出来对应的值&#xff0c;然后进行做断言或者提取想要的值供下一个接口进行使用&#xff0c;但是如果返回的json数据嵌套了很多层&#xff0c;通过查找需要的词&#x…

软件进行用户体验测试有哪些要点?

无论是移动应用还是网页应用&#xff0c;优秀的用户体验是软件成功的关键所在。软件用户体验测试是一种关键的测试方法&#xff0c;旨在评估用户在使用软件过程中的感受和体验。通过深入了解用户需求&#xff0c;模拟真实场景&#xff0c;以及综合用户反馈&#xff0c;软件开发…

【C++】C++11——右值引用和移动语义|可变参数模板

文章目录 一、左值引用和右值引用左值引用和右值引用的定义左值引用和右值引用的比较 二、右值引用的使用场景和意义左值引用的短板移动构造和移动赋值万能引用和完美转发 三、新的类功能类成员变量初始化default 和 delete 四、可变参数模板 一、左值引用和右值引用 传统的C语…