Java day 04丶27

第四天#

程序逻辑-2(分支和循环)###

练习1:猜数字
计算机出一个1-100之间的随机数,玩家输入猜测的数字,计算机会给出相应的提示:如果玩家猜测的数字大于计算机出的数字,则提示"小一点";如果玩家猜测的数字小于计算机出的数字,则提示"大一点";如果猜对了就给出恭喜信息和猜的次数,游戏结束。

package day 0427;

import java.util.Scanner;

/**
 * 猜数字
 * @author jackfrued
 *
 */
public class Test04 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int correctAnswer = (int) (Math.random() * 100 + 1);
		int counter = 0;
		int thyAnswer;
		do {
			System.out.print("请输入你猜的数字: ");
			thyAnswer = sc.nextInt();
			counter += 1;
			if (thyAnswer == correctAnswer) {
				System.out.println("恭喜你猜对了!总共猜了" + counter + "次");
				if(counter > 7) {
					System.out.println("智商拙计!!!");
				}
			} else if (thyAnswer > correctAnswer) {
				System.out.println("小一点!");
			} else {
				System.out.println("大一点");
			}
		} while (thyAnswer != correctAnswer);
		sc.close();
	}
}

练习2:人机猜拳

package day 0427;

import java.util.Scanner;

/**
 * 人机猜拳
 * @author jackfrued
 *
 */
public class Test05 {
	/**
	 * 将出拳对应的数字变成中文
	 * @param fist 出拳的数字
	 * @return 出拳字对应的中文
	 */
	public static String getFist(int fist) {
		String str;
		if(fist == 1) {
			str = "剪刀";
		}
		else if(fist == 2) {
			str = "石头";
		}
		else {
			str = "布";
		}
		return str;
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int money = 1000;
		do {
			int debt;
			do {
				System.out.println("你总共有" + money + "元");
				System.out.print("请下注: ");
				debt = sc.nextInt();
			} while(debt <= 0 || debt > money);

			int computerFist = (int) (Math.random() * 3 + 1);
			int thyFist;
			do {
				System.out.print("请出拳(1. 剪刀; 2. 石头; 3. 布): ");
				thyFist = sc.nextInt();
			} while (thyFist < 1 || thyFist > 3);

			System.out.println("计算机出的是" + getFist(computerFist));
			System.out.println("你出的是" + getFist(thyFist));

			if(computerFist == thyFist) {
				System.out.println("平局!");
			}
			else {
				if(computerFist == 1) {
					if(thyFist == 2) {
						money += debt;
						System.out.println("你赢了!");
					}
					else {
						money -= debt;
						System.out.println("计算机赢了!");
					}
				}
				else if(computerFist == 2) {
					if(thyFist == 1) {
						money -= debt;
						System.out.println("计算机赢了!");
					}
					else {
						money += debt;
						System.out.println("你赢了!");
					}
				}
				else {
					if(thyFist == 1) {
						money += debt;
						System.out.println("你赢了!");
					}
					else {
						money -= debt;
						System.out.println("计算机赢了!");
					}
				}
			}
		} while(money > 0);
		System.out.println("你破产了!游戏结束!");
		sc.close();
	}
}

练习3:Craps赌博游戏。
玩家摇两颗色子,如果第一次摇出了7点和11点,则玩家胜;如果第一次摇出了2点、3点、12点,则庄家胜;如果摇出其他点数,游戏继续,在继续的过程中,如果玩家摇出了第一次摇的点数,则玩家胜;如果摇出了7点,则庄家胜;否则游戏继续,直到分出胜负。

package day 0427;

import java.util.Scanner;

/**
 * Craps赌博游戏
 * @author jackfrued
 *
 */
public class Test03 {

	/**
	 * 摇两颗色子
	 * @return 两个色子摇出的点数之和
	 */
	public static int rollDice() {
		int face1 = (int) (Math.random() * 6 + 1);
		int face2 = (int) (Math.random() * 6 + 1);
		return face1 + face2;
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int money = 1000;
		do {
			int debt = 0;	// 下注的金额
			do {
				System.out.println("你的余额" + money + "元");
				System.out.print("请下注: ");
				if(sc.hasNextInt()) {	// 判断能否读到一个整数
					debt = sc.nextInt();
				}
				else {
					System.out.println("输入错误!");
					sc.nextLine();	// 把错误的输入读走
				}
			} while (debt <= 0 || debt > money);
			int firstPoint = rollDice();
			System.out.println("玩家摇出了" + firstPoint + "点");
			boolean gameOver = true;	// 表示游戏是否应该结束的布尔值
			switch(firstPoint) {
			case 7:
			case 11:
				money += debt;
				System.out.println("玩家胜!");
				break;
			case 2:
			case 3:
			case 12:
				money -= debt;
				System.out.println("庄家胜!");
				break;
			default:
				gameOver = false;	// 如果第一次没有分出胜负游戏就没有结束
			}
			while(!gameOver) {	// 只要游戏没有结束就要继续摇色子
				int currentPoint = rollDice();
				System.out.println("玩家摇出了" + currentPoint + "点");
				if(currentPoint == 7) {
					money -= debt;
					System.out.println("庄家胜!");
					gameOver = true;
				}
				else if(currentPoint == firstPoint) {
					money += debt;
					System.out.println("玩家胜!");
					gameOver = true;
				}
			}
		} while(money > 0);
		System.out.println("恭喜你, 破产了!");
		sc.close();
	}
}
posted @ 2015-04-28 19:46  悲伤丶才说爱  阅读(93)  评论(0编辑  收藏  举报