Guest User

Untitled

a guest
Dec 13th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.63 KB | None | 0 0
  1. 12-13 14:22:32.393 2482-2482/com.govinddixit.connect3 E/AndroidRuntime: FATAL EXCEPTION: main
  2. java.lang.IllegalStateException: Could not execute method for android:onClick
  3. at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
  4. at android.view.View.performClick(View.java:4204)
  5. at android.view.View$PerformClick.run(View.java:17355)
  6. at android.os.Handler.handleCallback(Handler.java:725)
  7. at android.os.Handler.dispatchMessage(Handler.java:92)
  8. at android.os.Looper.loop(Looper.java:137)
  9. at android.app.ActivityThread.main(ActivityThread.java:5041)
  10. at java.lang.reflect.Method.invokeNative(Native Method)
  11. at java.lang.reflect.Method.invoke(Method.java:511)
  12. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
  13. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
  14. at dalvik.system.NativeStart.main(Native Method)
  15. Caused by: java.lang.reflect.InvocationTargetException
  16. at java.lang.reflect.Method.invokeNative(Native Method)
  17. at java.lang.reflect.Method.invoke(Method.java:511)
  18. at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
  19. at android.view.View.performClick(View.java:4204) 
  20. at android.view.View$PerformClick.run(View.java:17355) 
  21. at android.os.Handler.handleCallback(Handler.java:725) 
  22. at android.os.Handler.dispatchMessage(Handler.java:92) 
  23. at android.os.Looper.loop(Looper.java:137) 
  24. at android.app.ActivityThread.main(ActivityThread.java:5041) 
  25. at java.lang.reflect.Method.invokeNative(Native Method) 
  26. at java.lang.reflect.Method.invoke(Method.java:511) 
  27. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
  28. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
  29. at dalvik.system.NativeStart.main(Native Method) 
  30. Caused by: java.lang.ArrayIndexOutOfBoundsException: length=8; index=8
  31. at com.govinddixit.connect3.MainActivity.dropIn(MainActivity.java:44)
  32. at java.lang.reflect.Method.invokeNative(Native Method) 
  33. at java.lang.reflect.Method.invoke(Method.java:511) 
  34. at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
  35. at android.view.View.performClick(View.java:4204) 
  36. at android.view.View$PerformClick.run(View.java:17355) 
  37. at android.os.Handler.handleCallback(Handler.java:725) 
  38. at android.os.Handler.dispatchMessage(Handler.java:92) 
  39. at android.os.Looper.loop(Looper.java:137) 
  40. at android.app.ActivityThread.main(ActivityThread.java:5041) 
  41. at java.lang.reflect.Method.invokeNative(Native Method) 
  42. at java.lang.reflect.Method.invoke(Method.java:511) 
  43. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
  44. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
  45. at dalvik.system.NativeStart.main(Native Method)  12-13 14:24:17.457 2482-2482/com.govinddixit.connect3 I/Process: Sending signal. PID: 2482 SI
  46.  
  47. G: 9
  48.  
  49. package com.govinddixit.connect3;
  50.  
  51. import android.media.Image;
  52. import android.view.MenuItem;
  53. import android.support.v7.app.AppCompatActivity;
  54. import android.os.Bundle;
  55. import android.view.View;
  56. import android.widget.GridLayout;
  57. import android.widget.ImageView;
  58. import android.widget.LinearLayout;
  59. import android.widget.TextView;
  60.  
  61. import java.security.KeyStore;
  62.  
  63. public class MainActivity extends AppCompatActivity
  64. {
  65. //0=yellow,1=red
  66. int activePlayer = 0;
  67. boolean gameisActive = true;
  68. //2 means unplayed
  69. int[] gameState = {2,2,2,2,2,2,2,2};
  70. int[][] winningPosition = {{0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7},{2,5,8},{0,4,8},{2,4,6}};
  71.  
  72. public void dropIn(View view) {
  73. ImageView counter = (ImageView) view;
  74.  
  75. int tappedCounter = Integer.parseInt(counter.getTag().toString());
  76.  
  77. if (gameState[tappedCounter] == 2 && gameisActive) {
  78. gameState[tappedCounter] = activePlayer;
  79.  
  80. counter.setTranslationY(-1000f);
  81.  
  82. if (activePlayer == 0) {
  83. counter.setImageResource(R.drawable.yellow);
  84. activePlayer = 1;
  85. } else {
  86. counter.setImageResource(R.drawable.red);
  87. activePlayer = 0;
  88. }
  89. counter.animate().translationYBy(1000f).rotation(36).setDuration(300);
  90.  
  91. for (int[] winningPosition : winningPosition) {
  92. if (gameState[winningPosition[0]] == gameState[winningPosition[1]] &&
  93. gameState[winningPosition[1]] == gameState[winningPosition[2]] &&
  94. gameState[winningPosition[0]] != 2) {
  95. //someone has won//
  96. gameisActive = false;
  97.  
  98. String winner = "RED";
  99.  
  100. if (gameState[winningPosition[0]] == 0) {
  101. winner = "YELLOW";
  102.  
  103.  
  104. TextView winnerMessage = (TextView) findViewById(R.id.winnerMessage);
  105. winnerMessage.setText("has won");
  106.  
  107. LinearLayout layout = (LinearLayout) findViewById(R.id.playAgainLayout);
  108.  
  109. layout.setVisibility(view.VISIBLE);
  110.  
  111. } else {
  112. boolean gameIsOver = true;
  113.  
  114. for (int counterState : gameState) {
  115.  
  116. if (counterState == 2) {
  117. gameIsOver = false;
  118. }
  119. }
  120. if (gameIsOver) {
  121. TextView winnerMessage = (TextView) findViewById(R.id.winnerMessage);
  122. winnerMessage.setText("It's a draw");
  123.  
  124. LinearLayout layout = (LinearLayout) findViewById(R.id.playAgainLayout);
  125.  
  126. layout.setVisibility(view.VISIBLE);
  127.  
  128. }
  129. }
  130. }
  131. }
  132. }
  133. }
  134.  
  135. public void playAgain(View view)
  136. {
  137. gameisActive = true;
  138. LinearLayout layout = (LinearLayout)findViewById(R.id.playAgainLayout);
  139. layout.setVisibility(View.INVISIBLE);
  140. activePlayer= 0;
  141.  
  142. for(int i=0;i<gameState.length;i++)
  143. {
  144. gameState[i]=2;
  145. }
  146. GridLayout gridLayout = (GridLayout)findViewById(R.id.gridLayout);
  147. for(int i=0;i<gridLayout.getChildCount();i++)
  148. {
  149. ((ImageView) gridLayout.getChildAt(i)).setImageResource(0);
  150. }
  151. }
  152. @Override
  153. protected void onCreate(Bundle savedInstanceState) {
  154. super.onCreate(savedInstanceState);
  155. setContentView(R.layout.activity_main);
  156. }
  157. }
  158.  
  159. <?xml version="1.0" encoding="utf-8"?>
  160. <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  161. xmlns:app="http://schemas.android.com/apk/res-auto"
  162. xmlns:tools="http://schemas.android.com/tools"
  163. android:layout_width="match_parent"
  164. android:layout_height="match_parent"
  165. tools:context="com.govinddixit.connect3.MainActivity">
  166.  
  167. <LinearLayout
  168. android:id="@+id/playAgainLayout"
  169. android:layout_width="wrap_content"
  170. android:layout_height="wrap_content"
  171. android:layout_marginBottom="8dp"
  172. android:layout_marginEnd="8dp"
  173. android:layout_marginStart="8dp"
  174. android:layout_marginTop="8dp"
  175. android:alpha="1"
  176. android:background="?android:attr/colorActivatedHighlight"
  177. android:orientation="vertical"
  178. android:paddingHorizontal="30dp"
  179. android:paddingVertical="30dp"
  180. android:visibility="invisible"
  181. app:layout_constraintBottom_toBottomOf="parent"
  182. app:layout_constraintEnd_toEndOf="parent"
  183. app:layout_constraintHorizontal_bias="0.502"
  184. app:layout_constraintStart_toStartOf="parent"
  185. app:layout_constraintTop_toTopOf="parent">
  186.  
  187. <TextView
  188. android:id="@+id/winnerMessage"
  189. android:layout_width="match_parent"
  190. android:layout_height="wrap_content"
  191. android:text="TextView"
  192. android:textSize="30sp" />
  193.  
  194. <Button
  195. android:id="@+id/playAgainButton"
  196. android:layout_width="match_parent"
  197. android:layout_height="wrap_content"
  198. android:onClick="playAgain"
  199. android:text="PLAY AGAIN" />
  200. </LinearLayout>
  201.  
  202. <GridLayout
  203. android:id="@+id/gridLayout"
  204. android:layout_width="360dp"
  205. android:layout_height="360dp"
  206. android:layout_marginBottom="8dp"
  207. android:layout_marginEnd="8dp"
  208. android:layout_marginStart="8dp"
  209. android:layout_marginTop="8dp"
  210. android:background="@drawable/board"
  211. android:columnCount="3"
  212. android:rowCount="3"
  213. app:layout_constraintBottom_toBottomOf="parent"
  214. app:layout_constraintEnd_toEndOf="parent"
  215. app:layout_constraintStart_toStartOf="parent"
  216. app:layout_constraintTop_toTopOf="parent"
  217. app:layout_constraintVertical_bias="0.496">
  218.  
  219. <ImageView
  220. android:id="@+id/imageView2"
  221. android:layout_width="90dp"
  222. android:layout_height="90dp"
  223. android:layout_column="2"
  224. android:layout_marginLeft="35dp"
  225. android:layout_marginTop="35dp"
  226. android:layout_row="2"
  227. android:onClick="dropIn"
  228. android:tag="0" />
  229.  
  230. <ImageView
  231. android:id="@+id/imageView3"
  232. android:layout_width="90dp"
  233. android:layout_height="90dp"
  234. android:layout_column="0"
  235. android:layout_margin="10dp"
  236. android:layout_row="0"
  237. android:onClick="dropIn"
  238. android:tag="0" />
  239.  
  240. <ImageView
  241. android:id="@+id/imageView4"
  242. android:layout_width="90dp"
  243. android:layout_height="90dp"
  244. android:layout_column="0"
  245. android:layout_marginLeft="10dp"
  246. android:layout_marginTop="25dp"
  247. android:layout_row="1"
  248. android:onClick="dropIn"
  249. android:tag="0" />
  250.  
  251. <ImageView
  252. android:id="@+id/imageView6"
  253. android:layout_width="90dp"
  254. android:layout_height="90dp"
  255. android:layout_column="0"
  256. android:layout_marginLeft="10dp"
  257. android:layout_marginTop="35dp"
  258. android:layout_row="2"
  259. android:onClick="dropIn"
  260. android:tag="0"
  261. tools:layout_editor_absoluteX="0dp"
  262. tools:layout_editor_absoluteY="149dp" />
  263.  
  264. <ImageView
  265. android:id="@+id/imageView7"
  266. android:layout_width="90dp"
  267. android:layout_height="90dp"
  268. android:layout_column="1"
  269. android:layout_marginLeft="25dp"
  270. android:layout_marginTop="10dp"
  271. android:layout_row="0"
  272. android:onClick="dropIn"
  273. android:tag="0" />
  274.  
  275. <ImageView
  276. android:id="@+id/imageView8"
  277. android:layout_width="90dp"
  278. android:layout_height="90dp"
  279. android:layout_column="2"
  280. android:layout_marginLeft="35dp"
  281. android:layout_marginTop="10dp"
  282. android:layout_row="0"
  283. android:onClick="dropIn"
  284. android:tag="0" />
  285.  
  286. <ImageView
  287. android:id="@+id/imageView10"
  288. android:layout_width="90dp"
  289. android:layout_height="90dp"
  290. android:layout_column="2"
  291. android:layout_marginLeft="35dp"
  292. android:layout_marginTop="25dp"
  293. android:layout_row="1"
  294. android:onClick="dropIn"
  295. android:tag="0" />
  296.  
  297. <ImageView
  298. android:id="@+id/imageView11"
  299. android:layout_width="90dp"
  300. android:layout_height="90dp"
  301. android:layout_column="1"
  302. android:layout_marginLeft="25dp"
  303. android:layout_marginTop="35dp"
  304. android:layout_row="2"
  305. android:onClick="dropIn"
  306. android:tag="0" />
  307.  
  308. <ImageView
  309. android:id="@+id/imageView12"
  310. android:layout_width="90dp"
  311. android:layout_height="90dp"
  312. android:layout_column="1"
  313. android:layout_marginLeft="25dp"
  314. android:layout_marginTop="25dp"
  315. android:layout_row="1"
  316. android:onClick="dropIn"
  317. android:tag="0" />
  318. </GridLayout>
  319.  
  320. </android.support.constraint.ConstraintLayout>
Add Comment
Please, Sign In to add comment