java版-五子棋-個人-原始碼參考
package wuziqi;
importjava.io.IOException;
importjava.util.*;
public class Wuziqi{
public static void main(String args[]) {
//五子棋的宣告
int[][] wuziqi=new int[16][16];
//列印佈局,並檢查是否有誤
xunhun(true,0,0,0,wuziqi);
Scanner in=new Scanner(System.in); //使用Scanner類定義物件
System.out.println("\t\t\t歡迎來到下棋中心(人機對戰馬上開始)");
System.out.println();
//選擇下棋物件
while (true) {
System.out.println("請選擇下棋物件作為起始者:1:人類,2:電腦 ");
String str = null;
str = in.nextLine();
try {
char a =(char)(Integer.parseInt(str)+'0');
System.out.println(a);
if(a == '1' || a == '2'){
//下棋開始
start(a,wuziqi);
}
} catch (NumberFormatException e){
System.out.println("輸入格式有誤,請輸入 1:人類,2:電腦 ");
}
}
}
//下棋開始
public static void start(char ab,intwuziqi[][]){
if (ab == '1'){
while(true){
//人類下棋
people(wuziqi);
//電腦下棋
computer(wuziqi);
}
}
if (ab == '2'){
while(true){
//電腦下棋
computer(wuziqi);
//人類下棋
people(wuziqi);
}
}
}
//電腦下棋
public static void computer(int wuziqi[][]){
int x=1+(int)(Math.random()*15);
int y=1+(int)(Math.random()*15);
System.out.println("電腦下棋座標為:("+ x + "," + y + ")");
//列印佈局,並檢查是否有誤
xunhun(false, 2, x, y, wuziqi);
//檢查是否獲勝
checkWin(wuziqi, 66);
}
// 人類下棋
public static void people(int wuziqi[][]){
int[] cun = new int[2];
Scanner in = new Scanner(System.in);
while (true) {
System.out.println("人類下棋:輸入橫座標,按回車鍵");
String str = null;
str = in.nextLine();
try {
int x = Integer.parseInt(str);
System.out.println(x);
if (x >0 && x <16) {
cun[0] = x;
break;
}
} catch (NumberFormatException e){
System.out.println("輸入格式有誤,:輸入橫座標,按回車鍵");
}
}
while (true) {
System.out.println("請輸入縱座標:");
String str = null;
str = in.nextLine();
try {
int y = Integer.parseInt(str);
System.out.println(y);
if (y >0 && y <16) {
cun[1] = y;
break;
}
} catch (NumberFormatException e){
System.out.println("輸入格式有誤,請輸入縱座標:");
}
}
// 列印佈局,並檢查是否有誤
xunhun(false, 1, cun[0], cun[1], wuziqi);
// 檢查是否獲勝
checkWin(wuziqi, 65);
}
//檢查是否勝利
public static void checkWin(int a[][],int ab){
int i,j,tatol,k,g;
for (i = 0; i < 16; i++) {
for (j = 0; j < 16; j++) {
if (a[i][j] == ab){
tatol = 0;
//這是從第一個開始橫向檢查是否滿足五步
for (k = j; k < 16; k++){
if (a[i][k] == ab) {
tatol++;
if (tatol == 5) {
System.out.println("Congratulation!You Winning!!!");
System.exit(0);
}
} else {
break;
}
}
tatol = 0;
//這是從第一個開始縱向檢查是否滿足五步
for (k = i; k < 16; k++){
if (a[k][j] == ab) {
tatol++;
if (tatol == 5) {
System.out.println("Congratulation!You Winning!!!");
System.exit(0);
}
} else {
break;
}
}
tatol = 0;
//這是從第一個開始右向下檢查是否滿足五步
for (g = i; g < 16; g++){
if (a[g][j] == ab) {
tatol++;
if (tatol == 5) {
System.out.println("Congratulation!You Winning!!!");
System.exit(0);
}
j++;
if (j > 15){
break;
}
} else {
break;
}
}
tatol = 0;
//這是從第一個開始左向下檢查是否滿足五步
for (g = j; g > 0; g--){
if (a[j-g+1][g] == ab) {
tatol++;
if(tatol == 5){
System.out.println("Congratulation!You Winning!!!");
System.exit(0);
}
} else {
break;
}
}
}
}
}
}
//列印佈局,並檢查是否有誤
public static void xunhun(boolean b,int a,intz,int h,int[][] wuziqi){
int i, j;
while(b){
//第一次賦值
for (i = 0; i < 16; i++) {
for( j = 0; j < 16; j++ ){
wuziqi[i][j] = 43;
}
}
break;
}
//判斷是否位置重複
if (wuziqi[z][h]==65 || wuziqi[z][h]==66){
System.out.println("輸入位置重複,程式已終止!!!");
System.exit(0);
}
if (a == 1) {
//賦值
wuziqi[z][h] = 65;
}
if(a == 2 ){
//賦值
wuziqi[z][h] = 66;
}
//第一次列印佈局
for (i = 0; i < 16; i++ ){
for (j = 0; j < 16; j++) {
if (i == 0 ){
System.out.print(j +" ");
} else {
if (j >= 10 ){
System.out.printf("%c ",wuziqi[i][j]);
} else {
if (j == 0) {
if (i >= 10 ){
System.out.printf("%d ",i);
} else {
System.out.printf("%d ",i);
}
} else {
System.out.printf("%c ",wuziqi[i][j]);
}
}
}
}
System.out.println();
}
System.out.println();
}
}相關推薦
java版-五子棋-個人-原始碼參考
package wuziqi;importjava.io.IOException;importjava.util.*; public class Wuziqi{ public static void main(String args[]) { //五子棋的宣告 int
JAVA聯機版五子棋——原始碼(一個類一個main暴力開發)
第一次寫部落格,排版啥的都比較亂,大家不要嫌棄啊。 所謂暴力開發,其實是啥也不會,硬懟哈哈哈。只是剛學會一點JAVA程式設計,參考網路資源寫了個聯機版五子棋(支援單機),來這裡記錄一下學習過程,而且我也是靠別人的分享才能寫出來,所以本著互相幫助的原則,分享給大家
劍指Offer演算法題JAVA版21-30題(全是個人寫的非官方,只供參考和自己複習,測試用例都通過了。)
21.棧的壓入、彈出序列、 輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈出序列,但4,3,5,1,2就不可能是該壓
劍指Offer演算法題JAVA版13-20題(全是個人寫的非官方,只供參考和自己複習,測試用例都通過了。)
13.調整陣列順序使奇數位於偶數前面 輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 (思路:是一個類似與快速排序,的思路,但快速排序是不穩定的。要
Java流程控制---個人參考資料
else 循環 while default string java流程控制 for 多層 如果 前言:我寫博客的目的很簡單,很單純,把自己平時學的東西,放到博客上,空閑的時間,就可以看看自己曾經看到過得東西。 Java流程控制語句:判斷結構、選擇結構、循環結構 一.判斷結構
Java版推箱子(搬箱子)遊戲開發入門示例及原始碼
推(搬)箱子,又名Sokoban,倉庫番等,是一款堪稱古玩級的電腦遊戲。提起它,筆者相信沒什麼人會感覺到陌生,更沒什麼生物會連聽都沒聽說過。它的發展歷史之久遠,甚至超越了俄羅斯方塊(1988年電腦遊戲化)。這款遊戲最初起源於日本,是個很難爭辯的事實(我知道有人反對,但筆者確實找
個人所得稅計算java版
watermark handler ret 鏡像 ply 員工 else int bae 年關將至,該到了發年終獎的時候了。所以就到網上去找下,個稅計算器,但是發現做的有點像病毒網站似的。所以計算結果也不太敢信,於是琢磨著,要不自己動手寫一個個稅計算器吧。 說幹就幹,先上
Java GUI 單機版五子棋
前言 剛開始學java時接觸到GUI,一時興起寫了個五子棋,五子棋的關鍵點在於判斷輸贏,其他的都沒什麼,現在翻出來整理並記錄下來,不足之處還望各位路過的大佬多多指教。 程式碼實現 程式碼不多,四百多行,全都在這個類裡面,直接執行main函式就可以看到效果,JDK用的是1.7 @
java版 仿qq程式碼 完整原始碼 (已測試)
import javax.swing.Icon; public class ListItem { private String name; private Icon icon; public ListItem(String name,Icon icon){
阿里巴巴Java開發手冊個人整理精簡版(一)
個人程式設計時日雖說不短,但整體專案經驗感覺上還是比較欠缺,而且個人的程式設計風格並未形成,為了使自己的程式設計更加讓人賞心悅目(而不是傷心)最近看了阿里的Java開發程式設計的規約希望對自己的程式設計風格有些正面的影響,下面是我的一些筆記和總結: 一、程式設
JAVA版 微信企業號開發 個人總結(微信網頁授權例子,微信企業號精準定位,誤差5-10米)
總路線 主要內容:案例微信網頁授權,企業號精準定位(誤差5-10米) 一、 access_token獲取 二、 獲取js-sdk的許可權,票據jsapi_ticket 三、js-sdk的signature 四、js-sdk前臺配置,獲取精準的經緯度
jQuery網頁版五子棋小遊戲原始碼下載
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jquery五子棋遊戲 -&
仿QQ聊天軟體及原始碼java版
一直以來,很多java的同志們都沒有一個完整資料來參考。把原始碼貼出來,大家共享! import java.awt.BorderLayout; import java.awt.Component; import java.awt.Dialog; import java.a
五子棋人機對弈程式碼——java版
演算法是窮舉遞迴法,只不過用java重新寫了一遍 import java.awt.Color; import java.awt.Container; import java.awt.Graphics; import java.awt.event.ActionEvent
Java版——企業進銷存管理系統設計文件+原始碼
進 銷 存 管 理 系 統 專案成員: 學號 姓名 完成的工作 12601310211 後臺編寫 12601310212 資料庫設計 12601310215 圖片模組 12601310237 GUI介面設計 一、專案的總
企業級開發的JAVA程式碼生成器-java快速開發平臺原始碼版
專案地址: http://www.javafast.cn JavaFast是一款基於程式碼生成器的智慧快速開發平臺,可以幫助解決java專案中80%的重複工作,讓開發者更多關注業務邏輯。 既能快速提高開發效率,幫助公司節省人力成本,同時不失靈活性。 可以應用在任何J
【java專案實踐】詳解Ajax工作原理以及實現非同步驗證使用者名稱是否存在+原始碼下載(java版)
一年前,從不知道Ajax是什麼,伴隨著不斷的積累,到現在經常使用,逐漸有了深入的認識。今天,如果想開發一個更加人性化,友好,無重新整理,互動性更強的網頁,那您的目標一定是Ajax。 介紹
java 自己寫的五子棋程式 原始碼和大家分享
//wuziqi.java import java.applet.*; import java.awt.*; import java.awt.event.*; import java.applet.Applet; import java.awt.Color; public
sina網頁新聞小偷原理及原始碼(java版)
在網上看到網頁小偷,有偷笑話的有偷天氣的。。。最可笑的是GOOGLE上有個人釋出了一篇文章,說是js版本的,我開啟一看,language=vbscript.......還被很多人引用,一搜網頁小偷,都是那一篇文章,真讓人無語。更讓人無語的就是那個所謂的超級經典的笑話小偷。引用
我在生產專案裡是如何使用Redis釋出訂閱的?(二)Java版程式碼實現(含原始碼)
上篇文章講了在實際專案裡的哪些業務場景用到Redis釋出訂閱,這篇文章就講一下,在Java中如何實現的。 圖解程式碼結構 釋出訂閱的理論以及使用場景大家都已經有了大致瞭解了,但是怎麼用程式碼實現釋出訂閱呢?在這裡給大家分享一下實現方式。 我們以上篇文章的第三種使用場景為例