Java小练习及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
j * * * * * * * * * * * * * * * *
k * * * * * * * * * * * * * * * *
l * * * * * * * * * * * * * * * *
m* * * * * * * * * * * * * * * *
o * * * * * * * * * * * * * * * *
a b c d e f g hi j k l m n o p
a * * * * * * * * * * * * * * * *
b * * * * * * * * * * * * * * * *
c * * * * * * * * * * * * * * * *
d * * * * * * * * * * * * * * * *
|| isYouXieWin(board, chess, x, y);
}
//判断水平方向上的胜负情况
private static boolean isShuipingWin(char[][] board, char chess, int x, int y) {
// 1,循环找到左边界(不能直接判断到边界,因为可能最后一次循环过来会出现异常情况)
abcdefghijklmnopabcdefghijklmop2砸金花游戏编写程序模拟砸金花的游戏程序开始时要求用户输入赌注并在一副牌中随机发两手牌每手牌三张然后比较这两手牌的大小若编写程序模拟砸金花的游戏程序开始时要求用户输入赌注并在一副牌中随机发两手牌每手牌三张然后比较这两手牌的大小若a比b大则用户赢得赌注反之则输掉赌注
continue;
}
//計算和输出下棋的坐标位置
int x = input.charAt(0) - 'a';
int y = input.charAt(1) - 'a';
//System.out.println("坐标:"+ x + ", " + y);
//判断输入的下标位置上是否已经有棋子
if (board[x][y] == '@' || board[x][y] == 'O') {//该位置是否已经有棋子了
System.out.println("Game Over!");
break;
}
//判断输入的下标的位置是否正确,是否符合要求
for (int index = 0; index < input.length(); index++) {
if(input.length() <= 1 || !Character.isLetter(input.charAt(index))){
p * * * * * * * * * * * * * * * *
2、砸金花游戏
编写程序模拟砸金花的游戏,程序开始时要求用户输入赌注,并在一副牌中随机发两手牌,每手牌三张,然后比较这两手牌的大小,若A比B大,则用户赢得赌注,反之,则输掉赌注。
每手牌的大小比较规则:
1,三条>同花顺>同花>顺子>对子>单张
Arrays
难度
★★★★★
课程名
CoreJava(SL275)
章节
Module 4 Arrays
知识点
Arrays
模块
J2EE
作业详细内容介绍
1、五子棋游戏()
编写程序实现两人互玩的五子棋游戏,游戏开始时要求输出以下棋盘,然后提示黑方和白方下子,玩家从命令行输入:a f,表示在a,f坐标落子,其中黑方的子用@表示,白方的子用O表示,每有一方落子,则要重新输出棋盘的状态.程序还要能判断某一方获胜,并终止程序。
count++;
if (count == 5) {
return true;
}
y--;
x++;
}
return false;
}
}
答案2:
作业提交时间及方法
作业题目
Arrays
难度
★★★★
课程名
CoreJava(SL275)
count++;
if (count == 5) {
return true;
}
x++;
}
return false;
}
//判断左斜方向上的胜负情况
private static boolean isZuoXieWin(char[][] board, char chess, int x, int y) {
// 1,循环找到左上边界
//情况:如果第一个就下最左上角的位置上,该循环不被执行。
while (y > 0 && x > 0 && board[x][y] == chess) {
y--;
x--;
//System.out.println("左斜方向处理");
}
// 2,判断边界情况时,最边界的棋子为何种颜色
int count = 0;
if (board[x][y] == chess) {
count = 1;
}
// 3,向右下循环统计有多少个连续的同颜色棋子
y++;
x++;
while (x < board.length&& y < board[0].length&& board[x][y] == chess) {
count++;
if (count == 5) {
}
/**
*判断胜负
* @param board表示棋盘
* @param isBlack表示刚下棋的一方
* @param x表示横坐标
* @param y表示纵坐标
* @return返回代表刚下棋的一方是否获胜
*/
private static boolean isWin(char[][] board, boolean isBlack, int x, int y) {
}
//2,判断边界情况时,最边界的棋子为何种颜色
int count = 0;
if (board[x][y] == chess) {
count = 1;
}
// 3,向下循环统计有多少个连续的同颜色棋子
x++;
while (x < board.length && board[x][y] == chess) {
*/
int count = 0;
if (y < board[0].length && board[x][y] == chess) {
count = 1;
}
// 3,向左下循环统计有多少个连续的同颜色棋子
y--;
x++;
while (x < board.length &&y >= 0 && board[x][y] == chess) {
System.out.println("输入有误,请重新输入!");
continue target;
}
}
//判断输入的下标是否越界
if(input.charAt(0) > N + 'a' || input.charAt(1) > N + 'a'){
System.out.println("输入有误,请重新输入!");
System.out.print((char) ('a' + i) + "\t");//输出行坐标(左边的字母)
for (int j = 0; j < board.length; j++) {//输出该行的内容
System.out.print(board[i][j] + " ");
}
System.out.println();//输出换行符
//游戏开始
target: while (true) {
//提示某方下棋
System.out.println("请" + (isBlack ? '黑' : '白') + "方下子:");
//控制台输入下棋的坐标位置
String input = in.next();
//处理退出问题
if ("EXIT".equalsIgnoreCase(input)) {
}
// 3,向右循环统计有多少个连续的同颜色棋子
y++;
while (y < board[0].length && board[x][y] == chess) {
count++;
if (count == 5) {
return true;
}
y++;
}
return false;
}
//判断垂直方向上的胜负情况
for (int j = 0; j < board.length; j++) {
board[i][j] = '*';
}
}
//输出棋盘
printBoard(board);
//使用boolean类型的变量表示黑方或者白方:true:表示黑方false:表示白方
boolean isBlack = true;
System.out.println("该位置已经有棋子,请重新指定坐标!");
continue;
}
//下棋
board[x][y] = isBlack ? '@' : 'O';
//输出棋盘
printBoard(board);
//判断输赢情况
if (isWin(board, isBlack, x, y)) {
//提示用户
System.out.println("请输入棋盘的大小:");
Scanner in = new Scanner(System.in);
int N = in.nextInt();
//创建和初始化棋盘
char[][] board = new char[N][N];
for (int i = 0; i < board.length; i++) {
System.out.println((isBlack ? "黑" : "白") + "方获胜!");
break;
}
//黑白方交换
isBlack = !isBlack;
}
}
private static void printBoard(char[][] board) {
//输出星形的内容
for (int i = 0; i < board.length; i++) {//输出每一行的内容
return true;
}
y++;
x++;
}
return false;
}
//判断右斜方向上的胜负情况
public static boolean isYouXieWin(char[][] board, char chess, int x, int y) {
// 1,循环找到右上边界
while (x > 0&&y < board[0].length &&board[x][y] == chess) {
2,处于同一级别的两手牌比较最大的一张牌的大小
作业截图
答案1:
import java.util.Scanner;
public class FiveChess {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
private static boolean isChuizhiWin(char[][] board, char chess, int x, int y) {
// 1,循环找到上边界(白子的边界)
while (x > 0 && board[x][y] == chess) {
x--;
//System.out.println("垂直方向处理");
e * * * * * * * * * * * * * * * *
f * * * * * * * * * * * * * * * *
g * * * * * * * * * * * * * * * *
h * * * * * * * * * * * * * * * *
i * * * * * * * * * * * * * * * *
//代表和下棋方对应的棋子
char chess = isBlack ? '@' : 'O';
return isShuipingWin(board, chess, x, y)
|| isChuizhiWin(board, chess, x, y)
|| isZuoXieWin(board, chess, x, y)
x--;
y++;
//System.out.println("右斜方向处理");
}
/**
* 2,判断边界情况时,最边界的棋子为何种颜色
*判断条件(y < board[0].length)的特别解释:
*在上面的while循环中最后一个次循环结束的时候y值可能已经等于board[0].length的长度了。
while (y > 0 && board[x][y] == chess) {
y--;
//System.out.println("水平方向处理");
}
// 2,判断边界情况时,最边界的棋子为何种颜色
int count = 0;
if (board[x][y] == chess) {
count = 1;
}
//输出第最后一行的内容
System.out.print("\t");//输出第一行开头的空格
for (int i = 0; i < board.length; i++) {//输出第一行的所有字母
System.out.print((char) ('a' + i) + " ");
}
System.out.println();//输出换行符
相关文档
最新文档